1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // $color is either a color or an hsl tuple
- @mixin define-color($name, $color) {
- $h: null;
- $s: null;
- $l: null;
- @if type-of($color) == color {
- $h: hue($color) / 1deg; // Cast to unitless
- $s: saturation($color);
- $l: lightness($color);
- } @else {
- $h: nth($color, 1);
- $s: nth($color, 2);
- $l: nth($color, 3);
- }
- --#{$name}-hue: #{$h};
- --#{$name}-saturation: #{$s};
- --#{$name}-lightness: #{$l};
- --#{$name}: hsl(#{ var(--#{$name}-hue), var(--#{$name}-saturation), var(--#{$name}-lightness) });
- }
- @function get-color($name) {
- @return (var(--#{$name}-hue), var(--#{$name}-saturation), var(--#{$name}-lightness));
- }
- @function css-darken($hsl-tuple, $darken-by) {
- $h: nth($hsl-tuple, 1);
- $s: nth($hsl-tuple, 2);
- $l: nth($hsl-tuple, 3);
- @return ($h, $s, calc(#{$l} - #{$darken-by + 0%}));
- }
- @function css-lighten($hsl-tuple, $lighten-by) {
- $h: nth($hsl-tuple, 1);
- $s: nth($hsl-tuple, 2);
- $l: nth($hsl-tuple, 3);
- @return ($h, $s, calc(#{$l} + #{$lighten-by + 0%}));
- }
- @function css-saturate($hsl-tuple, $saturate-by) {
- $h: nth($hsl-tuple, 1);
- $s: nth($hsl-tuple, 2);
- $l: nth($hsl-tuple, 3);
- @return ($h, calc(#{$s} + #{$saturate-by + 0%}), $l);
- }
- @function css-desaturate($hsl-tuple, $desaturate-by) {
- $h: nth($hsl-tuple, 1);
- $s: nth($hsl-tuple, 2);
- $l: nth($hsl-tuple, 3);
- @return ($h, calc(#{$s} - #{$desaturate-by + 0%}), $l);
- }
- @function css-adjust-hue($hsl-tuple, $adjust-by) {
- $h: nth($hsl-tuple, 1);
- $s: nth($hsl-tuple, 2);
- $l: nth($hsl-tuple, 3);
- @return (calc(#{$h} + #{$adjust-by}), $s, $l);
- }
- @function css-transparentize($hsl-tuple, $alpha) {
- $h: nth($hsl-tuple, 1);
- $s: nth($hsl-tuple, 2);
- $l: nth($hsl-tuple, 3);
- @return ($h, $s, $l, $alpha);
- }
|