Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/css-color-parser/dist/index.mjs

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions packages/css-color-parser/src/color-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,13 @@ const predefinedRGB_or_XYZ_Spaces = new Set([
]);

export function colorDataToForInterpolation(colorData: ColorData, toNotation: ColorNotation): ColorData {
// https://github.com/w3c/csswg-drafts/issues/14347#issuecomment-5346256034
if (colorData.colorNotation === toNotation) {
return {
...colorData,
};
}

// https://drafts.csswg.org/css-color-4/#interpolation
// 1. checking the two colors for analogous components and analogous sets which will be carried forward
const originalChannelValues = [...colorData.channels] as Color;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import { parse } from '../util/parse.mjs';
import { serialize_OKLCH_data } from '../util/serialize.mjs';

const tests = [
['color-mix(in oklch, oklch(100% 0% 60deg), oklch(50% 50% 0deg))', 'oklch(0.75 0.1 0)'],
['color-mix(in oklch, oklch(100% 0% 60deg), oklch(50% 50% 0deg))', 'oklch(0.75 0.1 30)'],
['color-mix(in oklch, oklch(100% 0% none), oklch(50% 50% 0deg))', 'oklch(0.75 0.1 0)'],
['color-mix(in oklch, rgb(255, 255, 255), rgb(180, 6, 95))', 'oklch(0.75031 0.10016 359.858)'],
['color-mix(in lch, oklch(75% 0% 60deg), oklch(75% 50% 0deg))', 'oklch(0.74979 0.09824 0.10588)'],
['color-mix(in oklch, oklch(100% 0% none), oklch(50% 50% 0deg))', 'oklch(0.75 0.1 0)'],
['color-mix(in oklch, oklch(100% none 60deg), oklch(50% 50% 0deg))', 'oklch(0.75 0.2 0)'],
['color-mix(in oklch, oklch(100% none 60deg), oklch(50% 50% 0deg))', 'oklch(0.75 0.2 30)'],

// Analogous sets
['color-mix(in oklch, rgb(none none none), oklch(0.5 0.2 50))', 'oklch(0.5 0.2 50)'],
Expand Down
10 changes: 5 additions & 5 deletions packages/css-color-parser/test/basic/color-mix-function.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ const tests = [
['color-mix(in hsl decreasing hue, hsl(180deg 50% 50%), hsl(180deg 50% 50%))', canonicalize('hsl(180deg 50% 50%)')],

['color-mix(in hsl longer hue, hsl(50deg 0% 50%), hsl(50deg 0% 50%))', canonicalize('hsl(230deg 0% 50%)')],
['color-mix(in hsl, color-mix(in hsl longer hue, hsl(50deg 0% 50%), hsl(50deg 0% 50%)), hsl(180deg 100% 50%))', canonicalize('hsl(180deg 50% 50%)')],
['color-mix(in hsl, color-mix(in hsl longer hue, hsl(50deg 0% 50%), hsl(50deg 0% 50%)), hsl(180deg 100% 50%))', canonicalize('hsl(205deg 50% 50%)')],

['color-mix(in hsl, hsl(30deg 40% 80% / 25%) 0%, hsl(90deg none none / none))', canonicalize('hsl(30deg 40% 80% / 25%)')],
['color-mix(in hsl, hsl(30deg 40% 80% / 25%) 0%, hsl(90deg none none / none))', canonicalize('hsl(90deg 40% 80% / 25%)')],
['color-mix(in hwb, hwb(30deg 30% 40% / 25%) 0%, hwb(90deg none none / 0.5))', canonicalize('hwb(90deg 30% 40% / 0.5)')],
['color-mix(in hsl, hsl(from hsl(none 50% 50%) h s l), hsl(from hsl(120deg 50% 50%) h s l))', canonicalize('hsl(120deg 50% 50%)')],
['color-mix(in hsl, hsl(from hsl(0deg 50% 50%) none s l), hsl(from hsl(120deg 50% 50%) h s l))', canonicalize('hsl(120deg 50% 50%)')],
Expand Down Expand Up @@ -193,7 +193,7 @@ assert.deepStrictEqual(
color(parse('color-mix(in lch, lch(50% 50% 180deg), lch(100% 0% 0deg))')),
{
colorNotation: 'lch',
channels: [75, 37.5, 180],
channels: [75, 37.5, 90],
alpha: 1,
syntaxFlags: new Set(['color-mix']),
},
Expand Down Expand Up @@ -233,7 +233,7 @@ assert.deepStrictEqual(
color(parse('color-mix(in lch, lch(100 0 40deg), lch(100 0 60deg))')),
{
colorNotation: 'lch',
channels: [100, 0, Number.NaN],
channels: [100, 0, 50],
alpha: 1,
syntaxFlags: new Set(['color-mix']),
},
Expand Down Expand Up @@ -293,7 +293,7 @@ assert.deepStrictEqual(
color(parse('color-mix(in hsl, lch(none 0 30), hsl(50 0 none))')),
{
colorNotation: 'hsl',
channels: [Number.NaN, 0, Number.NaN],
channels: [50, 0, Number.NaN],
alpha: 1,
syntaxFlags: new Set(['color-mix']),
},
Expand Down
14 changes: 7 additions & 7 deletions packages/css-color-parser/test/basic/none-exhaustive.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { parse } from '../util/parse.mjs';
// https://github.com/w3c/csswg-drafts/issues/14100
['lch(from orchid l 0 h)', 'lch(62.75256542 0 326.96909222)'],
['lch(from lch(from orchid l 0 h) l c h)', 'lch(62.75256542 0 326.96909222)'],
['color-mix(in lch, lch(from orchid l 0 h))', 'lch(62.75256542 0 none)'],
['color-mix(in lch, lch(from orchid l 0 h))', 'lch(62.75256542 0 326.96909222)'],

// exhaustive tests
// HSL - RCS
Expand Down Expand Up @@ -71,10 +71,10 @@ import { parse } from '../util/parse.mjs';

// HSL - color-mix
['color-mix(in hsl, hsl(none 50% 50%), hsl(11 33 44))', 'color(srgb 0.66505 0.34646833 0.27495)', 'hsl(11 41.5% 47%)'],
['color-mix(in hsl, hsl(180 none 50%), hsl(11 33 44))', 'color(srgb 0.6251 0.37177 0.3149)', 'hsl(11 33% 47%)'],
['color-mix(in hsl, hsl(180 none 50%), hsl(11 33 44))', 'color(srgb 0.441565 0.6251 0.3149)', 'hsl(95.5 33% 47%)'],
['color-mix(in hsl, hsl(180 50% none), hsl(11 33 44))', 'color(srgb 0.40652333 0.6226 0.2574)', 'hsl(95.5 41.5% 44%)'],
['color-mix(in hsl, hsl(none none 50%), hsl(11 33 44))', 'color(srgb 0.6251 0.37177 0.3149)', 'hsl(11 33% 47%)'],
['color-mix(in hsl, hsl(180 none none), hsl(11 33 44))', 'color(srgb 0.5852 0.34804 0.2948)', 'hsl(11 33% 44%)'],
['color-mix(in hsl, hsl(180 none none), hsl(11 33 44))', 'color(srgb 0.41338 0.5852 0.2948)', 'hsl(95.5 33% 44%)'],
['color-mix(in hsl, hsl(none 50% none), hsl(11 33 44))', 'color(srgb 0.6226 0.32435333 0.2574)', 'hsl(11 41.5% 44%)'],
['color-mix(in hsl, hsl(none none none), hsl(11 33 44))', 'color(srgb 0.5852 0.34804 0.2948)', 'hsl(11 33% 44%)'],

Expand Down Expand Up @@ -295,9 +295,9 @@ import { parse } from '../util/parse.mjs';
['color-mix(in lch, hwb(none none none), lch(11 33 44))', 'lch(11 33 44)'],

['color-mix(in lch, lch(none 20 180), lch(11 33 44))', 'lch(11 26.5 112)'],
['color-mix(in lch, lch(20 none 180), lch(11 33 44))', 'lch(15.5 33 44)'],
['color-mix(in lch, lch(20 none 180), lch(11 33 44))', 'lch(15.5 33 112)'],
['color-mix(in lch, lch(20 20 none), lch(11 33 44))', 'lch(15.5 26.5 44)'],
['color-mix(in lch, lch(none none 180), lch(11 33 44))', 'lch(11 33 44)'],
['color-mix(in lch, lch(none none 180), lch(11 33 44))', 'lch(11 33 112)'],
['color-mix(in lch, lch(20 none none), lch(11 33 44))', 'lch(15.5 33 44)'],
['color-mix(in lch, lch(none 20 none), lch(11 33 44))', 'lch(11 26.5 44)'],
['color-mix(in lch, lch(none none none), lch(11 33 44))', 'lch(11 33 44)'],
Expand Down Expand Up @@ -407,9 +407,9 @@ import { parse } from '../util/parse.mjs';
['color-mix(in oklch, lch(none none none), oklch(0.11 0.33 44))', 'oklch(0.11 0.33 44)'],

['color-mix(in oklch, oklch(none 0.2 180), oklch(0.11 0.33 44))', 'oklch(0.11 0.265 112)'],
['color-mix(in oklch, oklch(0.2 none 180), oklch(0.11 0.33 44))', 'oklch(0.155 0.33 44)'],
['color-mix(in oklch, oklch(0.2 none 180), oklch(0.11 0.33 44))', 'oklch(0.155 0.33 112)'],
['color-mix(in oklch, oklch(0.2 0.2 none), oklch(0.11 0.33 44))', 'oklch(0.155 0.265 44)'],
['color-mix(in oklch, oklch(none none 180), oklch(0.11 0.33 44))', 'oklch(0.11 0.33 44)'],
['color-mix(in oklch, oklch(none none 180), oklch(0.11 0.33 44))', 'oklch(0.11 0.33 112)'],
['color-mix(in oklch, oklch(0.2 none none), oklch(0.11 0.33 44))', 'oklch(0.155 0.33 44)'],
['color-mix(in oklch, oklch(none 0.2 none), oklch(0.11 0.33 44))', 'oklch(0.11 0.265 44)'],
['color-mix(in oklch, oklch(none none none), oklch(0.11 0.33 44))', 'oklch(0.11 0.33 44)'],
Expand Down
54 changes: 27 additions & 27 deletions packages/css-color-parser/test/basic/powerless-exhaustive.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,14 @@ import { parse } from '../util/parse.mjs';

// HSL - color-mix
['color-mix(in hsl, hsl(0 50% 50%), hsl(11 33 44))', 'color(srgb 0.66505 0.31070917 0.27495)', 'hsl(5.5 41.5% 47%)'],
['color-mix(in hsl, hsl(180 0 50%), hsl(11 33 44))', 'color(srgb 0.54755 0.420885 0.39245)', 'hsl(11 16.5% 47%)'],
['color-mix(in hsl, hsl(180 0 50%), hsl(11 33 44))', 'color(srgb 0.4557825 0.54755 0.39245)', 'hsl(95.5 16.5% 47%)'],
['color-mix(in hsl, hsl(180 50% 0), hsl(11 33 44))', 'color(srgb 0.20326167 0.3113 0.1287)', 'hsl(95.5 41.5% 22%)'],
['color-mix(in hsl, hsl(0 0 50%), hsl(11 33 44))', 'color(srgb 0.54755 0.420885 0.39245)', 'hsl(11 16.5% 47%)'],
['color-mix(in hsl, hsl(180 0 0), hsl(11 33 44))', 'color(srgb 0.2563 0.19701 0.1837)', 'hsl(11 16.5% 22%)'],
['color-mix(in hsl, hsl(0 0 50%), hsl(11 33 44))', 'color(srgb 0.54755 0.4066675 0.39245)', 'hsl(5.5 16.5% 47%)'],
['color-mix(in hsl, hsl(180 0 0), hsl(11 33 44))', 'color(srgb 0.213345 0.2563 0.1837)', 'hsl(95.5 16.5% 22%)'],
['color-mix(in hsl, hsl(0 50% 0), hsl(11 33 44))', 'color(srgb 0.3113 0.14543833 0.1287)', 'hsl(5.5 41.5% 22%)'],
['color-mix(in hsl, hsl(0 0 0), hsl(11 33 44))', 'color(srgb 0.2563 0.19701 0.1837)', 'hsl(11 16.5% 22%)'],
['color-mix(in hsl, hsl(0 0 0), hsl(11 33 44))', 'color(srgb 0.2563 0.190355 0.1837)', 'hsl(5.5 16.5% 22%)'],

['color-mix(in hsl, hsl(180 0.001% 50%), hsl(11 33 44))', 'color(srgb 0.54755 0.420885 0.39245)', 'hsl(11 16.5% 47%)'],
['color-mix(in hsl, hsl(180 0.001% 50%), hsl(11 33 44))', 'color(srgb 0.45578207 0.54755235 0.39244765)', 'hsl(95.5 16.5005% 47%)'],
['color-mix(in hsl, hsl(180 0.0011% 50%), hsl(11 33 44))', 'color(srgb 0.45578203 0.54755258 0.39244742)', 'hsl(95.5 16.50055% 47%)'],

['color-mix(in hsl, hwb(0 25% 25%), hsl(11 33 44))', 'color(srgb 0.66505 0.31070917 0.27495)', 'hsl(5.5 41.5% 47%)'],
Expand Down Expand Up @@ -194,22 +194,22 @@ import { parse } from '../util/parse.mjs';
['color-mix(in hwb, hsl(180 0.0011% 50%), hwb(11 33 44))', 'color(srgb 0.46195783 0.53000275 0.41499725)', 'hwb(95.5 41.499725% 46.999725%)'],

['color-mix(in hwb, hwb(0 25% 25%), hwb(11 33 44))', 'color(srgb 0.655 0.32345833 0.29)', 'hwb(5.5 29% 34.5%)'],
['color-mix(in hwb, hwb(180 100% 25%), hwb(11 33 44))', 'color(srgb 0.65841584 0.65841584 0.65841584)', 'hwb(11 66.5% 34.5%)'],
['color-mix(in hwb, hwb(180 25% 100%), hwb(11 33 44))', 'color(srgb 0.28712871 0.28712871 0.28712871)', 'hwb(11 29% 72%)'],
['color-mix(in hwb, hwb(0 100% 25%), hwb(11 33 44))', 'color(srgb 0.65841584 0.65841584 0.65841584)', 'hwb(11 66.5% 34.5%)'],
['color-mix(in hwb, hwb(180 100% 100%), hwb(11 33 44))', 'color(srgb 0.4801444 0.4801444 0.4801444)', 'hwb(11 66.5% 72%)'],
['color-mix(in hwb, hwb(0 25% 100%), hwb(11 33 44))', 'color(srgb 0.28712871 0.28712871 0.28712871)', 'hwb(11 29% 72%)'],
['color-mix(in hwb, hwb(0 100% 100%), hwb(11 33 44))', 'color(srgb 0.4801444 0.4801444 0.4801444)', 'hwb(11 66.5% 72%)'],

['color-mix(in hwb, hwb(180 99.999% 0%), hwb(11 33 44))', 'color(srgb 0.779995 0.68607833 0.664995)', 'hwb(11 66.4995% 22.0005%)'],
['color-mix(in hwb, hwb(180 99.999% none), hwb(11 33 44))', 'color(srgb 0.60180995 0.60180995 0.60180995)', 'hwb(11 66.5% 44%)'],
['color-mix(in hwb, hwb(180 100% 25%), hwb(11 33 44))', 'color(srgb 0.65841584 0.65841584 0.65841584)', 'hwb(95.5 66.5% 34.5%)'],
['color-mix(in hwb, hwb(180 25% 100%), hwb(11 33 44))', 'color(srgb 0.28712871 0.28712871 0.28712871)', 'hwb(95.5 29% 72%)'],
['color-mix(in hwb, hwb(0 100% 25%), hwb(11 33 44))', 'color(srgb 0.65841584 0.65841584 0.65841584)', 'hwb(5.5 66.5% 34.5%)'],
['color-mix(in hwb, hwb(180 100% 100%), hwb(11 33 44))', 'color(srgb 0.4801444 0.4801444 0.4801444)', 'hwb(95.5 66.5% 72%)'],
['color-mix(in hwb, hwb(0 25% 100%), hwb(11 33 44))', 'color(srgb 0.28712871 0.28712871 0.28712871)', 'hwb(5.5 29% 72%)'],
['color-mix(in hwb, hwb(0 100% 100%), hwb(11 33 44))', 'color(srgb 0.4801444 0.4801444 0.4801444)', 'hwb(5.5 66.5% 72%)'],

['color-mix(in hwb, hwb(180 99.999% 0%), hwb(11 33 44))', 'color(srgb 0.71195538 0.78 0.664995)', 'hwb(95.5 66.4995% 22%)'],
['color-mix(in hwb, hwb(180 99.999% none), hwb(11 33 44))', 'color(srgb 0.60180815 0.60180815 0.60180815)', 'hwb(95.5 66.4995% 44%)'],
['color-mix(in hwb, hsl(from hwb(180 99.999% none) h s l), hwb(11 33 44))', 'color(srgb 0.78 0.68608333 0.665)', 'hwb(11 66.5% 22%)'],
['color-mix(in hwb, hwb(180 99.998% 0%), hwb(11 33 44))', 'color(srgb 0.71195242 0.78 0.66499)', 'hwb(95.5 66.499% 22%)'],
['color-mix(in hwb, hwb(180 0% 99.999%), hwb(11 33 44))', 'color(srgb 0.28 0.18608333 0.165)', 'hwb(11 16.5% 72%)'],
['color-mix(in hwb, hwb(180 none 99.999%), hwb(11 33 44))', 'color(srgb 0.31428571 0.31428571 0.31428571)', 'hwb(11 33% 72%)'],
['color-mix(in hwb, hwb(180 0% 99.999%), hwb(11 33 44))', 'color(srgb 0.21196037 0.280005 0.165)', 'hwb(95.5 16.5% 71.9995%)'],
['color-mix(in hwb, hwb(180 none 99.999%), hwb(11 33 44))', 'color(srgb 0.31428721 0.31428721 0.31428721)', 'hwb(95.5 33% 71.9995%)'],
['color-mix(in hwb, hsl(from hwb(180 none 99.999%) h s l), hwb(11 33 44))', 'color(srgb 0.28 0.18608333 0.165)', 'hwb(11 16.5% 72%)'],
['color-mix(in hwb, hwb(180 0% 99.998%), hwb(11 33 44))', 'color(srgb 0.21196242 0.28001 0.165)', 'hwb(95.5 16.5% 71.999%)'],
['color-mix(in hwb, hwb(180 49.999% 50%), hwb(11 33 44))', 'color(srgb 0.529995 0.43607833 0.414995)', 'hwb(11 41.4995% 47.0005%)'],
['color-mix(in hwb, hwb(180 49.999% 50%), hwb(11 33 44))', 'color(srgb 0.46195538 0.53 0.414995)', 'hwb(95.5 41.4995% 47%)'],
['color-mix(in hwb, hwb(180 49.998% 50%), hwb(11 33 44))', 'color(srgb 0.46195242 0.53 0.41499)', 'hwb(95.5 41.499% 47%)'],

['color-mix(in hwb, lch(0 20 180), hwb(11 33 44))', 'color(srgb 0.22074713 0.30976443 0.09950084)', 'hwb(85.40163067 9.95008365% 69.02355713%)'],
Expand Down Expand Up @@ -323,14 +323,14 @@ import { parse } from '../util/parse.mjs';
['color-mix(in lch, hwb(180 99.998% 0%), lch(11 33 44))', 'lch(55.49980429 16.50092511 121.84949895)'],

['color-mix(in lch, lch(0 20 180), lch(11 33 44))', 'lch(5.5 26.5 112)'],
['color-mix(in lch, lch(20 0 180), lch(11 33 44))', 'lch(15.5 16.5 44)'],
['color-mix(in lch, lch(20 0 180), lch(11 33 44))', 'lch(15.5 16.5 112)'],
['color-mix(in lch, lch(20 20 0), lch(11 33 44))', 'lch(15.5 26.5 22)'],
['color-mix(in lch, lch(0 0 180), lch(11 33 44))', 'lch(5.5 16.5 44)'],
['color-mix(in lch, lch(20 0 0), lch(11 33 44))', 'lch(15.5 16.5 44)'],
['color-mix(in lch, lch(0 0 180), lch(11 33 44))', 'lch(5.5 16.5 112)'],
['color-mix(in lch, lch(20 0 0), lch(11 33 44))', 'lch(15.5 16.5 22)'],
['color-mix(in lch, lch(0 20 0), lch(11 33 44))', 'lch(5.5 26.5 22)'],
['color-mix(in lch, lch(0 0 0), lch(11 33 44))', 'lch(5.5 16.5 44)'],
['color-mix(in lch, lch(0 0 0), lch(11 33 44))', 'lch(5.5 16.5 22)'],

['color-mix(in lch, lch(20 0.0015 180), lch(11 33 44))', 'lch(15.5 16.5 44)'],
['color-mix(in lch, lch(20 0.0015 180), lch(11 33 44))', 'lch(15.5 16.50075 112)'],
['color-mix(in lch, lch(20 0.00151 180), lch(11 33 44))', 'lch(15.5 16.500755 112)'],

['color-mix(in lch, oklch(0 0.2 180), lch(11 33 44))', 'lch(5.50498007 17.8251974 112.60184783)'],
Expand Down Expand Up @@ -444,14 +444,14 @@ import { parse } from '../util/parse.mjs';
['color-mix(in oklch, lch(20 0.00151 180), oklch(0.11 0.33 0.44))', 'oklch(0.21017217 0.16500223 89.97450216)'],

['color-mix(in oklch, oklch(0 0.2 180), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.265 90.22)'],
['color-mix(in oklch, oklch(0.2 0 180), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.165 0.44)'],
['color-mix(in oklch, oklch(0.2 0 180), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.165 90.22)'],
['color-mix(in oklch, oklch(0.2 0.2 0), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.265 0.22)'],
['color-mix(in oklch, oklch(0 0 180), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.165 0.44)'],
['color-mix(in oklch, oklch(0.2 0 0), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.165 0.44)'],
['color-mix(in oklch, oklch(0 0 180), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.165 90.22)'],
['color-mix(in oklch, oklch(0.2 0 0), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.165 0.22)'],
['color-mix(in oklch, oklch(0 0.2 0), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.265 0.22)'],
['color-mix(in oklch, oklch(0 0 0), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.165 0.44)'],
['color-mix(in oklch, oklch(0 0 0), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.165 0.22)'],

['color-mix(in oklch, oklch(0.2 0.000004 180), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.165 0.44)'],
['color-mix(in oklch, oklch(0.2 0.000004 180), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.165002 90.22)'],
['color-mix(in oklch, oklch(0.2 0.0000041 180), oklch(0.11 0.33 0.44))', 'oklch(0.155 0.16500205 90.22)'],

['color-mix(in oklch, rgb(0 0 0), oklch(0.11 0.33 0.44))', 'oklch(0.055 0.165 0.44)'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ output = output.replaceAll(array_notation_three_args_computed_args_single_quote,
return `['${b}', '${(resultB)}', '${(resultC)}'`;
}

const result = reducePrecisionWholeValue(computedValue(b));
const result = reducePrecisionWholeValue(computedValue(color(parse(b))));
if (!result) {
return a;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ import { serialize_sRGB_data } from '../util/serialize.mjs';
['color-mix(in hsl, hsl(120deg 20% 40%), hsl(none none none))', canonicalize('hsl(120deg 20% 40%)')],
['color-mix(in hsl, hsl(120deg 20% none), hsl(30deg 40% 60%))', canonicalize('hsl(75deg 30% 60%)')],
['color-mix(in hsl, hsl(120deg 20% 40%), hsl(30deg 20% none))', canonicalize('hsl(75deg 20% 40%)')],
['color-mix(in hsl, hsl(none 20% 40%), hsl(30deg none 80%))', canonicalize('hsl(none 20% 60%)')],
['color-mix(in hsl, hsl(none 20% 40%), hsl(30deg none 80%))', canonicalize('hsl(30deg 20% 60%)')],

['color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40%))', canonicalize('hsl(60deg 40% 40%)')],
['color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40% / 0.5))', canonicalize('hsl(60deg 40% 40% / 0.5)')],
Expand Down Expand Up @@ -213,7 +213,7 @@ import { serialize_sRGB_data } from '../util/serialize.mjs';
['color-mix(in lch, lch(10 20 30deg), lch(none none none))', canonicalize('lch(10 20 30)')],
['color-mix(in lch, lch(10 20 none), lch(50 60 70deg))', canonicalize('lch(30 40 70)')],
['color-mix(in lch, lch(10 20 30deg), lch(50 60 none))', canonicalize('lch(30 40 30)')],
['color-mix(in lch, lch(none 20 30deg), lch(50 none 70deg))', canonicalize('lch(50 20 30)')],
['color-mix(in lch, lch(none 20 30deg), lch(50 none 70deg))', canonicalize('lch(50 20 50)')],
['color-mix(in lch, lch(10 20 30deg / none), lch(50 60 70deg))', canonicalize('lch(30 40 50)')],
['color-mix(in lch, lch(10 20 30deg / none), lch(50 60 70deg / 0.5))', canonicalize('lch(30 40 50 / 0.5)')],
['color-mix(in lch, lch(10 20 30deg / none), lch(50 60 70deg / none))', canonicalize('lch(30 40 50 / none)')],
Expand Down Expand Up @@ -293,14 +293,14 @@ import { serialize_sRGB_data } from '../util/serialize.mjs';
['color-mix(in oklch, oklch(0.1 0.2 30deg), oklch(none none none))', canonicalize('oklch(0.1 0.2 30)')],
['color-mix(in oklch, oklch(0.1 0.2 none), oklch(0.5 0.6 70deg))', canonicalize('oklch(0.3 0.4 70)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg), oklch(0.5 0.6 none))', canonicalize('oklch(0.3 0.4 30)')],
['color-mix(in oklch, oklch(none 0.2 30deg), oklch(0.5 none 70deg))', canonicalize('oklch(0.5 0.2 30)')],
['color-mix(in oklch, oklch(none 0.2 30deg), oklch(0.5 none 70deg))', canonicalize('oklch(0.5 0.2 50)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / none), oklch(0.5 0.6 70deg))', canonicalize('oklch(0.3 0.4 50)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / none), oklch(0.5 0.6 70deg / 0.5))', canonicalize('oklch(0.3 0.4 50 / 0.5)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / none), oklch(0.5 0.6 70deg / none))', canonicalize('oklch(0.3 0.4 50 / none)')],

['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(0.5 none none / none))', canonicalize('oklch(0.5 0.2 30 / 0.25)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(none 0.5 none / none))', canonicalize('oklch(0.1 0.5 30 / 0.25)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(none none 90deg / none))', canonicalize('oklch(0.1 0.2 30 / 0.25)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(none none 90deg / none))', canonicalize('oklch(0.1 0.2 90 / 0.25)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(0.5 0.5 none / none))', canonicalize('oklch(0.5 0.5 30 / 0.25)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(none none none / 0.5))', canonicalize('oklch(0.1 0.2 30 / 0.5)')],
['color-mix(in oklch, oklch(0.1 0.2 30deg / 25%) 0%, oklch(0.5 none none / 0.5))', canonicalize('oklch(0.5 0.2 30 / 0.5)')],
Expand Down
Loading