Les deux fonctions lighten
et darken
manipulent la clarté d'une couleur dans l'espace TSL en lui ajoutant ou en lui soustrayant de la clarté. Fondamentalement, ce ne sont que des alias pour le $lightness
paramètre de la adjust-color
fonction.
Le fait est que ces fonctions ne fournissent souvent pas le résultat attendu. D'autre part, la mix
fonction est un bon moyen d'éclaircir ou d'assombrir une couleur en la mélangeant avec du blanc ou du noir.
L'avantage d'utiliser mix
plutôt que l'une des deux fonctions susmentionnées est que cela passera progressivement au noir (ou au blanc) à mesure que vous diminuerez la proportion de la couleur, alors que darken
et lighten
fera rapidement exploser une couleur jusqu'au noir ou au blanc.
Afin d'éviter d'écrire la fonction mixin à chaque fois, ce qui est non seulement long mais pas tout à fait explicite, vous pouvez facilement créer deux fonctions tint
et shade
(qui font également partie de 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); )
Usage
.foo ( color: tint(#BADA55, 42%); ) .bar ( background-color: shade(#663399, 42%); )
.foo ( color: #e2efb7; ) .bar ( background-color: #2a1540; )