As funções lighten
e darken
manipulam a luminosidade de uma cor no espaço HSL adicionando ou subtraindo luminosidade a ela. Basicamente, eles nada mais são do que apelidos para o $lightness
parâmetro da adjust-color
função.
O fato é que essas funções geralmente não fornecem o resultado esperado. Por outro lado, a mix
função é uma ótima maneira de clarear ou escurecer uma cor misturando-a com branco ou preto.
A vantagem de usar em mix
vez de uma das duas funções mencionadas acima é que ele irá progressivamente para preto (ou branco) conforme você diminui a proporção da cor, enquanto que darken
e lighten
irá rapidamente estourar uma cor para preto ou branco.
Para evitar escrever a função mixin todas as vezes, o que não é apenas demorado, mas também não é totalmente explícito, você pode facilmente criar duas funções tint
e shade
(que também fazem parte do 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); )
Uso
.foo ( color: tint(#BADA55, 42%); ) .bar ( background-color: shade(#663399, 42%); )
.foo ( color: #e2efb7; ) .bar ( background-color: #2a1540; )