From 6b0fcac695aa7a5517f6f53cec50da493acc4582 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Sat, 22 Jun 2024 19:30:00 +0200 Subject: Update --- src/_functions.scss | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/_functions.scss') diff --git a/src/_functions.scss b/src/_functions.scss index 7c0ded3..8553833 100644 --- a/src/_functions.scss +++ b/src/_functions.scss @@ -107,21 +107,29 @@ @return $result; } -@function palette($base-color, $contrasts, $range: 1, $reference-color: $base-color) { +@function palette($base-color, $contrasts, $range: 1, $desaturate: true, $reference-color: $base-color) { $palette: (); @if list.nth(list.nth($contrasts, 1), 2) > list.nth(list.nth($contrasts, list.length($contrasts)), 2) { $contrasts: iro.fn-list-reverse($contrasts); } + $reference-lightness: blend.lightness($reference-color); $i: -100%; @while $i <= 100% { - $palette: list.append($palette, blend.scale($base-color, $l: $range * $i, $c: -.8 * math.abs($i))); - $i: $i + config.$palette-precision; + $c: if($desaturate, .8 * if($reference-lightness >= 50%, -1 * math.clamp(0%, $i, 100%), math.clamp(-100%, $i, 0%)), 0%); + $palette: list.append($palette, blend.scale($base-color, $l: $range * $i, $c: $c)); + $i: $i + config.$palette-precision; } - @return multi-contrast($base-color, $palette, $contrasts, $reference-color); + $palette: multi-contrast($base-color, $palette, $contrasts, $reference-color); + + @each $key, $color in $palette { + $palette: map.set($palette, #{$key}-text, blend.contrast($color)) + } + + @return $palette; } @function px-to-em($size, $base: iro.$vars-root-size) { -- cgit v1.2.3-54-g00ecf