diff --git a/spec/core_functions/color/change/a98_rgb.hrx b/spec/core_functions/color/change/a98_rgb.hrx new file mode 100644 index 000000000..df07bd4b5 --- /dev/null +++ b/spec/core_functions/color/change/a98_rgb.hrx @@ -0,0 +1,129 @@ +<===> red/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 0.5)} + +<===> red/unitless/output.css +a { + b: color(a98-rgb 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 50%)} + +<===> red/percent/output.css +a { + b: color(a98-rgb 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 1.2)} + +<===> red/out_of_range/output.css +a { + b: color(a98-rgb 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> green/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $green: 0.4)} + +<===> green/unitless/output.css +a { + b: color(a98-rgb 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $green: 40%)} + +<===> green/percent/output.css +a { + b: color(a98-rgb 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $green: -0.2)} + +<===> green/out_of_range/output.css +a { + b: color(a98-rgb 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> blue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $blue: 0.5)} + +<===> blue/unitless/output.css +a { + b: color(a98-rgb 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $blue: 50%)} + +<===> blue/percent/output.css +a { + b: color(a98-rgb 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $blue: 100)} + +<===> blue/out_of_range/output.css +a { + b: color(a98-rgb 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 0.7, $green: 0.4, $blue: 0.2)} + +<===> all/output.css +a { + b: color(a98-rgb 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7 / 0.9), $red: 0.5)} + +<===> alpha_input/output.css +a { + b: color(a98-rgb 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(a98-rgb 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/display_p3.hrx b/spec/core_functions/color/change/display_p3.hrx new file mode 100644 index 000000000..a3129b4ce --- /dev/null +++ b/spec/core_functions/color/change/display_p3.hrx @@ -0,0 +1,129 @@ +<===> red/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 0.5)} + +<===> red/unitless/output.css +a { + b: color(display-p3 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 50%)} + +<===> red/percent/output.css +a { + b: color(display-p3 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 1.2)} + +<===> red/out_of_range/output.css +a { + b: color(display-p3 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> green/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $green: 0.4)} + +<===> green/unitless/output.css +a { + b: color(display-p3 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $green: 40%)} + +<===> green/percent/output.css +a { + b: color(display-p3 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $green: -0.2)} + +<===> green/out_of_range/output.css +a { + b: color(display-p3 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> blue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $blue: 0.5)} + +<===> blue/unitless/output.css +a { + b: color(display-p3 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $blue: 50%)} + +<===> blue/percent/output.css +a { + b: color(display-p3 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $blue: 100)} + +<===> blue/out_of_range/output.css +a { + b: color(display-p3 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 0.7, $green: 0.4, $blue: 0.2)} + +<===> all/output.css +a { + b: color(display-p3 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7 / 0.9), $red: 0.5)} + +<===> alpha_input/output.css +a { + b: color(display-p3 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(display-p3 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/error/bounds.hrx b/spec/core_functions/color/change/error/bounds.hrx index b8d940681..855de13fd 100644 --- a/spec/core_functions/color/change/error/bounds.hrx +++ b/spec/core_functions/color/change/error/bounds.hrx @@ -1,149 +1,14 @@ -<===> README.md -According to the new color space spec, out-of-bounds values should be allowed -(and clamped for strictly bounded spaces). See sass/sass-spec#1828. - -<===> options.yml ---- -:todo: -- dart-sass - -<===> -================================================================================ -<===> red/too_low/input.scss -@use 'sass:color'; -a {b: color.change(red, $red: -1)} - -<===> red/too_low/error - -<===> -================================================================================ -<===> red/too_high/input.scss -@use 'sass:color'; -a {b: color.change(red, $red: 256)} - -<===> red/too_high/error - -<===> -================================================================================ -<===> red/unit/input.scss -// This test covers sass/dart-sass#1745, but should be removed once units are -// fully forbidden (sass/sass#3374). -@use 'sass:color'; -a {b: color.change(red, $red: 300px)} - -<===> red/unit/error - -<===> -================================================================================ -<===> green/too_low/input.scss -@use 'sass:color'; -a {b: color.change(green, $green: -1)} - -<===> green/too_low/error - -<===> -================================================================================ -<===> green/too_high/input.scss -@use 'sass:color'; -a {b: color.change(green, $green: 256)} - -<===> green/too_high/error - -<===> -================================================================================ -<===> green/unit/input.scss -// This test covers sass/dart-sass#1745, but should be removed once units are -// fully forbidden (sass/sass#3374). -@use 'sass:color'; -a {b: color.change(green, $green: 300px)} - -<===> green/unit/error - -<===> -================================================================================ -<===> blue/too_low/input.scss -@use 'sass:color'; -a {b: color.change(blue, $blue: -1)} - -<===> blue/too_low/error - -<===> -================================================================================ -<===> blue/too_high/input.scss -@use 'sass:color'; -a {b: color.change(blue, $blue: 256)} - -<===> blue/too_high/error - -<===> -================================================================================ -<===> blue/unit/input.scss -// This test covers sass/dart-sass#1745, but should be removed once units are -// fully forbidden (sass/sass#3374). -@use 'sass:color'; -a {b: color.change(blue, $blue: 300px)} - -<===> blue/unit/error - -<===> -================================================================================ -<===> saturation/too_low/input.scss -@use 'sass:color'; -a {b: color.change(red, $saturation: -0.001%)} - -<===> saturation/too_low/error - -<===> -================================================================================ -<===> saturation/too_high/input.scss -@use 'sass:color'; -a {b: color.change(red, $saturation: 100.001%)} - -<===> saturation/too_high/error - -<===> -================================================================================ -<===> saturation/unit/input.scss -// This test covers sass/dart-sass#1745, but should be removed once units are -// fully forbidden (sass/sass#3374). -@use 'sass:color'; -a {b: color.change(red, $saturation: 200px)} - -<===> saturation/unit/error - -<===> -================================================================================ -<===> lightness/too_low/input.scss -@use 'sass:color'; -a {b: color.change(red, $lightness: -0.001%)} - -<===> lightness/too_low/error - -<===> -================================================================================ -<===> lightness/too_high/input.scss -@use 'sass:color'; -a {b: color.change(red, $lightness: 100.001%)} - -<===> lightness/too_high/error - -<===> -================================================================================ -<===> lightness/unit/input.scss -// This test covers sass/dart-sass#1745, but should be removed once units are -// fully forbidden (sass/sass#3374). -@use 'sass:color'; -a {b: color.change(red, $lightness: 200px)} - -<===> lightness/unit/error - -<===> -================================================================================ <===> alpha/too_low/input.scss @use 'sass:color'; a {b: color.change(red, $alpha: -0.001)} <===> alpha/too_low/error +Error: $alpha: Expected -0.001 to be within 0 and 1. + , +2 | a {b: color.change(red, $alpha: -0.001)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet <===> ================================================================================ @@ -152,45 +17,23 @@ a {b: color.change(red, $alpha: -0.001)} a {b: color.change(red, $alpha: 1.001)} <===> alpha/too_high/error +Error: $alpha: Expected 1.001 to be within 0 and 1. + , +2 | a {b: color.change(red, $alpha: 1.001)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet <===> ================================================================================ <===> alpha/unit/input.scss -// This test covers sass/dart-sass#1745, but should be removed once units are -// fully forbidden (sass/sass#3374). @use 'sass:color'; -a {b: color.change(red, $alpha: 50%)} +a {b: color.change(red, $alpha: 150%)} <===> alpha/unit/error - -<===> -================================================================================ -<===> blackness/too_low/input.scss -@use 'sass:color'; -a {b: color.change(red, $blackness: -0.001%)} - -<===> blackness/too_low/error - -<===> -================================================================================ -<===> blackness/too_high/input.scss -@use 'sass:color'; -a {b: color.change(red, $blackness: 100.001%)} - -<===> blackness/too_high/error - -<===> -================================================================================ -<===> whiteness/too_low/input.scss -@use 'sass:color'; -a {b: color.change(red, $whiteness: -0.001%)} - -<===> whiteness/too_low/error - -<===> -================================================================================ -<===> whiteness/too_high/input.scss -@use 'sass:color'; -a {b: color.change(red, $whiteness: 100.001%)} - -<===> whiteness/too_high/error +Error: $alpha: Expected 150% to be within 0% and 100%. + , +2 | a {b: color.change(red, $alpha: 150%)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet diff --git a/spec/core_functions/color/change/error/incompatible_channel.hrx b/spec/core_functions/color/change/error/incompatible_channel.hrx new file mode 100644 index 000000000..e31e48ce1 --- /dev/null +++ b/spec/core_functions/color/change/error/incompatible_channel.hrx @@ -0,0 +1,39 @@ +<===> legacy_space/input.scss +@use 'sass:color'; +a {b: color.change(red, $chroma: 50%)} + +<===> legacy_space/error +Error: $chroma: Color space rgb doesn't have a channel with this name. + , +2 | a {b: color.change(red, $chroma: 50%)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> legacy_channel/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $whiteness: 50%)} + +<===> legacy_channel/error +Error: $whiteness: Color space srgb doesn't have a channel with this name. + , +2 | a {b: color.change(color(srgb 0.2 0.5 0.7), $whiteness: 50%)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> modern_both/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $chroma: 50%)} + +<===> modern_both/error +Error: $chroma: Color space srgb doesn't have a channel with this name. + , +2 | a {b: color.change(color(srgb 0.2 0.5 0.7), $chroma: 50%)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet diff --git a/spec/core_functions/color/change/error/space.hrx b/spec/core_functions/color/change/error/space.hrx new file mode 100644 index 000000000..01f2e3537 --- /dev/null +++ b/spec/core_functions/color/change/error/space.hrx @@ -0,0 +1,25 @@ +<===> unknown/input.scss +@use 'sass:color'; +a {b: color.change(red, $space: c)} + +<===> unknown/error +Error: $space: Unknown color space "c". + , +2 | a {b: color.change(red, $space: c)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> quoted/input.scss +@use 'sass:color'; +a {b: color.change(red, $space: "lab")} + +<===> quoted/error +Error: $space: Expected "lab" to be an unquoted string. + , +2 | a {b: color.change(red, $space: "lab")} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet diff --git a/spec/core_functions/color/change/error/type.hrx b/spec/core_functions/color/change/error/type.hrx index 4dda8ade2..63b1f9728 100644 --- a/spec/core_functions/color/change/error/type.hrx +++ b/spec/core_functions/color/change/error/type.hrx @@ -135,3 +135,17 @@ Error: $whiteness: c is not a number or unquoted "none". | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> space/input.scss +@use 'sass:color'; +a {b: color.change(red, $space: 1)} + +<===> space/error +Error: $space: 1 is not a string. + , +2 | a {b: color.change(red, $space: 1)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet diff --git a/spec/core_functions/color/change/error/units.hrx b/spec/core_functions/color/change/error/units.hrx index 115e87e0d..08c2e231c 100644 --- a/spec/core_functions/color/change/error/units.hrx +++ b/spec/core_functions/color/change/error/units.hrx @@ -1,8 +1,8 @@ -<===> none/whiteness/input.scss +<===> hwb/none/whiteness/input.scss @use 'sass:color'; a {b: color.change(white, $whiteness: 1)} -<===> none/whiteness/error +<===> hwb/none/whiteness/error Error: $whiteness: Expected 1 to have unit "%". , 2 | a {b: color.change(white, $whiteness: 1)} @@ -12,11 +12,11 @@ Error: $whiteness: Expected 1 to have unit "%". <===> ================================================================================ -<===> none/blackness/input.scss +<===> hwb/none/blackness/input.scss @use 'sass:color'; a {b: color.change(black, $blackness: 1)} -<===> none/blackness/error +<===> hwb/none/blackness/error Error: $blackness: Expected 1 to have unit "%". , 2 | a {b: color.change(black, $blackness: 1)} @@ -26,11 +26,11 @@ Error: $blackness: Expected 1 to have unit "%". <===> ================================================================================ -<===> wrong/whiteness/input.scss +<===> hwb/wrong/whiteness/input.scss @use 'sass:color'; a {b: color.change(white, $whiteness: 1px)} -<===> wrong/whiteness/error +<===> hwb/wrong/whiteness/error Error: $whiteness: Expected 1px to have unit "%". , 2 | a {b: color.change(white, $whiteness: 1px)} @@ -40,14 +40,518 @@ Error: $whiteness: Expected 1px to have unit "%". <===> ================================================================================ -<===> wrong/blackness/input.scss +<===> hwb/wrong/blackness/input.scss @use 'sass:color'; a {b: color.change(black, $blackness: 1px)} -<===> wrong/blackness/error +<===> hwb/wrong/blackness/error Error: $blackness: Expected 1px to have unit "%". , 2 | a {b: color.change(black, $blackness: 1px)} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> srgb/red/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 0.5px)} + +<===> srgb/red/error +Error: $red: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> srgb/green/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $green: 0.5px)} + +<===> srgb/green/error +Error: $green: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(srgb 0.2 0.5 0.7), $green: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> srgb/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $blue: 0.5px)} + +<===> srgb/blue/error +Error: $blue: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(srgb 0.2 0.5 0.7), $blue: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> srgb_linear/red/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 0.5px)} + +<===> srgb_linear/red/error +Error: $red: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> srgb_linear/green/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $green: 0.5px)} + +<===> srgb_linear/green/error +Error: $green: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $green: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> srgb_linear/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $blue: 0.5px)} + +<===> srgb_linear/blue/error +Error: $blue: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $blue: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> display_p3/red/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 0.5px)} + +<===> display_p3/red/error +Error: $red: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(display-p3 0.2 0.5 0.7), $red: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> display_p3/green/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $green: 0.5px)} + +<===> display_p3/green/error +Error: $green: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(display-p3 0.2 0.5 0.7), $green: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> display_p3/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(display-p3 0.2 0.5 0.7), $blue: 0.5px)} + +<===> display_p3/blue/error +Error: $blue: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(display-p3 0.2 0.5 0.7), $blue: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> a98_rgb/red/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 0.5px)} + +<===> a98_rgb/red/error +Error: $red: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $red: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> a98_rgb/green/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $green: 0.5px)} + +<===> a98_rgb/green/error +Error: $green: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $green: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> a98_rgb/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $blue: 0.5px)} + +<===> a98_rgb/blue/error +Error: $blue: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(a98-rgb 0.2 0.5 0.7), $blue: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> prophoto_rgb/red/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 0.5px)} + +<===> prophoto_rgb/red/error +Error: $red: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> prophoto_rgb/green/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $green: 0.5px)} + +<===> prophoto_rgb/green/error +Error: $green: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $green: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> prophoto_rgb/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $blue: 0.5px)} + +<===> prophoto_rgb/blue/error +Error: $blue: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $blue: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> rec2020/red/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 0.5px)} + +<===> rec2020/red/error +Error: $red: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> rec2020/green/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $green: 0.5px)} + +<===> rec2020/green/error +Error: $green: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(rec2020 0.2 0.5 0.7), $green: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> rec2020/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $blue: 0.5px)} + +<===> rec2020/blue/error +Error: $blue: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(rec2020 0.2 0.5 0.7), $blue: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> xyz/red/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 0.5px)} + +<===> xyz/red/error +Error: $x: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> xyz/green/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $y: 0.5px)} + +<===> xyz/green/error +Error: $y: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(xyz 0.2 0.5 0.7), $y: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> xyz/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $z: 0.5px)} + +<===> xyz/blue/error +Error: $z: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(xyz 0.2 0.5 0.7), $z: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> xyz_d50/red/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 0.5px)} + +<===> xyz_d50/red/error +Error: $x: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> xyz_d50/green/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $y: 0.5px)} + +<===> xyz_d50/green/error +Error: $y: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $y: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> xyz_d50/blue/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $z: 0.5px)} + +<===> xyz_d50/blue/error +Error: $z: Expected 0.5px to have unit "%" or no units. + , +2 | a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $z: 0.5px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> lab/lightness/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 30 -50), $lightness: 30px)} + +<===> lab/lightness/error +Error: $lightness: Expected 30px to have unit "%" or no units. + , +2 | a {b: color.change(lab(50% 30 -50), $lightness: 30px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> lab/a/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 30 -50), $a: 20px)} + +<===> lab/a/error +Error: $a: Expected 20px to have unit "%" or no units. + , +2 | a {b: color.change(lab(50% 30 -50), $a: 20px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> lab/b/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 30 -50), $b: 20px)} + +<===> lab/b/error +Error: $b: Expected 20px to have unit "%" or no units. + , +2 | a {b: color.change(lab(50% 30 -50), $b: 20px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> oklab/lightness/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 0.3px)} + +<===> oklab/lightness/error +Error: $lightness: Expected 0.3px to have unit "%" or no units. + , +2 | a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 0.3px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> oklab/a/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $a: 0.2px)} + +<===> oklab/a/error +Error: $a: Expected 0.2px to have unit "%" or no units. + , +2 | a {b: color.change(oklab(50% 0.2 -0.3), $a: 0.2px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> oklab/b/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $b: 0.2px)} + +<===> oklab/b/error +Error: $b: Expected 0.2px to have unit "%" or no units. + , +2 | a {b: color.change(oklab(50% 0.2 -0.3), $b: 0.2px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> lch/lightness/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 30 50deg), $lightness: 30px)} + +<===> lch/lightness/error +Error: $lightness: Expected 30px to have unit "%" or no units. + , +2 | a {b: color.change(lch(50% 30 50deg), $lightness: 30px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> lch/chroma/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 30 50deg), $chroma: 20px)} + +<===> lch/chroma/error +Error: $chroma: Expected 20px to have unit "%" or no units. + , +2 | a {b: color.change(lch(50% 30 50deg), $chroma: 20px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> lch/hue/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 30 50deg), $hue: 20%)} + +<===> lch/hue/error +Error: $hue: Expected 20% to have an angle unit (deg, grad, rad, turn). + , +2 | a {b: color.change(lch(50% 30 50deg), $hue: 20%)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> oklch/lightness/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.3 50deg), $lightness: 30px)} + +<===> oklch/lightness/error +Error: $lightness: Expected 30px to have unit "%" or no units. + , +2 | a {b: color.change(oklch(50% 0.3 50deg), $lightness: 30px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> oklch/chroma/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.3 50deg), $chroma: 0.2px)} + +<===> oklch/chroma/error +Error: $chroma: Expected 0.2px to have unit "%" or no units. + , +2 | a {b: color.change(oklch(50% 0.3 50deg), $chroma: 0.2px)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet + +<===> +================================================================================ +<===> oklch/hue/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.3 50deg), $hue: 20%)} + +<===> oklch/hue/error +Error: $hue: Expected 20% to have an angle unit (deg, grad, rad, turn). + , +2 | a {b: color.change(oklch(50% 0.3 50deg), $hue: 20%)} + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ' + input.scss 2:7 root stylesheet diff --git a/spec/core_functions/color/change/hsl.hrx b/spec/core_functions/color/change/hsl.hrx index a0d5dd535..92e7ee0d2 100644 --- a/spec/core_functions/color/change/hsl.hrx +++ b/spec/core_functions/color/change/hsl.hrx @@ -106,6 +106,28 @@ a { b: rgb(199.53, 181.47, 199.53); } +<===> +================================================================================ +<===> saturation/above_range/input.scss +@use 'sass:color'; +a {b: color.change(plum, $saturation: 120%)} + +<===> saturation/above_range/output.css +a { + b: hsl(300, 120%, 74.7058823529%); +} + +<===> +================================================================================ +<===> saturation/below_range/input.scss +@use 'sass:color'; +a {b: color.change(plum, $saturation: -20%)} + +<===> saturation/below_range/output.css +a { + b: rgb(177.6, 203.4, 177.6); +} + <===> ================================================================================ <===> lightness/max/input.scss @@ -161,6 +183,28 @@ a { b: rgb(137.7, 0, 0); } +<===> +================================================================================ +<===> lightness/above_range/input.scss +@use 'sass:color'; +a {b: color.change(red, $lightness: 120%)} + +<===> lightness/above_range/output.css +a { + b: hsl(0, 100%, 120%); +} + +<===> +================================================================================ +<===> lightness/below_range/input.scss +@use 'sass:color'; +a {b: color.change(red, $lightness: -20%)} + +<===> lightness/below_range/output.css +a { + b: hsl(0, 100%, -20%); +} + <===> ================================================================================ <===> all/input.scss diff --git a/spec/core_functions/color/change/hwb.hrx b/spec/core_functions/color/change/hwb.hrx index 2ee404aa4..10afd2401 100644 --- a/spec/core_functions/color/change/hwb.hrx +++ b/spec/core_functions/color/change/hwb.hrx @@ -84,6 +84,17 @@ a { b: #cc3333; } +<===> +================================================================================ +<===> out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(#993333, $whiteness: 50%, $blackness: -20%)} + +<===> out_of_range/output.css +a { + b: hsl(0, 233.3333333333%, 85%); +} + <===> ================================================================================ <===> all/input.scss diff --git a/spec/core_functions/color/change/lab.hrx b/spec/core_functions/color/change/lab.hrx new file mode 100644 index 000000000..84d7bc0cd --- /dev/null +++ b/spec/core_functions/color/change/lab.hrx @@ -0,0 +1,129 @@ +<===> lightness/unitless/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $lightness: 30)} + +<===> lightness/unitless/output.css +a { + b: lab(30% 20 -30); +} + +<===> +================================================================================ +<===> lightness/percent/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $lightness: 30%)} + +<===> lightness/percent/output.css +a { + b: lab(30% 20 -30); +} + +<===> +================================================================================ +<===> lightness/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $lightness: 120%)} + +<===> lightness/out_of_range/output.css +a { + b: color-mix(in lab, color(xyz 1.7255148283 1.6190494947 2.5266428703) 100%, black); +} + +<===> +================================================================================ +<===> a/unitless/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $a: 50)} + +<===> a/unitless/output.css +a { + b: lab(50% 50 -30); +} + +<===> +================================================================================ +<===> a/percent/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $a: -40%)} + +<===> a/percent/output.css +a { + b: lab(50% -50 -30); +} + +<===> +================================================================================ +<===> a/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $a: 200)} + +<===> a/out_of_range/output.css +a { + b: lab(50% 200 -30); +} + +<===> +================================================================================ +<===> b/unitless/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $b: 50)} + +<===> b/unitless/output.css +a { + b: lab(50% 20 50); +} + +<===> +================================================================================ +<===> b/percent/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $b: -40%)} + +<===> b/percent/output.css +a { + b: lab(50% 20 -50); +} + +<===> +================================================================================ +<===> b/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $b: -200)} + +<===> b/out_of_range/output.css +a { + b: lab(50% 20 -200); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $lightness: 20%, $a: -30, $b: 40)} + +<===> all/output.css +a { + b: lab(20% -30 40); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30 / 0.9), $lightness: 30%)} + +<===> alpha_input/output.css +a { + b: lab(30% 20 -30 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(lab(50% 20 -30), $lightness: 30%, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: lab(30% 20 -30 / 0.9); +} diff --git a/spec/core_functions/color/change/lch.hrx b/spec/core_functions/color/change/lch.hrx new file mode 100644 index 000000000..fdb73abc4 --- /dev/null +++ b/spec/core_functions/color/change/lch.hrx @@ -0,0 +1,140 @@ +<===> lightness/unitless/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $lightness: 30)} + +<===> lightness/unitless/output.css +a { + b: lch(30% 20 30deg); +} + +<===> +================================================================================ +<===> lightness/percent/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $lightness: 30%)} + +<===> lightness/percent/output.css +a { + b: lch(30% 20 30deg); +} + +<===> +================================================================================ +<===> lightness/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $lightness: 120%)} + +<===> lightness/out_of_range/output.css +a { + b: color-mix(in lch, color(xyz 1.6569354424 1.6040925936 1.5400032443) 100%, black); +} + +<===> +================================================================================ +<===> chroma/unitless/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $chroma: 50)} + +<===> chroma/unitless/output.css +a { + b: lch(50% 50 30deg); +} + +<===> +================================================================================ +<===> chroma/percent/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $chroma: 40%)} + +<===> chroma/percent/output.css +a { + b: lch(50% 60 30deg); +} + +<===> +================================================================================ +<===> chroma/negative/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $chroma: -10)} + +<===> chroma/negative/output.css +a { + b: lch(50% 10 210deg); +} + +<===> +================================================================================ +<===> chroma/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $chroma: 200)} + +<===> chroma/out_of_range/output.css +a { + b: lch(50% 200 30deg); +} + +<===> +================================================================================ +<===> hue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $hue: 50deg)} + +<===> hue/unitless/output.css +a { + b: lch(50% 20 50deg); +} + +<===> +================================================================================ +<===> hue/negative/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $hue: -20deg)} + +<===> hue/negative/output.css +a { + b: lch(50% 20 340deg); +} + +<===> +================================================================================ +<===> hue/above_max/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $hue: 400deg)} + +<===> hue/above_max/output.css +a { + b: lch(50% 20 40deg); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $lightness: 20%, $chroma: 30, $hue: 40deg)} + +<===> all/output.css +a { + b: lch(20% 30 40deg); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg / 0.9), $lightness: 30%)} + +<===> alpha_input/output.css +a { + b: lch(30% 20 30deg / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(lch(50% 20 30deg), $lightness: 30%, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: lch(30% 20 30deg / 0.9); +} diff --git a/spec/core_functions/color/change/no_channels.hrx b/spec/core_functions/color/change/no_channels.hrx new file mode 100644 index 000000000..f59b2e643 --- /dev/null +++ b/spec/core_functions/color/change/no_channels.hrx @@ -0,0 +1,19 @@ +<===> identical/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 0deg), $space: lab)} + +<===> identical/output.css +a { + b: oklch(50% 0.2 0deg); +} + +<===> +================================================================================ +<===> powerless/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0 0deg), $space: lab)} + +<===> powerless/output.css +a { + b: oklch(50% 0 none); +} diff --git a/spec/core_functions/color/change/no_space.hrx b/spec/core_functions/color/change/no_space.hrx index 8e96a81d0..3cf8d754d 100644 --- a/spec/core_functions/color/change/no_space.hrx +++ b/spec/core_functions/color/change/no_space.hrx @@ -99,11 +99,11 @@ a { ================================================================================ <===> alpha/units/percent/input.scss @use 'sass:color'; -a {b: color.change(red, $alpha: 0.5%)} +a {b: color.change(red, $alpha: 50%)} <===> alpha/units/percent/output.css a { - b: rgba(255, 0, 0, 0.005); + b: rgba(255, 0, 0, 0.5); } <===> diff --git a/spec/core_functions/color/change/oklab.hrx b/spec/core_functions/color/change/oklab.hrx new file mode 100644 index 000000000..dc3efa1d4 --- /dev/null +++ b/spec/core_functions/color/change/oklab.hrx @@ -0,0 +1,129 @@ +<===> lightness/unitless/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 0.3)} + +<===> lightness/unitless/output.css +a { + b: oklab(30% 0.2 -0.3); +} + +<===> +================================================================================ +<===> lightness/percent/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 30%)} + +<===> lightness/percent/output.css +a { + b: oklab(30% 0.2 -0.3); +} + +<===> +================================================================================ +<===> lightness/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 1.2)} + +<===> lightness/out_of_range/output.css +a { + b: color-mix(in oklab, color(xyz 2.3267923962 1.5626810194 5.2743259015) 100%, black); +} + +<===> +================================================================================ +<===> a/unitless/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $a: 0.1)} + +<===> a/unitless/output.css +a { + b: oklab(50% 0.1 -0.3); +} + +<===> +================================================================================ +<===> a/percent/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $a: -40%)} + +<===> a/percent/output.css +a { + b: oklab(50% -0.16 -0.3); +} + +<===> +================================================================================ +<===> a/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $a: 1)} + +<===> a/out_of_range/output.css +a { + b: oklab(50% 1 -0.3); +} + +<===> +================================================================================ +<===> b/unitless/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $b: 0.4)} + +<===> b/unitless/output.css +a { + b: oklab(50% 0.2 0.4); +} + +<===> +================================================================================ +<===> b/percent/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $b: -40%)} + +<===> b/percent/output.css +a { + b: oklab(50% 0.2 -0.16); +} + +<===> +================================================================================ +<===> b/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $b: -1)} + +<===> b/out_of_range/output.css +a { + b: oklab(50% 0.2 -1); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 20%, $a: -0.3, $b: 0.4)} + +<===> all/output.css +a { + b: oklab(20% -0.3 0.4); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3 / 0.9), $lightness: 30%)} + +<===> alpha_input/output.css +a { + b: oklab(30% 0.2 -0.3 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(oklab(50% 0.2 -0.3), $lightness: 30%, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: oklab(30% 0.2 -0.3 / 0.9); +} diff --git a/spec/core_functions/color/change/oklch.hrx b/spec/core_functions/color/change/oklch.hrx new file mode 100644 index 000000000..2eecf61da --- /dev/null +++ b/spec/core_functions/color/change/oklch.hrx @@ -0,0 +1,140 @@ +<===> lightness/unitless/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $lightness: 0.3)} + +<===> lightness/unitless/output.css +a { + b: oklch(30% 0.2 30deg); +} + +<===> +================================================================================ +<===> lightness/percent/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $lightness: 30%)} + +<===> lightness/percent/output.css +a { + b: oklch(30% 0.2 30deg); +} + +<===> +================================================================================ +<===> lightness/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $lightness: 120%)} + +<===> lightness/out_of_range/output.css +a { + b: color-mix(in oklch, color(xyz 2.0602078346 1.6344742217 1.0169251403) 100%, black); +} + +<===> +================================================================================ +<===> chroma/unitless/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $chroma: 0.1)} + +<===> chroma/unitless/output.css +a { + b: oklch(50% 0.1 30deg); +} + +<===> +================================================================================ +<===> chroma/percent/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $chroma: 40%)} + +<===> chroma/percent/output.css +a { + b: oklch(50% 0.16 30deg); +} + +<===> +================================================================================ +<===> chroma/negative/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $chroma: -0.1)} + +<===> chroma/negative/output.css +a { + b: oklch(50% 0.1 210deg); +} + +<===> +================================================================================ +<===> chroma/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $chroma: 1)} + +<===> chroma/out_of_range/output.css +a { + b: oklch(50% 1 30deg); +} + +<===> +================================================================================ +<===> hue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $hue: 50deg)} + +<===> hue/unitless/output.css +a { + b: oklch(50% 0.2 50deg); +} + +<===> +================================================================================ +<===> hue/negative/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $hue: -20deg)} + +<===> hue/negative/output.css +a { + b: oklch(50% 0.2 340deg); +} + +<===> +================================================================================ +<===> hue/above_max/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $hue: 400deg)} + +<===> hue/above_max/output.css +a { + b: oklch(50% 0.2 40deg); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $lightness: 20%, $chroma: 0.1, $hue: 40deg)} + +<===> all/output.css +a { + b: oklch(20% 0.1 40deg); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg / 0.9), $lightness: 30%)} + +<===> alpha_input/output.css +a { + b: oklch(30% 0.2 30deg / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(oklch(50% 0.2 30deg), $lightness: 30%, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: oklch(30% 0.2 30deg / 0.9); +} diff --git a/spec/core_functions/color/change/prophoto_rgb.hrx b/spec/core_functions/color/change/prophoto_rgb.hrx new file mode 100644 index 000000000..1d5238bef --- /dev/null +++ b/spec/core_functions/color/change/prophoto_rgb.hrx @@ -0,0 +1,129 @@ +<===> red/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 0.5)} + +<===> red/unitless/output.css +a { + b: color(prophoto-rgb 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 50%)} + +<===> red/percent/output.css +a { + b: color(prophoto-rgb 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 1.2)} + +<===> red/out_of_range/output.css +a { + b: color(prophoto-rgb 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> green/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $green: 0.4)} + +<===> green/unitless/output.css +a { + b: color(prophoto-rgb 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $green: 40%)} + +<===> green/percent/output.css +a { + b: color(prophoto-rgb 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $green: -0.2)} + +<===> green/out_of_range/output.css +a { + b: color(prophoto-rgb 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> blue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $blue: 0.5)} + +<===> blue/unitless/output.css +a { + b: color(prophoto-rgb 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $blue: 50%)} + +<===> blue/percent/output.css +a { + b: color(prophoto-rgb 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $blue: 100)} + +<===> blue/out_of_range/output.css +a { + b: color(prophoto-rgb 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 0.7, $green: 0.4, $blue: 0.2)} + +<===> all/output.css +a { + b: color(prophoto-rgb 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7 / 0.9), $red: 0.5)} + +<===> alpha_input/output.css +a { + b: color(prophoto-rgb 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(prophoto-rgb 0.2 0.5 0.7), $red: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(prophoto-rgb 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/rec2020.hrx b/spec/core_functions/color/change/rec2020.hrx new file mode 100644 index 000000000..da2c37c23 --- /dev/null +++ b/spec/core_functions/color/change/rec2020.hrx @@ -0,0 +1,129 @@ +<===> red/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 0.5)} + +<===> red/unitless/output.css +a { + b: color(rec2020 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 50%)} + +<===> red/percent/output.css +a { + b: color(rec2020 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 1.2)} + +<===> red/out_of_range/output.css +a { + b: color(rec2020 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> green/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $green: 0.4)} + +<===> green/unitless/output.css +a { + b: color(rec2020 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $green: 40%)} + +<===> green/percent/output.css +a { + b: color(rec2020 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $green: -0.2)} + +<===> green/out_of_range/output.css +a { + b: color(rec2020 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> blue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $blue: 0.5)} + +<===> blue/unitless/output.css +a { + b: color(rec2020 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $blue: 50%)} + +<===> blue/percent/output.css +a { + b: color(rec2020 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $blue: 100)} + +<===> blue/out_of_range/output.css +a { + b: color(rec2020 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 0.7, $green: 0.4, $blue: 0.2)} + +<===> all/output.css +a { + b: color(rec2020 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7 / 0.9), $red: 0.5)} + +<===> alpha_input/output.css +a { + b: color(rec2020 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(rec2020 0.2 0.5 0.7), $red: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(rec2020 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/rgb.hrx b/spec/core_functions/color/change/rgb.hrx index f6b71c096..f63eb720a 100644 --- a/spec/core_functions/color/change/rgb.hrx +++ b/spec/core_functions/color/change/rgb.hrx @@ -40,6 +40,17 @@ a { b: #c80000; } +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(black, $red: 500)} + +<===> red/out_of_range/output.css +a { + b: hsl(0, 5000%, 98.0392156863%); +} + <===> ================================================================================ <===> green/max/input.scss @@ -84,6 +95,17 @@ a { b: #00c800; } +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(black, $green: -50)} + +<===> green/out_of_range/output.css +a { + b: hsl(120, 100%, -9.8039215686%); +} + <===> ================================================================================ <===> blue/max/input.scss @@ -128,6 +150,17 @@ a { b: #0000c8; } +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(black, $blue: 256)} + +<===> blue/out_of_range/output.css +a { + b: hsl(240, 100.7874015748%, 50.1960784314%); +} + <===> ================================================================================ <===> all/input.scss diff --git a/spec/core_functions/color/change/srgb.hrx b/spec/core_functions/color/change/srgb.hrx new file mode 100644 index 000000000..e7f123f34 --- /dev/null +++ b/spec/core_functions/color/change/srgb.hrx @@ -0,0 +1,129 @@ +<===> red/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 0.5)} + +<===> red/unitless/output.css +a { + b: color(srgb 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 50%)} + +<===> red/percent/output.css +a { + b: color(srgb 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 1.2)} + +<===> red/out_of_range/output.css +a { + b: color(srgb 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> green/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $green: 0.4)} + +<===> green/unitless/output.css +a { + b: color(srgb 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $green: 40%)} + +<===> green/percent/output.css +a { + b: color(srgb 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $green: -0.2)} + +<===> green/out_of_range/output.css +a { + b: color(srgb 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> blue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $blue: 0.5)} + +<===> blue/unitless/output.css +a { + b: color(srgb 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $blue: 50%)} + +<===> blue/percent/output.css +a { + b: color(srgb 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $blue: 100)} + +<===> blue/out_of_range/output.css +a { + b: color(srgb 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 0.7, $green: 0.4, $blue: 0.2)} + +<===> all/output.css +a { + b: color(srgb 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7 / 0.9), $red: 0.5)} + +<===> alpha_input/output.css +a { + b: color(srgb 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb 0.2 0.5 0.7), $red: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(srgb 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/srgb_linear.hrx b/spec/core_functions/color/change/srgb_linear.hrx new file mode 100644 index 000000000..2be519519 --- /dev/null +++ b/spec/core_functions/color/change/srgb_linear.hrx @@ -0,0 +1,129 @@ +<===> red/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 0.5)} + +<===> red/unitless/output.css +a { + b: color(srgb-linear 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 50%)} + +<===> red/percent/output.css +a { + b: color(srgb-linear 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> red/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 1.2)} + +<===> red/out_of_range/output.css +a { + b: color(srgb-linear 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> green/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $green: 0.4)} + +<===> green/unitless/output.css +a { + b: color(srgb-linear 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $green: 40%)} + +<===> green/percent/output.css +a { + b: color(srgb-linear 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> green/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $green: -0.2)} + +<===> green/out_of_range/output.css +a { + b: color(srgb-linear 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> blue/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $blue: 0.5)} + +<===> blue/unitless/output.css +a { + b: color(srgb-linear 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $blue: 50%)} + +<===> blue/percent/output.css +a { + b: color(srgb-linear 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> blue/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $blue: 100)} + +<===> blue/out_of_range/output.css +a { + b: color(srgb-linear 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 0.7, $green: 0.4, $blue: 0.2)} + +<===> all/output.css +a { + b: color(srgb-linear 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7 / 0.9), $red: 0.5)} + +<===> alpha_input/output.css +a { + b: color(srgb-linear 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(srgb-linear 0.2 0.5 0.7), $red: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(srgb-linear 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/xyz.hrx b/spec/core_functions/color/change/xyz.hrx new file mode 100644 index 000000000..1cd1f05d7 --- /dev/null +++ b/spec/core_functions/color/change/xyz.hrx @@ -0,0 +1,129 @@ +<===> x/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 0.5)} + +<===> x/unitless/output.css +a { + b: color(xyz 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> x/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 50%)} + +<===> x/percent/output.css +a { + b: color(xyz 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> x/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 1.2)} + +<===> x/out_of_range/output.css +a { + b: color(xyz 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> y/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $y: 0.4)} + +<===> y/unitless/output.css +a { + b: color(xyz 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> y/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $y: 40%)} + +<===> y/percent/output.css +a { + b: color(xyz 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> y/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $y: -0.2)} + +<===> y/out_of_range/output.css +a { + b: color(xyz 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> z/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $z: 0.5)} + +<===> z/unitless/output.css +a { + b: color(xyz 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> z/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $z: 50%)} + +<===> z/percent/output.css +a { + b: color(xyz 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> z/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $z: 100)} + +<===> z/out_of_range/output.css +a { + b: color(xyz 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 0.7, $y: 0.4, $z: 0.2)} + +<===> all/output.css +a { + b: color(xyz 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7 / 0.9), $x: 0.5)} + +<===> alpha_input/output.css +a { + b: color(xyz 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz 0.2 0.5 0.7), $x: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(xyz 0.5 0.5 0.7 / 0.9); +} diff --git a/spec/core_functions/color/change/xyz_d50.hrx b/spec/core_functions/color/change/xyz_d50.hrx new file mode 100644 index 000000000..6ef7951da --- /dev/null +++ b/spec/core_functions/color/change/xyz_d50.hrx @@ -0,0 +1,129 @@ +<===> x/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 0.5)} + +<===> x/unitless/output.css +a { + b: color(xyz-d50 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> x/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 50%)} + +<===> x/percent/output.css +a { + b: color(xyz-d50 0.5 0.5 0.7); +} + +<===> +================================================================================ +<===> x/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 1.2)} + +<===> x/out_of_range/output.css +a { + b: color(xyz-d50 1.2 0.5 0.7); +} + +<===> +================================================================================ +<===> y/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $y: 0.4)} + +<===> y/unitless/output.css +a { + b: color(xyz-d50 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> y/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $y: 40%)} + +<===> y/percent/output.css +a { + b: color(xyz-d50 0.2 0.4 0.7); +} + +<===> +================================================================================ +<===> y/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $y: -0.2)} + +<===> y/out_of_range/output.css +a { + b: color(xyz-d50 0.2 -0.2 0.7); +} + +<===> +================================================================================ +<===> z/unitless/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $z: 0.5)} + +<===> z/unitless/output.css +a { + b: color(xyz-d50 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> z/percent/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $z: 50%)} + +<===> z/percent/output.css +a { + b: color(xyz-d50 0.2 0.5 0.5); +} + +<===> +================================================================================ +<===> z/out_of_range/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $z: 100)} + +<===> z/out_of_range/output.css +a { + b: color(xyz-d50 0.2 0.5 100); +} + +<===> +================================================================================ +<===> all/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 0.7, $y: 0.4, $z: 0.2)} + +<===> all/output.css +a { + b: color(xyz-d50 0.7 0.4 0.2); +} + +<===> +================================================================================ +<===> alpha_input/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7 / 0.9), $x: 0.5)} + +<===> alpha_input/output.css +a { + b: color(xyz-d50 0.5 0.5 0.7 / 0.9); +} + +<===> +================================================================================ +<===> alpha_arg/input.scss +@use 'sass:color'; +a {b: color.change(color(xyz-d50 0.2 0.5 0.7), $x: 0.5, $alpha: 0.9)} + +<===> alpha_arg/output.css +a { + b: color(xyz-d50 0.5 0.5 0.7 / 0.9); +}