Hem lighten
ve hem de darken
işlevler, HSL uzayındaki bir rengin açıklığını, ona açıklık ekleyerek veya çıkararak işler. Temel olarak, bunlar işlevin $lightness
parametresi için takma adlardan başka bir şey değildir adjust-color
.
Mesele şu ki, bu işlevler genellikle beklenen sonucu sağlamaz. Öte yandan, mix
işlev, bir rengi beyaz veya siyahla karıştırarak aydınlatmanın veya koyulaştırmanın güzel bir yoludur.
mix
Yukarıda belirtilen iki işlevden birini kullanmanın yararı , rengin oranını düşürdükçe aşamalı olarak siyaha (veya beyaza) geçecek darken
ve lighten
bir rengi hızla siyah veya beyaza tamamen dağıtacak olmasıdır.
Sadece zaman alıcı değil, aynı zamanda çok açık olmayan mixin işlevini her seferinde yazmaktan kaçınmak için, kolayca iki işlev oluşturabilirsiniz tint
ve shade
(bu da Compass'ın bir parçasıdır):
/// 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); )
Kullanım
.foo ( color: tint(#BADA55, 42%); ) .bar ( background-color: shade(#663399, 42%); )
.foo ( color: #e2efb7; ) .bar ( background-color: #2a1540; )