@lakuna/color 1.2.0 → 1.2.1
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/dist/convert/adobeToXyz.d.ts +1 -1
- package/dist/convert/adobeToXyz.d.ts.map +1 -1
- package/dist/convert/adobeToXyz.js.map +1 -1
- package/dist/convert/cmyToCmyk.d.ts +1 -1
- package/dist/convert/cmyToCmyk.d.ts.map +1 -1
- package/dist/convert/cmyToCmyk.js.map +1 -1
- package/dist/convert/cmyToRgb.d.ts +1 -1
- package/dist/convert/cmyToRgb.d.ts.map +1 -1
- package/dist/convert/cmyToRgb.js.map +1 -1
- package/dist/convert/cmykToCmy.d.ts +1 -1
- package/dist/convert/cmykToCmy.d.ts.map +1 -1
- package/dist/convert/cmykToCmy.js.map +1 -1
- package/dist/convert/hslToRgb.d.ts +1 -1
- package/dist/convert/hslToRgb.d.ts.map +1 -1
- package/dist/convert/hslToRgb.js.map +1 -1
- package/dist/convert/hsvToRgb.d.ts +1 -1
- package/dist/convert/hsvToRgb.d.ts.map +1 -1
- package/dist/convert/hsvToRgb.js.map +1 -1
- package/dist/convert/hunterToXyz.d.ts +1 -1
- package/dist/convert/hunterToXyz.d.ts.map +1 -1
- package/dist/convert/hunterToXyz.js.map +1 -1
- package/dist/convert/labToLch.d.ts +2 -2
- package/dist/convert/labToLch.d.ts.map +1 -1
- package/dist/convert/labToLch.js.map +1 -1
- package/dist/convert/labToXyz.d.ts +1 -1
- package/dist/convert/labToXyz.d.ts.map +1 -1
- package/dist/convert/labToXyz.js.map +1 -1
- package/dist/convert/lchToLab.d.ts +2 -2
- package/dist/convert/lchToLab.d.ts.map +1 -1
- package/dist/convert/lchToLab.js.map +1 -1
- package/dist/convert/luvToXyz.d.ts +1 -1
- package/dist/convert/luvToXyz.d.ts.map +1 -1
- package/dist/convert/luvToXyz.js.map +1 -1
- package/dist/convert/rgbToCmy.d.ts +1 -1
- package/dist/convert/rgbToCmy.d.ts.map +1 -1
- package/dist/convert/rgbToCmy.js.map +1 -1
- package/dist/convert/rgbToHex.d.ts +1 -1
- package/dist/convert/rgbToHex.d.ts.map +1 -1
- package/dist/convert/rgbToHex.js.map +1 -1
- package/dist/convert/rgbToHsi.d.ts +1 -1
- package/dist/convert/rgbToHsi.d.ts.map +1 -1
- package/dist/convert/rgbToHsi.js.map +1 -1
- package/dist/convert/rgbToHsl.d.ts +1 -1
- package/dist/convert/rgbToHsl.d.ts.map +1 -1
- package/dist/convert/rgbToHsl.js.map +1 -1
- package/dist/convert/rgbToHsv.d.ts +1 -1
- package/dist/convert/rgbToHsv.d.ts.map +1 -1
- package/dist/convert/rgbToHsv.js.map +1 -1
- package/dist/convert/rgbToXyz.d.ts +1 -1
- package/dist/convert/rgbToXyz.d.ts.map +1 -1
- package/dist/convert/rgbToXyz.js.map +1 -1
- package/dist/convert/xyzToAdobe.d.ts +1 -1
- package/dist/convert/xyzToAdobe.d.ts.map +1 -1
- package/dist/convert/xyzToAdobe.js.map +1 -1
- package/dist/convert/xyzToHunter.d.ts +1 -1
- package/dist/convert/xyzToHunter.d.ts.map +1 -1
- package/dist/convert/xyzToHunter.js.map +1 -1
- package/dist/convert/xyzToLab.d.ts +1 -1
- package/dist/convert/xyzToLab.d.ts.map +1 -1
- package/dist/convert/xyzToLab.js.map +1 -1
- package/dist/convert/xyzToLuv.d.ts +1 -1
- package/dist/convert/xyzToLuv.d.ts.map +1 -1
- package/dist/convert/xyzToLuv.js.map +1 -1
- package/dist/convert/xyzToRgb.d.ts +1 -1
- package/dist/convert/xyzToRgb.d.ts.map +1 -1
- package/dist/convert/xyzToRgb.js.map +1 -1
- package/dist/convert/xyzToYxy.d.ts +1 -1
- package/dist/convert/xyzToYxy.d.ts.map +1 -1
- package/dist/convert/xyzToYxy.js.map +1 -1
- package/dist/convert/yxyToXyz.d.ts +1 -1
- package/dist/convert/yxyToXyz.d.ts.map +1 -1
- package/dist/convert/yxyToXyz.js.map +1 -1
- package/dist/delta/deltaC.d.ts +2 -2
- package/dist/delta/deltaC.d.ts.map +1 -1
- package/dist/delta/deltaC.js.map +1 -1
- package/dist/delta/deltaCmc.d.ts +1 -1
- package/dist/delta/deltaCmc.d.ts.map +1 -1
- package/dist/delta/deltaCmc.js.map +1 -1
- package/dist/delta/deltaE00.d.ts +1 -1
- package/dist/delta/deltaE00.d.ts.map +1 -1
- package/dist/delta/deltaE00.js.map +1 -1
- package/dist/delta/deltaE76.d.ts +2 -2
- package/dist/delta/deltaE76.d.ts.map +1 -1
- package/dist/delta/deltaE76.js.map +1 -1
- package/dist/delta/deltaE94.d.ts +1 -1
- package/dist/delta/deltaE94.d.ts.map +1 -1
- package/dist/delta/deltaE94.js.map +1 -1
- package/dist/delta/deltaH.d.ts +2 -2
- package/dist/delta/deltaH.d.ts.map +1 -1
- package/dist/delta/deltaH.js.map +1 -1
- package/dist/names/getName.d.ts +2 -2
- package/dist/names/getName.d.ts.map +1 -1
- package/dist/names/getName.js.map +1 -1
- package/dist/palette/analogous.d.ts +3 -3
- package/dist/palette/analogous.d.ts.map +1 -1
- package/dist/palette/analogous.js.map +1 -1
- package/dist/palette/analogousLch.d.ts +2 -2
- package/dist/palette/analogousLch.d.ts.map +1 -1
- package/dist/palette/analogousLch.js.map +1 -1
- package/dist/palette/complement.d.ts +3 -3
- package/dist/palette/complement.d.ts.map +1 -1
- package/dist/palette/complement.js.map +1 -1
- package/dist/palette/complementLch.d.ts +2 -2
- package/dist/palette/complementLch.d.ts.map +1 -1
- package/dist/palette/complementLch.js.map +1 -1
- package/dist/palette/splitComplement.d.ts +3 -3
- package/dist/palette/splitComplement.d.ts.map +1 -1
- package/dist/palette/splitComplement.js.map +1 -1
- package/dist/palette/splitComplementLch.d.ts +2 -2
- package/dist/palette/splitComplementLch.d.ts.map +1 -1
- package/dist/palette/splitComplementLch.js.map +1 -1
- package/dist/utility/contrast.d.ts +1 -1
- package/dist/utility/contrast.d.ts.map +1 -1
- package/dist/utility/contrast.js.map +1 -1
- package/dist/utility/isWebSafe.d.ts +1 -1
- package/dist/utility/isWebSafe.d.ts.map +1 -1
- package/dist/utility/isWebSafe.js.map +1 -1
- package/dist/utility/relativeLuminance.d.ts +1 -1
- package/dist/utility/relativeLuminance.d.ts.map +1 -1
- package/dist/utility/relativeLuminance.js.map +1 -1
- package/package.json +32 -34
- package/src/convert/adobeToXyz.ts +1 -1
- package/src/convert/cmyToCmyk.ts +1 -1
- package/src/convert/cmyToRgb.ts +3 -1
- package/src/convert/cmykToCmy.ts +3 -1
- package/src/convert/hslToRgb.ts +3 -1
- package/src/convert/hsvToRgb.ts +3 -1
- package/src/convert/hunterToXyz.ts +2 -2
- package/src/convert/labToLch.ts +7 -3
- package/src/convert/labToXyz.ts +2 -2
- package/src/convert/lchToLab.ts +7 -3
- package/src/convert/luvToXyz.ts +2 -2
- package/src/convert/rgbToCmy.ts +3 -1
- package/src/convert/rgbToHex.ts +1 -1
- package/src/convert/rgbToHsi.ts +3 -1
- package/src/convert/rgbToHsl.ts +3 -1
- package/src/convert/rgbToHsv.ts +3 -1
- package/src/convert/rgbToXyz.ts +3 -1
- package/src/convert/xyzToAdobe.ts +1 -1
- package/src/convert/xyzToHunter.ts +2 -2
- package/src/convert/xyzToLab.ts +2 -2
- package/src/convert/xyzToLuv.ts +2 -2
- package/src/convert/xyzToRgb.ts +3 -1
- package/src/convert/xyzToYxy.ts +3 -1
- package/src/convert/yxyToXyz.ts +3 -1
- package/src/delta/deltaC.ts +12 -3
- package/src/delta/deltaCmc.ts +3 -3
- package/src/delta/deltaE00.ts +3 -3
- package/src/delta/deltaE76.ts +12 -3
- package/src/delta/deltaE94.ts +3 -3
- package/src/delta/deltaH.ts +12 -3
- package/src/names/getName.ts +3 -3
- package/src/palette/analogous.ts +4 -4
- package/src/palette/analogousLch.ts +3 -3
- package/src/palette/complement.ts +4 -4
- package/src/palette/complementLch.ts +3 -3
- package/src/palette/splitComplement.ts +4 -4
- package/src/palette/splitComplementLch.ts +3 -3
- package/src/utility/contrast.ts +4 -1
- package/src/utility/isWebSafe.ts +1 -1
- package/src/utility/relativeLuminance.ts +1 -1
package/src/convert/cmyToCmyk.ts
CHANGED
package/src/convert/cmyToRgb.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type Rgb from "../types/Rgb.js";
|
|
|
7
7
|
* @returns An sRGB color.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function cmyToRgb(
|
|
10
|
+
export default function cmyToRgb(
|
|
11
|
+
color: Readonly<Cmy>
|
|
12
|
+
): [number, number, number] & Rgb {
|
|
11
13
|
return [(1 - color[0]) * 0xff, (1 - color[1]) * 0xff, (1 - color[2]) * 0xff];
|
|
12
14
|
}
|
package/src/convert/cmykToCmy.ts
CHANGED
|
@@ -7,7 +7,9 @@ import type Cmyk from "../types/Cmyk.js";
|
|
|
7
7
|
* @returns A CMY color.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function cmykToCmy(
|
|
10
|
+
export default function cmykToCmy(
|
|
11
|
+
color: Readonly<Cmyk>
|
|
12
|
+
): [number, number, number] & Cmy {
|
|
11
13
|
const k = color[3];
|
|
12
14
|
|
|
13
15
|
return [
|
package/src/convert/hslToRgb.ts
CHANGED
|
@@ -33,7 +33,9 @@ const hueToRgb = (v0: number, v1: number, h: number): number => {
|
|
|
33
33
|
* @returns An sRGB color.
|
|
34
34
|
* @public
|
|
35
35
|
*/
|
|
36
|
-
export default function hslToRgb(
|
|
36
|
+
export default function hslToRgb(
|
|
37
|
+
color: Readonly<Hsl>
|
|
38
|
+
): [number, number, number] & Rgb {
|
|
37
39
|
const h = color[0];
|
|
38
40
|
|
|
39
41
|
const s = color[1];
|
package/src/convert/hsvToRgb.ts
CHANGED
|
@@ -7,7 +7,9 @@ import type Rgb from "../types/Rgb.js";
|
|
|
7
7
|
* @returns An sRGB color.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function hsvToRgb(
|
|
10
|
+
export default function hsvToRgb(
|
|
11
|
+
color: Readonly<Hsv>
|
|
12
|
+
): [number, number, number] & Rgb {
|
|
11
13
|
const s = color[1];
|
|
12
14
|
|
|
13
15
|
const v = color[2];
|
|
@@ -15,8 +15,8 @@ const c1 = 70 / 218.11;
|
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
17
|
export default function hunterToXyz(
|
|
18
|
-
color: Hunter
|
|
19
|
-
ref: Xyz = getReference(StandardIlluminant.D65_2)
|
|
18
|
+
color: Readonly<Hunter>,
|
|
19
|
+
ref: Readonly<Xyz> = getReference(StandardIlluminant.D65_2)
|
|
20
20
|
): [number, number, number] & Xyz {
|
|
21
21
|
const rx = ref[0];
|
|
22
22
|
|
package/src/convert/labToLch.ts
CHANGED
|
@@ -11,16 +11,20 @@ const c0 = 180 / Math.PI;
|
|
|
11
11
|
* @returns A CIELCh color.
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
|
-
export default function labToLch(
|
|
14
|
+
export default function labToLch(
|
|
15
|
+
color: Readonly<Lab>
|
|
16
|
+
): [number, number, number] & Lchab;
|
|
15
17
|
/**
|
|
16
18
|
* Convert the given CIELUV color to a CIELCh(uv) color. Based on the EasyRGB pseudo-code.
|
|
17
19
|
* @param color - The CIELUV color.
|
|
18
20
|
* @returns A CIELCh color.
|
|
19
21
|
* @public
|
|
20
22
|
*/
|
|
21
|
-
export default function labToLch(color: Luv): [number, number, number] & Lchuv;
|
|
22
23
|
export default function labToLch(
|
|
23
|
-
color:
|
|
24
|
+
color: Readonly<Luv>
|
|
25
|
+
): [number, number, number] & Lchuv;
|
|
26
|
+
export default function labToLch(
|
|
27
|
+
color: Readonly<Lab | Luv>
|
|
24
28
|
): [number, number, number] & (Lchab | Lchuv) {
|
|
25
29
|
const a = color[1];
|
|
26
30
|
|
package/src/convert/labToXyz.ts
CHANGED
|
@@ -16,8 +16,8 @@ const c2 = 7.787;
|
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
18
18
|
export default function labToXyz(
|
|
19
|
-
color: Lab
|
|
20
|
-
ref: Xyz = getReference(StandardIlluminant.D65_2)
|
|
19
|
+
color: Readonly<Lab>,
|
|
20
|
+
ref: Readonly<Xyz> = getReference(StandardIlluminant.D65_2)
|
|
21
21
|
): [number, number, number] & Xyz {
|
|
22
22
|
const i0 = (color[0] + 16) / 116;
|
|
23
23
|
const i1 = i0 ** 3;
|
package/src/convert/lchToLab.ts
CHANGED
|
@@ -11,16 +11,20 @@ const c0 = Math.PI / 180;
|
|
|
11
11
|
* @returns A CIELAB color.
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
|
-
export default function lchToLab(
|
|
14
|
+
export default function lchToLab(
|
|
15
|
+
color: Readonly<Lchab>
|
|
16
|
+
): [number, number, number] & Lab;
|
|
15
17
|
/**
|
|
16
18
|
* Convert the given CIELCh(uv) color to a CIELUV color. Based on the EasyRGB pseudo-code.
|
|
17
19
|
* @param color - The CIELCh color.
|
|
18
20
|
* @returns A CIELUV color.
|
|
19
21
|
* @public
|
|
20
22
|
*/
|
|
21
|
-
export default function lchToLab(color: Lchuv): [number, number, number] & Luv;
|
|
22
23
|
export default function lchToLab(
|
|
23
|
-
color:
|
|
24
|
+
color: Readonly<Lchuv>
|
|
25
|
+
): [number, number, number] & Luv;
|
|
26
|
+
export default function lchToLab(
|
|
27
|
+
color: Readonly<Lchab | Lchuv>
|
|
24
28
|
): [number, number, number] & (Lab | Luv) {
|
|
25
29
|
const c = color[1];
|
|
26
30
|
|
package/src/convert/luvToXyz.ts
CHANGED
|
@@ -14,8 +14,8 @@ const c0 = 16 / 116;
|
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
16
|
export default function luvToXyz(
|
|
17
|
-
color: Luv
|
|
18
|
-
ref: Xyz = getReference(StandardIlluminant.D65_2)
|
|
17
|
+
color: Readonly<Luv>,
|
|
18
|
+
ref: Readonly<Xyz> = getReference(StandardIlluminant.D65_2)
|
|
19
19
|
): [number, number, number] & Xyz {
|
|
20
20
|
const l = color[0];
|
|
21
21
|
|
package/src/convert/rgbToCmy.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type Rgb from "../types/Rgb.js";
|
|
|
7
7
|
* @returns A CMY color.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function rgbToCmy(
|
|
10
|
+
export default function rgbToCmy(
|
|
11
|
+
color: Readonly<Rgb>
|
|
12
|
+
): [number, number, number] & Cmy {
|
|
11
13
|
return [1 - color[0] / 0xff, 1 - color[1] / 0xff, 1 - color[2] / 0xff];
|
|
12
14
|
}
|
package/src/convert/rgbToHex.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type Rgb from "../types/Rgb.js";
|
|
|
6
6
|
* @returns The numerical hexadecimal representation of the color.
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export default function rgbToHex(rgb: Rgb): number {
|
|
9
|
+
export default function rgbToHex(rgb: Readonly<Rgb>): number {
|
|
10
10
|
return (
|
|
11
11
|
Math.round(rgb[0] * 0x10000) +
|
|
12
12
|
Math.round(rgb[1] * 0x100) +
|
package/src/convert/rgbToHsi.ts
CHANGED
|
@@ -10,7 +10,9 @@ const c1 = 2 / 3;
|
|
|
10
10
|
* @returns An HSI color.
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
|
-
export default function rgbToHsi(
|
|
13
|
+
export default function rgbToHsi(
|
|
14
|
+
color: Readonly<Rgb>
|
|
15
|
+
): [number, number, number] & Hsi {
|
|
14
16
|
const i0 = color[0] / 0xff;
|
|
15
17
|
const i1 = color[1] / 0xff;
|
|
16
18
|
const i2 = color[2] / 0xff;
|
package/src/convert/rgbToHsl.ts
CHANGED
|
@@ -10,7 +10,9 @@ const c1 = 2 / 3;
|
|
|
10
10
|
* @returns An HSL color.
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
|
-
export default function rgbToHsl(
|
|
13
|
+
export default function rgbToHsl(
|
|
14
|
+
color: Readonly<Rgb>
|
|
15
|
+
): [number, number, number] & Hsl {
|
|
14
16
|
const i0 = color[0] / 0xff;
|
|
15
17
|
const i1 = color[1] / 0xff;
|
|
16
18
|
const i2 = color[2] / 0xff;
|
package/src/convert/rgbToHsv.ts
CHANGED
|
@@ -10,7 +10,9 @@ const c1 = 2 / 3;
|
|
|
10
10
|
* @returns An HSV color.
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
|
-
export default function rgbToHsv(
|
|
13
|
+
export default function rgbToHsv(
|
|
14
|
+
color: Readonly<Rgb>
|
|
15
|
+
): [number, number, number] & Hsv {
|
|
14
16
|
const i0 = color[0] / 0xff;
|
|
15
17
|
const i1 = color[1] / 0xff;
|
|
16
18
|
const i2 = color[2] / 0xff;
|
package/src/convert/rgbToXyz.ts
CHANGED
|
@@ -14,7 +14,9 @@ const c5 = 100;
|
|
|
14
14
|
* @returns A CIEXYZ color.
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
|
-
export default function rgbToXyz(
|
|
17
|
+
export default function rgbToXyz(
|
|
18
|
+
color: Readonly<Rgb>
|
|
19
|
+
): [number, number, number] & Xyz {
|
|
18
20
|
const i0 = color[0] / 0xff;
|
|
19
21
|
const i1 = color[1] / 0xff;
|
|
20
22
|
const i2 = color[2] / 0xff;
|
|
@@ -15,8 +15,8 @@ const c1 = 70 / 218.11;
|
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
17
|
export default function xyzToHunter(
|
|
18
|
-
color: Xyz
|
|
19
|
-
ref: Xyz = getReference(StandardIlluminant.D65_2)
|
|
18
|
+
color: Readonly<Xyz>,
|
|
19
|
+
ref: Readonly<Xyz> = getReference(StandardIlluminant.D65_2)
|
|
20
20
|
): [number, number, number] & Hunter {
|
|
21
21
|
const rx = ref[0];
|
|
22
22
|
|
package/src/convert/xyzToLab.ts
CHANGED
|
@@ -17,8 +17,8 @@ const c3 = 7.787;
|
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
19
|
export default function xyzToLab(
|
|
20
|
-
color: Xyz
|
|
21
|
-
ref: Xyz = getReference(StandardIlluminant.D65_2)
|
|
20
|
+
color: Readonly<Xyz>,
|
|
21
|
+
ref: Readonly<Xyz> = getReference(StandardIlluminant.D65_2)
|
|
22
22
|
): [number, number, number] & Lab {
|
|
23
23
|
const i0 = color[0] / ref[0];
|
|
24
24
|
const i1 = color[1] / ref[1];
|
package/src/convert/xyzToLuv.ts
CHANGED
|
@@ -15,8 +15,8 @@ const c1 = 16 / 116;
|
|
|
15
15
|
* @public
|
|
16
16
|
*/
|
|
17
17
|
export default function xyzToLuv(
|
|
18
|
-
color: Xyz
|
|
19
|
-
ref: Xyz = getReference(StandardIlluminant.D65_2)
|
|
18
|
+
color: Readonly<Xyz>,
|
|
19
|
+
ref: Readonly<Xyz> = getReference(StandardIlluminant.D65_2)
|
|
20
20
|
): [number, number, number] & Luv {
|
|
21
21
|
const x = color[0];
|
|
22
22
|
|
package/src/convert/xyzToRgb.ts
CHANGED
|
@@ -13,7 +13,9 @@ const c4 = 12.92;
|
|
|
13
13
|
* @returns An sRGB color.
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
|
-
export default function xyzToRgb(
|
|
16
|
+
export default function xyzToRgb(
|
|
17
|
+
color: Readonly<Xyz>
|
|
18
|
+
): [number, number, number] & Rgb {
|
|
17
19
|
const i0 = color[0] / 100;
|
|
18
20
|
const i1 = color[1] / 100;
|
|
19
21
|
const i2 = color[2] / 100;
|
package/src/convert/xyzToYxy.ts
CHANGED
|
@@ -7,7 +7,9 @@ import type Yxy from "../types/Yxy.js";
|
|
|
7
7
|
* @returns The CIEXYZ color in yxy format.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function xyzToYxy(
|
|
10
|
+
export default function xyzToYxy(
|
|
11
|
+
color: Readonly<Xyz>
|
|
12
|
+
): [number, number, number] & Yxy {
|
|
11
13
|
const X = color[0];
|
|
12
14
|
|
|
13
15
|
const Y = color[1];
|
package/src/convert/yxyToXyz.ts
CHANGED
|
@@ -7,7 +7,9 @@ import type Yxy from "../types/Yxy.js";
|
|
|
7
7
|
* @returns A CIEXYZ color.
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function yxyToXyz(
|
|
10
|
+
export default function yxyToXyz(
|
|
11
|
+
color: Readonly<Yxy>
|
|
12
|
+
): [number, number, number] & Xyz {
|
|
11
13
|
const Y = color[0];
|
|
12
14
|
|
|
13
15
|
const x = color[1];
|
package/src/delta/deltaC.ts
CHANGED
|
@@ -9,7 +9,10 @@ import type Luv from "../types/Luv.js";
|
|
|
9
9
|
* @see {@link https://en.wikipedia.org/wiki/Color_difference | Color difference}
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
export default function deltaC(
|
|
12
|
+
export default function deltaC(
|
|
13
|
+
color0: Readonly<Lab>,
|
|
14
|
+
color1: Readonly<Lab>
|
|
15
|
+
): number;
|
|
13
16
|
/**
|
|
14
17
|
* Calculates the ΔC* between two CIELUV values. Based on the EasyRGB pseudocode.
|
|
15
18
|
* @param color0 - The first color.
|
|
@@ -18,7 +21,13 @@ export default function deltaC(color0: Lab, color1: Lab): number;
|
|
|
18
21
|
* @see {@link https://en.wikipedia.org/wiki/Color_difference | Color difference}
|
|
19
22
|
* @public
|
|
20
23
|
*/
|
|
21
|
-
export default function deltaC(
|
|
22
|
-
|
|
24
|
+
export default function deltaC(
|
|
25
|
+
color0: Readonly<Luv>,
|
|
26
|
+
color1: Readonly<Luv>
|
|
27
|
+
): number;
|
|
28
|
+
export default function deltaC(
|
|
29
|
+
color0: Readonly<Lab | Luv>,
|
|
30
|
+
color1: Readonly<Lab | Luv>
|
|
31
|
+
): number {
|
|
23
32
|
return Math.hypot(color1[1], color1[2]) - Math.hypot(color0[1], color0[2]);
|
|
24
33
|
}
|
package/src/delta/deltaCmc.ts
CHANGED
|
@@ -14,9 +14,9 @@ const c1 = Math.PI / 180;
|
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
16
|
export default function deltaCmc(
|
|
17
|
-
color0: Lab
|
|
18
|
-
color1: Lab
|
|
19
|
-
weight: Lchab = [1, 1, 1]
|
|
17
|
+
color0: Readonly<Lab>,
|
|
18
|
+
color1: Readonly<Lab>,
|
|
19
|
+
weight: Readonly<Lchab> = [1, 1, 1]
|
|
20
20
|
): number {
|
|
21
21
|
const l0 = color0[0];
|
|
22
22
|
|
package/src/delta/deltaE00.ts
CHANGED
|
@@ -38,9 +38,9 @@ const cieLabToHue = (a: number, b: number): number =>
|
|
|
38
38
|
* @public
|
|
39
39
|
*/
|
|
40
40
|
export default function deltaE00(
|
|
41
|
-
color0: Lab
|
|
42
|
-
color1: Lab
|
|
43
|
-
weight: Lchab = [1, 1, 1]
|
|
41
|
+
color0: Readonly<Lab>,
|
|
42
|
+
color1: Readonly<Lab>,
|
|
43
|
+
weight: Readonly<Lchab> = [1, 1, 1]
|
|
44
44
|
): number {
|
|
45
45
|
const l0 = color0[0];
|
|
46
46
|
|
package/src/delta/deltaE76.ts
CHANGED
|
@@ -9,7 +9,10 @@ import type Luv from "../types/Luv.js";
|
|
|
9
9
|
* @see {@link https://en.wikipedia.org/wiki/Color_difference | Color difference}
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
export default function deltaE76(
|
|
12
|
+
export default function deltaE76(
|
|
13
|
+
color0: Readonly<Lab>,
|
|
14
|
+
color1: Readonly<Lab>
|
|
15
|
+
): number;
|
|
13
16
|
/**
|
|
14
17
|
* Calculates the ΔE* CIE (CIE 1976) between two CIELUV values. Based on the EasyRGB pseudocode.
|
|
15
18
|
* @param color0 - The first color.
|
|
@@ -18,8 +21,14 @@ export default function deltaE76(color0: Lab, color1: Lab): number;
|
|
|
18
21
|
* @see {@link https://en.wikipedia.org/wiki/Color_difference | Color difference}
|
|
19
22
|
* @public
|
|
20
23
|
*/
|
|
21
|
-
export default function deltaE76(
|
|
22
|
-
|
|
24
|
+
export default function deltaE76(
|
|
25
|
+
color0: Readonly<Luv>,
|
|
26
|
+
color1: Readonly<Luv>
|
|
27
|
+
): number;
|
|
28
|
+
export default function deltaE76(
|
|
29
|
+
color0: Readonly<Lab | Luv>,
|
|
30
|
+
color1: Readonly<Lab | Luv>
|
|
31
|
+
): number {
|
|
23
32
|
return Math.hypot(
|
|
24
33
|
color0[0] - color1[0],
|
|
25
34
|
color0[1] - color1[1],
|
package/src/delta/deltaE94.ts
CHANGED
|
@@ -11,9 +11,9 @@ import type Lchab from "../types/Lchab.js";
|
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
13
|
export default function deltaE94(
|
|
14
|
-
color0: Lab
|
|
15
|
-
color1: Lab
|
|
16
|
-
weight: Lchab = [1, 1, 1]
|
|
14
|
+
color0: Readonly<Lab>,
|
|
15
|
+
color1: Readonly<Lab>,
|
|
16
|
+
weight: Readonly<Lchab> = [1, 1, 1]
|
|
17
17
|
): number {
|
|
18
18
|
const l0 = color0[0];
|
|
19
19
|
|
package/src/delta/deltaH.ts
CHANGED
|
@@ -9,7 +9,10 @@ import type Luv from "../types/Luv.js";
|
|
|
9
9
|
* @see {@link https://en.wikipedia.org/wiki/Color_difference | Color difference}
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
export default function deltaH(
|
|
12
|
+
export default function deltaH(
|
|
13
|
+
color0: Readonly<Lab>,
|
|
14
|
+
color1: Readonly<Lab>
|
|
15
|
+
): number;
|
|
13
16
|
/**
|
|
14
17
|
* Calculates the ΔH* between two CIELUV values. Based on the EasyRGB pseudocode.
|
|
15
18
|
* @param color0 - The first color.
|
|
@@ -18,8 +21,14 @@ export default function deltaH(color0: Lab, color1: Lab): number;
|
|
|
18
21
|
* @see {@link https://en.wikipedia.org/wiki/Color_difference | Color difference}
|
|
19
22
|
* @public
|
|
20
23
|
*/
|
|
21
|
-
export default function deltaH(
|
|
22
|
-
|
|
24
|
+
export default function deltaH(
|
|
25
|
+
color0: Readonly<Luv>,
|
|
26
|
+
color1: Readonly<Luv>
|
|
27
|
+
): number;
|
|
28
|
+
export default function deltaH(
|
|
29
|
+
color0: Readonly<Lab | Luv>,
|
|
30
|
+
color1: Readonly<Lab | Luv>
|
|
31
|
+
): number {
|
|
23
32
|
const a0 = color0[1];
|
|
24
33
|
|
|
25
34
|
const b0 = color0[2];
|
package/src/names/getName.ts
CHANGED
|
@@ -17,7 +17,7 @@ import ntc from "./ntc.js";
|
|
|
17
17
|
*/
|
|
18
18
|
export default function getName<T extends Color>(
|
|
19
19
|
color: T,
|
|
20
|
-
names: Map<string, T
|
|
20
|
+
names: Readonly<Map<string, T>>,
|
|
21
21
|
diff: (a: T, b: T) => number
|
|
22
22
|
): string {
|
|
23
23
|
let [nearestName] = names.entries().next().value ?? [];
|
|
@@ -49,8 +49,8 @@ export default function getName<T extends Color>(
|
|
|
49
49
|
* @public
|
|
50
50
|
*/
|
|
51
51
|
export const getNameStandard = (
|
|
52
|
-
color: Rgb
|
|
53
|
-
names: Map<string, Rgb
|
|
52
|
+
color: Readonly<Rgb>,
|
|
53
|
+
names: Readonly<Map<string, Rgb>> = ntc
|
|
54
54
|
): string =>
|
|
55
55
|
getName(color, names, (a, b) =>
|
|
56
56
|
deltaE00(xyzToLab(rgbToXyz(a)), xyzToLab(rgbToXyz(b)))
|
package/src/palette/analogous.ts
CHANGED
|
@@ -13,7 +13,7 @@ const d = 360;
|
|
|
13
13
|
* @public
|
|
14
14
|
*/
|
|
15
15
|
export default function analogous(
|
|
16
|
-
color: Hsi
|
|
16
|
+
color: Readonly<Hsi>,
|
|
17
17
|
subdivisions?: number
|
|
18
18
|
): [[number, number, number] & Hsi, [number, number, number] & Hsi];
|
|
19
19
|
/**
|
|
@@ -24,7 +24,7 @@ export default function analogous(
|
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
export default function analogous(
|
|
27
|
-
color: Hsl
|
|
27
|
+
color: Readonly<Hsl>,
|
|
28
28
|
subdivisions?: number
|
|
29
29
|
): [[number, number, number] & Hsl, [number, number, number] & Hsl];
|
|
30
30
|
/**
|
|
@@ -35,11 +35,11 @@ export default function analogous(
|
|
|
35
35
|
* @public
|
|
36
36
|
*/
|
|
37
37
|
export default function analogous(
|
|
38
|
-
color: Hsv
|
|
38
|
+
color: Readonly<Hsv>,
|
|
39
39
|
subdivisions?: number
|
|
40
40
|
): [[number, number, number] & Hsv, [number, number, number] & Hsv];
|
|
41
41
|
export default function analogous(
|
|
42
|
-
color: Hsi | Hsl | Hsv
|
|
42
|
+
color: Readonly<Hsi | Hsl | Hsv>,
|
|
43
43
|
subdivisions = 12
|
|
44
44
|
):
|
|
45
45
|
| [[number, number, number] & Hsi, [number, number, number] & Hsi]
|
|
@@ -12,7 +12,7 @@ const d = 360;
|
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
14
|
export default function analogousLch(
|
|
15
|
-
color: Lchab
|
|
15
|
+
color: Readonly<Lchab>,
|
|
16
16
|
subdivisions?: number
|
|
17
17
|
): [[number, number, number] & Lchab, [number, number, number] & Lchab];
|
|
18
18
|
/**
|
|
@@ -23,11 +23,11 @@ export default function analogousLch(
|
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
25
|
export default function analogousLch(
|
|
26
|
-
color: Lchuv
|
|
26
|
+
color: Readonly<Lchuv>,
|
|
27
27
|
subdivisions?: number
|
|
28
28
|
): [[number, number, number] & Lchuv, [number, number, number] & Lchuv];
|
|
29
29
|
export default function analogousLch(
|
|
30
|
-
color: Lchab | Lchuv
|
|
30
|
+
color: Readonly<Lchab | Lchuv>,
|
|
31
31
|
subdivisions = 12
|
|
32
32
|
):
|
|
33
33
|
| [[number, number, number] & Lchab, [number, number, number] & Lchab]
|
|
@@ -13,7 +13,7 @@ const d = 360;
|
|
|
13
13
|
* @public
|
|
14
14
|
*/
|
|
15
15
|
export default function complement(
|
|
16
|
-
color: Hsi
|
|
16
|
+
color: Readonly<Hsi>,
|
|
17
17
|
n?: number
|
|
18
18
|
): ([number, number, number] & Hsi)[];
|
|
19
19
|
/**
|
|
@@ -24,7 +24,7 @@ export default function complement(
|
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
export default function complement(
|
|
27
|
-
color: Hsl
|
|
27
|
+
color: Readonly<Hsl>,
|
|
28
28
|
n?: number
|
|
29
29
|
): ([number, number, number] & Hsl)[];
|
|
30
30
|
/**
|
|
@@ -35,11 +35,11 @@ export default function complement(
|
|
|
35
35
|
* @public
|
|
36
36
|
*/
|
|
37
37
|
export default function complement(
|
|
38
|
-
color: Hsv
|
|
38
|
+
color: Readonly<Hsv>,
|
|
39
39
|
n?: number
|
|
40
40
|
): ([number, number, number] & Hsv)[];
|
|
41
41
|
export default function complement(
|
|
42
|
-
color: Hsi | Hsl | Hsv
|
|
42
|
+
color: Readonly<Hsi | Hsl | Hsv>,
|
|
43
43
|
n = 1
|
|
44
44
|
):
|
|
45
45
|
| ([number, number, number] & Hsi)[]
|
|
@@ -12,7 +12,7 @@ const d = 360;
|
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
14
|
export default function complementLch(
|
|
15
|
-
color: Lchab
|
|
15
|
+
color: Readonly<Lchab>,
|
|
16
16
|
n?: number
|
|
17
17
|
): ([number, number, number] & Lchab)[];
|
|
18
18
|
/**
|
|
@@ -23,11 +23,11 @@ export default function complementLch(
|
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
25
|
export default function complementLch(
|
|
26
|
-
color: Lchuv
|
|
26
|
+
color: Readonly<Lchuv>,
|
|
27
27
|
n?: number
|
|
28
28
|
): ([number, number, number] & Lchuv)[];
|
|
29
29
|
export default function complementLch(
|
|
30
|
-
color: Lchab | Lchuv
|
|
30
|
+
color: Readonly<Lchab | Lchuv>,
|
|
31
31
|
n = 1
|
|
32
32
|
): ([number, number, number] & Lchab)[] | ([number, number, number] & Lchuv)[] {
|
|
33
33
|
const l = color[0];
|
|
@@ -13,7 +13,7 @@ const d = 360;
|
|
|
13
13
|
* @public
|
|
14
14
|
*/
|
|
15
15
|
export default function splitComplement(
|
|
16
|
-
color: Hsi
|
|
16
|
+
color: Readonly<Hsi>,
|
|
17
17
|
subdivisions?: number
|
|
18
18
|
): [[number, number, number] & Hsi, [number, number, number] & Hsi];
|
|
19
19
|
/**
|
|
@@ -24,7 +24,7 @@ export default function splitComplement(
|
|
|
24
24
|
* @public
|
|
25
25
|
*/
|
|
26
26
|
export default function splitComplement(
|
|
27
|
-
color: Hsl
|
|
27
|
+
color: Readonly<Hsl>,
|
|
28
28
|
subdivisions?: number
|
|
29
29
|
): [[number, number, number] & Hsl, [number, number, number] & Hsl];
|
|
30
30
|
/**
|
|
@@ -35,11 +35,11 @@ export default function splitComplement(
|
|
|
35
35
|
* @public
|
|
36
36
|
*/
|
|
37
37
|
export default function splitComplement(
|
|
38
|
-
color: Hsv
|
|
38
|
+
color: Readonly<Hsv>,
|
|
39
39
|
subdivisions?: number
|
|
40
40
|
): [[number, number, number] & Hsv, [number, number, number] & Hsv];
|
|
41
41
|
export default function splitComplement(
|
|
42
|
-
color: Hsi | Hsl | Hsv
|
|
42
|
+
color: Readonly<Hsi | Hsl | Hsv>,
|
|
43
43
|
subdivisions = 12
|
|
44
44
|
):
|
|
45
45
|
| [[number, number, number] & Hsi, [number, number, number] & Hsi]
|
|
@@ -12,7 +12,7 @@ const d = 360;
|
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
14
|
export default function splitComplementLch(
|
|
15
|
-
color: Lchab
|
|
15
|
+
color: Readonly<Lchab>,
|
|
16
16
|
subdivisions?: number
|
|
17
17
|
): [[number, number, number] & Lchab, [number, number, number] & Lchab];
|
|
18
18
|
/**
|
|
@@ -23,11 +23,11 @@ export default function splitComplementLch(
|
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
25
|
export default function splitComplementLch(
|
|
26
|
-
color: Lchuv
|
|
26
|
+
color: Readonly<Lchuv>,
|
|
27
27
|
subdivisions?: number
|
|
28
28
|
): [[number, number, number] & Lchuv, [number, number, number] & Lchuv];
|
|
29
29
|
export default function splitComplementLch(
|
|
30
|
-
color: Lchab | Lchuv
|
|
30
|
+
color: Readonly<Lchab | Lchuv>,
|
|
31
31
|
subdivisions = 12
|
|
32
32
|
):
|
|
33
33
|
| [[number, number, number] & Lchab, [number, number, number] & Lchab]
|
package/src/utility/contrast.ts
CHANGED
|
@@ -11,7 +11,10 @@ import relativeLuminance from "./relativeLuminance.js";
|
|
|
11
11
|
* @see {@link https://www.w3.org/WAI/standards-guidelines/wcag/ | WCAG 2 Overview}
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
|
-
export default function contrast(
|
|
14
|
+
export default function contrast(
|
|
15
|
+
color0: Readonly<Rgb>,
|
|
16
|
+
color1: Readonly<Rgb>
|
|
17
|
+
): number {
|
|
15
18
|
// Intermediate values.
|
|
16
19
|
const i0 = relativeLuminance(color0);
|
|
17
20
|
const i1 = relativeLuminance(color1);
|
package/src/utility/isWebSafe.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type Rgb from "../types/Rgb.js";
|
|
|
7
7
|
* @see {@link https://en.wikipedia.org/wiki/Web_colors | Web colors}
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
10
|
-
export default function isWebSafe(color: Rgb): boolean {
|
|
10
|
+
export default function isWebSafe(color: Readonly<Rgb>): boolean {
|
|
11
11
|
return (
|
|
12
12
|
color[0] % 0x33 === 0 && color[1] % 0x33 === 0 && color[2] % 0x33 === 0
|
|
13
13
|
);
|
|
@@ -16,7 +16,7 @@ const piecewise = (a: number): number =>
|
|
|
16
16
|
* @see {@link https://www.w3.org/WAI/GL/wiki/Relative_luminance | Relative luminance}
|
|
17
17
|
* @public
|
|
18
18
|
*/
|
|
19
|
-
export default function relativeLuminance(color: Rgb): number {
|
|
19
|
+
export default function relativeLuminance(color: Readonly<Rgb>): number {
|
|
20
20
|
return (
|
|
21
21
|
0.2126 * piecewise(color[0] / 0xff) +
|
|
22
22
|
0.7152 * piecewise(color[1] / 0xff) +
|