https://github.com/sha-red/compass-mixins/tree/master/lib
extended with more sass frameworks and as django app.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.2 KiB
68 lines
2.2 KiB
// Indicates the direction you prefer to move your text |
|
// when hiding it. |
|
// |
|
// `left` is more robust, especially in older browsers. |
|
// `right` seems have better runtime performance. |
|
$hide-text-direction: left !default; |
|
|
|
// Hides html text and replaces it with an image. |
|
// If you use this on an inline element, you will need to change the display to block or inline-block. |
|
// Also, if the size of the image differs significantly from the font size, you'll need to set the width and/or height. |
|
// |
|
// Parameters: |
|
// |
|
// * `img` -- the relative path from the project image directory to the image, or a url literal. |
|
// * `x` -- the x position of the background image. |
|
// * `y` -- the y position of the background image. |
|
@mixin replace-text($img, $x: 50%, $y: 50%) { |
|
@include hide-text; |
|
background: { |
|
@if is-url($img) { |
|
image: $img; |
|
} @else { |
|
image: image-url($img); |
|
} |
|
repeat: no-repeat; |
|
position: $x $y; |
|
}; |
|
} |
|
|
|
// Like the `replace-text` mixin, but also sets the width |
|
// and height of the element according the dimensions of the image. |
|
// |
|
// If you set `$inline` to true, then an inline image (data uri) will be used. |
|
@mixin replace-text-with-dimensions($img, $x: 50%, $y: 50%, $inline: false) { |
|
@include replace-text(if($inline, inline-image($img), $img), $x, $y); |
|
width: image-width($img); |
|
height: image-height($img); |
|
} |
|
|
|
// Hides text in an element so you can see the background. |
|
// |
|
// The direction indicates how the text should be moved out of view. |
|
// |
|
// See `$hide-text-direction` for more information and to set this globally |
|
// for your application. |
|
@mixin hide-text($direction: $hide-text-direction) { |
|
@if $direction == left { |
|
$approximate-em-value: 12px / 1em; |
|
$wider-than-any-screen: -9999em; |
|
text-indent: $wider-than-any-screen * $approximate-em-value; |
|
overflow: hidden; |
|
text-align: left; |
|
} @else { |
|
// slightly wider than the box prevents issues with inline-block elements |
|
text-indent: 110%; |
|
white-space: nowrap; |
|
overflow: hidden; |
|
} |
|
} |
|
|
|
// Hides text in an element by squishing the text into oblivion. |
|
// Use this if you need to hide text contained in an inline element |
|
// but still have it read by a screen reader. |
|
@mixin squish-text { |
|
font: 0/0 serif; |
|
text-shadow: none; |
|
color: transparent; |
|
}
|
|
|