Как lighten
и darken
функции манипулировать легкость цвета в HSL пространстве путем сложения или вычитания воздушность к нему. По сути, это не что иное, как псевдонимы $lightness
параметра adjust-color
функции.
Дело в том, что эти функции часто не дают ожидаемого результата. С другой стороны, эта mix
функция - хороший способ осветлить или затемнить цвет, смешав его с белым или черным.
Преимущество использования mix
вместо одной из двух вышеупомянутых функций заключается в том, что она будет постепенно переходить к черному (или белому) по мере уменьшения пропорции цвета, тогда как darken
и lighten
будет быстро выдувать цвет полностью до черного или белого.
Чтобы каждый раз не писать миксин-функцию, что требует не только много времени, но и не совсем явного характера, вы можете легко создать две функции tint
и shade
(которые также являются частью Compass):
/// Slightly lighten a color /// @access public /// @param (Color) $color - color to tint /// @param (Number) $percentage - percentage of `$color` in returned color /// @return (Color) @function tint($color, $percentage) ( @return mix(white, $color, $percentage); ) /// Slightly darken a color /// @access public /// @param (Color) $color - color to shade /// @param (Number) $percentage - percentage of `$color` in returned color /// @return (Color) @function shade($color, $percentage) ( @return mix(black, $color, $percentage); )
использование
.foo ( color: tint(#BADA55, 42%); ) .bar ( background-color: shade(#663399, 42%); )
.foo ( color: #e2efb7; ) .bar ( background-color: #2a1540; )