Както lighten
и darken
функции манипулират лекотата на цвят в пространството на HSL чрез добавяне или изваждане лекота с него. По принцип те не са нищо друго освен псевдоними за $lightness
параметъра на adjust-color
функцията.
Работата е там, че тези функции често не осигуряват очаквания резултат. От друга страна, mix
функцията е приятен начин за изсветляване или потъмняване на цвят чрез смесване с бял или черен цвят.
Ползата от използването на mix
една от двете гореспоменати функции е, че тя постепенно ще премине към черно (или бяло), докато намалявате дела на цвета, докато darken
и lighten
бързо ще издухва цвят чак до черно или бяло.
За да избегнете писането на функцията mixin всеки път, което не само отнема много време, но и не е съвсем изрично, можете лесно да създадете две функции 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; )