@thi.ng/color 5.6.3 → 5.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/README.md +1 -1
- package/alpha.js +6 -10
- package/analog.js +35 -67
- package/api/constants.js +128 -156
- package/api/gradients.js +0 -1
- package/api/names.js +154 -151
- package/api/ranges.js +0 -1
- package/api/system.js +21 -26
- package/api.js +27 -32
- package/clamp.js +18 -29
- package/closest-hue.js +6 -12
- package/color-range.js +159 -228
- package/color.js +29 -28
- package/contrast.js +7 -17
- package/convert.js +19 -40
- package/cosine-gradients.js +177 -229
- package/css/css.js +27 -53
- package/css/parse-css.js +94 -160
- package/defcolor.js +97 -108
- package/distance.js +96 -187
- package/gradients.js +29 -37
- package/hcy/hcy-rgb.js +20 -13
- package/hcy/hcy.js +9 -11
- package/hsi/hsi-rgb.js +32 -30
- package/hsi/hsi.js +9 -11
- package/hsl/hsl-css.js +9 -10
- package/hsl/hsl-hsv.js +12 -9
- package/hsl/hsl-rgb.js +14 -6
- package/hsl/hsl.js +14 -16
- package/hsv/hsv-css.js +4 -1
- package/hsv/hsv-hsl.js +11 -8
- package/hsv/hsv-rgb.js +14 -6
- package/hsv/hsv.js +14 -16
- package/hue.js +12 -12
- package/int/int-css.js +10 -6
- package/int/int-int.js +6 -10
- package/int/int-rgb.js +16 -5
- package/int/int-srgb.js +22 -4
- package/int/int.js +136 -142
- package/internal/css.js +16 -12
- package/internal/dispatch.js +6 -2
- package/internal/ensure.js +18 -16
- package/internal/matrix-ops.js +39 -41
- package/internal/scale.js +4 -2
- package/invert.js +46 -39
- package/is-black.js +12 -5
- package/is-gamut.js +8 -13
- package/is-gray.js +12 -5
- package/is-white.js +14 -7
- package/lab/lab-css.js +4 -9
- package/lab/lab-lab.js +6 -2
- package/lab/lab-lch.js +18 -10
- package/lab/lab-rgb.js +6 -14
- package/lab/lab-xyz.js +16 -20
- package/lab/lab50.js +18 -15
- package/lab/lab65.js +18 -15
- package/lch/lch-css.js +4 -9
- package/lch/lch.js +18 -23
- package/lighten.js +13 -17
- package/linear.js +6 -16
- package/luminance-rgb.js +14 -22
- package/luminance.js +16 -14
- package/max-chroma.js +1340 -227
- package/mix.js +34 -82
- package/oklab/oklab-css.js +4 -9
- package/oklab/oklab-rgb.js +17 -23
- package/oklab/oklab-xyz.js +22 -9
- package/oklab/oklab.js +19 -22
- package/oklch/oklab-oklch.js +10 -11
- package/oklch/oklch-css.js +4 -9
- package/oklch/oklch-oklab.js +9 -9
- package/oklch/oklch.js +14 -20
- package/package.json +19 -16
- package/rgb/hue-rgb.js +14 -11
- package/rgb/kelvin-rgba.js +23 -22
- package/rgb/rgb-css.js +4 -1
- package/rgb/rgb-hcv.js +14 -15
- package/rgb/rgb-hcy.js +10 -14
- package/rgb/rgb-hsi.js +13 -8
- package/rgb/rgb-hsl.js +8 -5
- package/rgb/rgb-hsv.js +7 -4
- package/rgb/rgb-lab.js +6 -18
- package/rgb/rgb-oklab.js +13 -19
- package/rgb/rgb-srgb.js +18 -8
- package/rgb/rgb-xyz.js +6 -19
- package/rgb/rgb-ycc.js +12 -17
- package/rgb/rgb.js +25 -22
- package/rotate.js +25 -38
- package/sort.js +24 -72
- package/srgb/srgb-css.js +9 -9
- package/srgb/srgb-int.js +6 -10
- package/srgb/srgb-rgb.js +18 -8
- package/srgb/srgb.js +16 -13
- package/strategies.js +42 -112
- package/swatches.js +28 -5
- package/tint.js +27 -53
- package/transform.js +274 -149
- package/variations.js +10 -9
- package/xyy/xyy-xyz.js +12 -11
- package/xyy/xyy.js +16 -13
- package/xyz/wavelength-xyz.js +14 -28
- package/xyz/xyz-lab.js +17 -26
- package/xyz/xyz-oklab.js +4 -1
- package/xyz/xyz-rgb.js +6 -18
- package/xyz/xyz-xyy.js +13 -12
- package/xyz/xyz-xyz.js +6 -2
- package/xyz/xyz50.js +20 -17
- package/xyz/xyz65.js +20 -17
- package/ycc/ycc-rgb.js +14 -19
- package/ycc/ycc.js +12 -9
package/xyz/xyz-xyy.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { safeDiv } from "@thi.ng/math/safe-div";
|
|
2
2
|
import { setC4 } from "@thi.ng/vectors/setc";
|
|
3
3
|
import { __ensureAlpha } from "../internal/ensure.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
const xyzXyy = (out, src) => {
|
|
5
|
+
const { 0: x, 1: Y } = src;
|
|
6
|
+
const sum = x + Y + src[2];
|
|
7
|
+
return setC4(
|
|
8
|
+
out || src,
|
|
9
|
+
safeDiv(x, sum),
|
|
10
|
+
safeDiv(Y, sum),
|
|
11
|
+
Y,
|
|
12
|
+
__ensureAlpha(src[3])
|
|
13
|
+
);
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
xyzXyy
|
|
16
17
|
};
|
package/xyz/xyz-xyz.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { BRADFORD_D50_D65, BRADFORD_D65_D50 } from "../api/constants.js";
|
|
2
2
|
import { __mulV33 } from "../internal/matrix-ops.js";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const xyzXyzD65_50 = (out, src) => __mulV33(out, BRADFORD_D65_D50, src);
|
|
4
|
+
const xyzXyzD50_65 = (out, src) => __mulV33(out, BRADFORD_D50_D65, src);
|
|
5
|
+
export {
|
|
6
|
+
xyzXyzD50_65,
|
|
7
|
+
xyzXyzD65_50
|
|
8
|
+
};
|
package/xyz/xyz50.js
CHANGED
|
@@ -7,21 +7,24 @@ import { rgbXyz } from "../rgb/rgb-xyz.js";
|
|
|
7
7
|
import { xyyXyz } from "../xyy/xyy-xyz.js";
|
|
8
8
|
import { xyzRgb } from "./xyz-rgb.js";
|
|
9
9
|
import { xyzXyzD65_50 } from "./xyz-xyz.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
const xyzD50 = defColor({
|
|
11
|
+
mode: "xyz50",
|
|
12
|
+
channels: {
|
|
13
|
+
x: { range: [0, D50[0]] },
|
|
14
|
+
y: { range: [0, D50[1]] },
|
|
15
|
+
z: { range: [0, D50[2]] }
|
|
16
|
+
},
|
|
17
|
+
order: ["x", "y", "z", "alpha"],
|
|
18
|
+
from: {
|
|
19
|
+
rgb: rgbXyz,
|
|
20
|
+
lab50: labXyz,
|
|
21
|
+
lab65: [labXyzD65, xyzXyzD65_50],
|
|
22
|
+
lch: [lchLab, labXyz],
|
|
23
|
+
oklab: [oklabXyzD65, xyzXyzD65_50],
|
|
24
|
+
xyy: xyyXyz
|
|
25
|
+
},
|
|
26
|
+
toRgb: xyzRgb
|
|
27
27
|
});
|
|
28
|
+
export {
|
|
29
|
+
xyzD50
|
|
30
|
+
};
|
package/xyz/xyz65.js
CHANGED
|
@@ -7,21 +7,24 @@ import { oklabXyzD65 } from "../oklab/oklab-xyz.js";
|
|
|
7
7
|
import { rgbXyzD65 } from "../rgb/rgb-xyz.js";
|
|
8
8
|
import { xyyXyz } from "../xyy/xyy-xyz.js";
|
|
9
9
|
import { xyzRgbD65 } from "./xyz-rgb.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
const xyzD65 = defColor({
|
|
11
|
+
mode: "xyz65",
|
|
12
|
+
channels: {
|
|
13
|
+
x: { range: [0, D65[0]] },
|
|
14
|
+
y: { range: [0, D65[1]] },
|
|
15
|
+
z: { range: [0, D65[2]] }
|
|
16
|
+
},
|
|
17
|
+
order: ["x", "y", "z", "alpha"],
|
|
18
|
+
from: {
|
|
19
|
+
rgb: rgbXyzD65,
|
|
20
|
+
lab50: [labLabD50_65, labXyzD65],
|
|
21
|
+
lab65: labXyzD65,
|
|
22
|
+
lch: [lchLab, labLabD50_65, labXyzD65],
|
|
23
|
+
oklab: oklabXyzD65,
|
|
24
|
+
xyy: xyyXyz
|
|
25
|
+
},
|
|
26
|
+
toRgb: xyzRgbD65
|
|
27
27
|
});
|
|
28
|
+
export {
|
|
29
|
+
xyzD65
|
|
30
|
+
};
|
package/ycc/ycc-rgb.js
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
import { setC4 } from "@thi.ng/vectors/setc";
|
|
2
2
|
import { RGB_LUMINANCE_REC709 } from "../api/constants.js";
|
|
3
3
|
import { __ensureAlpha } from "../internal/ensure.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* -
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export const yccRgb = (out, src, luma = RGB_LUMINANCE_REC709) => {
|
|
19
|
-
const y = src[0];
|
|
20
|
-
const bb = (2 - 2 * luma[2]) * src[1];
|
|
21
|
-
const rr = (2 - 2 * luma[0]) * src[2];
|
|
22
|
-
return setC4(out || src, y + rr, y - (luma[2] / luma[1]) * bb - (luma[0] / luma[1]) * rr, y + bb, __ensureAlpha(src[3]));
|
|
4
|
+
const yccRgb = (out, src, luma = RGB_LUMINANCE_REC709) => {
|
|
5
|
+
const y = src[0];
|
|
6
|
+
const bb = (2 - 2 * luma[2]) * src[1];
|
|
7
|
+
const rr = (2 - 2 * luma[0]) * src[2];
|
|
8
|
+
return setC4(
|
|
9
|
+
out || src,
|
|
10
|
+
y + rr,
|
|
11
|
+
y - luma[2] / luma[1] * bb - luma[0] / luma[1] * rr,
|
|
12
|
+
y + bb,
|
|
13
|
+
__ensureAlpha(src[3])
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
yccRgb
|
|
23
18
|
};
|
package/ycc/ycc.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { defColor } from "../defcolor.js";
|
|
2
2
|
import { rgbYcc } from "../rgb/rgb-ycc.js";
|
|
3
3
|
import { yccRgb } from "./ycc-rgb.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
const ycc = defColor({
|
|
5
|
+
mode: "ycc",
|
|
6
|
+
channels: {
|
|
7
|
+
cb: { range: [-0.5, 0.5] },
|
|
8
|
+
cr: { range: [-0.5, 0.5] }
|
|
9
|
+
},
|
|
10
|
+
order: ["y", "cb", "cr", "alpha"],
|
|
11
|
+
from: { rgb: rgbYcc },
|
|
12
|
+
toRgb: yccRgb
|
|
13
13
|
});
|
|
14
|
+
export {
|
|
15
|
+
ycc
|
|
16
|
+
};
|