@function cs-mix($color1, $color2, $percent: 50%, $model: $cs-color-model) {
$decimal : abs($percent - 100%) / 100%;
$hue-offset : ();
@if $model == rgb {
$hue-offset : (hue($color1) - hue($color2)) * $decimal;
@if (hue($color1) - hue($color2)) * .5 < -90deg {
$hue-offset : (hue($color1) + 360deg - hue($color2)) * $decimal;
}
@if (hue($color1) - hue($color2)) * .5 > 90deg {
$hue-offset : (hue($color1) - 360deg - hue($color2)) * $decimal;
}
}
@if $model == ryb {
$hue-offset : (ryb-hue($color1) - ryb-hue($color2)) * $decimal;
@if (ryb-hue($color1) - ryb-hue($color2)) * .5 < -90deg {
$hue-offset : (ryb-hue($color1) + 360deg - ryb-hue($color2)) * $decimal;
}
@if (ryb-hue($color1) - ryb-hue($color2)) * .5 > 90deg {
$hue-offset : (ryb-hue($color1) - 360deg - ryb-hue($color2)) * $decimal;
}
}
$saturation-offset : (saturation($color1) - saturation($color2)) * $decimal;
$lightness-offset : (lightness($color1) - lightness($color2)) * $decimal;
@if $model == ryb {
$color1: ryb-adjust-hue($color1, $hue-offset * -1);
}
@else {
$color1: adjust-hue($color1, $hue-offset * -1);
}
$color1: set-saturation($color1, saturation($color1) - $saturation-offset);
$color1: set-lightness($color1, lightness($color1) - $lightness-offset);
@return $color1;
}
|