Beide lighten
und darken
Funktionen manipulieren die Helligkeit einer Farbe im HSL-Raum, indem sie Helligkeit addieren oder subtrahieren. Grundsätzlich sind sie nichts anderes als Aliase für den $lightness
Parameter der adjust-color
Funktion.
Die Sache ist, dass diese Funktionen oft nicht das erwartete Ergebnis liefern. Andererseits ist die mix
Funktion eine gute Möglichkeit, eine Farbe aufzuhellen oder abzudunkeln, indem sie entweder mit Weiß oder Schwarz gemischt wird.
Der Vorteil der Verwendung mix
eher als eine der beiden oben genannten Funktionen ist , dass es schrittweise zu schwarz gehen (oder weiß) , wie Sie den Anteil der Farbe ab, während darken
und lighten
schnell eine Farbe den ganzen Weg nach schwarz oder weiß ausblasen.
Um zu vermeiden, dass die Mixin-Funktion jedes Mal geschrieben wird, was nicht nur zeitaufwändig, sondern auch nicht ganz explizit ist, können Sie einfach zwei Funktionen erstellen tint
und shade
(die zufällig auch Teil von Compass sind):
/// 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); )
Verwendung
.foo ( color: tint(#BADA55, 42%); ) .bar ( background-color: shade(#663399, 42%); )
.foo ( color: #e2efb7; ) .bar ( background-color: #2a1540; )