colorizr 2.0.0 → 2.1.0
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/README.md +16 -16
- package/esm/brightness-difference.js +7 -7
- package/esm/brightness-difference.js.map +1 -1
- package/esm/chroma.js +5 -5
- package/esm/chroma.js.map +1 -1
- package/esm/color-difference.js +5 -5
- package/esm/color-difference.js.map +1 -1
- package/esm/compare.js +15 -15
- package/esm/compare.js.map +1 -1
- package/esm/contrast.js +8 -13
- package/esm/contrast.js.map +1 -1
- package/esm/darken.js +2 -3
- package/esm/darken.js.map +1 -1
- package/esm/desaturate.js +2 -3
- package/esm/desaturate.js.map +1 -1
- package/esm/fade.js +12 -14
- package/esm/fade.js.map +1 -1
- package/esm/format-css.js +10 -11
- package/esm/format-css.js.map +1 -1
- package/esm/format-hex.js +7 -7
- package/esm/format-hex.js.map +1 -1
- package/esm/hex2hsl.js +2 -2
- package/esm/hex2hsl.js.map +1 -1
- package/esm/hex2rgb.js +3 -3
- package/esm/hex2rgb.js.map +1 -1
- package/esm/hsl2hex.js +2 -2
- package/esm/hsl2hex.js.map +1 -1
- package/esm/hsl2rgb.d.ts +1 -1
- package/esm/hsl2rgb.js +13 -13
- package/esm/hsl2rgb.js.map +1 -1
- package/esm/index.d.ts +11 -12
- package/esm/index.js +99 -133
- package/esm/index.js.map +1 -1
- package/esm/is-valid-color.js +1 -1
- package/esm/is-valid-color.js.map +1 -1
- package/esm/is-valid-hex.js +2 -2
- package/esm/is-valid-hex.js.map +1 -1
- package/esm/lighten.js +2 -3
- package/esm/lighten.js.map +1 -1
- package/esm/luminance.js +8 -8
- package/esm/luminance.js.map +1 -1
- package/esm/{utils.d.ts → modules/css-colors.d.ts} +0 -61
- package/esm/modules/css-colors.js +153 -0
- package/esm/modules/css-colors.js.map +1 -0
- package/esm/{hue2rgb.d.ts → modules/hue2rgb.d.ts} +0 -0
- package/esm/{hue2rgb.js → modules/hue2rgb.js} +2 -2
- package/esm/modules/hue2rgb.js.map +1 -0
- package/{lib → esm/modules}/parse-color.d.ts +1 -1
- package/esm/{parse-color.js → modules/parse-color.js} +12 -12
- package/esm/modules/parse-color.js.map +1 -0
- package/esm/{updater.d.ts → modules/updater.d.ts} +0 -0
- package/esm/modules/updater.js +19 -0
- package/esm/modules/updater.js.map +1 -0
- package/esm/modules/utils.d.ts +61 -0
- package/esm/modules/utils.js +199 -0
- package/esm/modules/utils.js.map +1 -0
- package/esm/name.js +5 -7
- package/esm/name.js.map +1 -1
- package/esm/palette.js +15 -27
- package/esm/palette.js.map +1 -1
- package/esm/parse-css.js +13 -11
- package/esm/parse-css.js.map +1 -1
- package/esm/random.js +1 -1
- package/esm/random.js.map +1 -1
- package/esm/rgb2hex.d.ts +1 -1
- package/esm/rgb2hex.js +11 -11
- package/esm/rgb2hex.js.map +1 -1
- package/esm/rgb2hsl.d.ts +1 -1
- package/esm/rgb2hsl.js +14 -14
- package/esm/rgb2hsl.js.map +1 -1
- package/esm/rotate.js +6 -7
- package/esm/rotate.js.map +1 -1
- package/esm/saturate.js +2 -3
- package/esm/saturate.js.map +1 -1
- package/esm/scheme.d.ts +1 -1
- package/esm/scheme.js +12 -26
- package/esm/scheme.js.map +1 -1
- package/esm/shift.js +5 -16
- package/esm/shift.js.map +1 -1
- package/esm/text-color.js +4 -4
- package/esm/text-color.js.map +1 -1
- package/lib/brightness-difference.js +10 -10
- package/lib/brightness-difference.js.map +1 -1
- package/lib/chroma.js +8 -8
- package/lib/chroma.js.map +1 -1
- package/lib/color-difference.js +7 -7
- package/lib/color-difference.js.map +1 -1
- package/lib/compare.js +18 -18
- package/lib/compare.js.map +1 -1
- package/lib/contrast.js +10 -15
- package/lib/contrast.js.map +1 -1
- package/lib/darken.js +3 -4
- package/lib/darken.js.map +1 -1
- package/lib/desaturate.js +3 -4
- package/lib/desaturate.js.map +1 -1
- package/lib/fade.js +14 -16
- package/lib/fade.js.map +1 -1
- package/lib/format-css.js +16 -17
- package/lib/format-css.js.map +1 -1
- package/lib/format-hex.js +8 -8
- package/lib/format-hex.js.map +1 -1
- package/lib/hex2hsl.js +5 -5
- package/lib/hex2hsl.js.map +1 -1
- package/lib/hex2rgb.js +4 -4
- package/lib/hex2rgb.js.map +1 -1
- package/lib/hsl2hex.js +5 -5
- package/lib/hsl2hex.js.map +1 -1
- package/lib/hsl2rgb.d.ts +1 -1
- package/lib/hsl2rgb.js +16 -16
- package/lib/hsl2rgb.js.map +1 -1
- package/lib/index.d.ts +11 -12
- package/lib/index.js +135 -164
- package/lib/index.js.map +1 -1
- package/lib/is-valid-color.js +3 -3
- package/lib/is-valid-color.js.map +1 -1
- package/lib/is-valid-hex.js +3 -3
- package/lib/is-valid-hex.js.map +1 -1
- package/lib/lighten.js +3 -4
- package/lib/lighten.js.map +1 -1
- package/lib/luminance.js +11 -11
- package/lib/luminance.js.map +1 -1
- package/lib/{utils.d.ts → modules/css-colors.d.ts} +0 -61
- package/lib/modules/css-colors.js +156 -0
- package/lib/modules/css-colors.js.map +1 -0
- package/lib/{hue2rgb.d.ts → modules/hue2rgb.d.ts} +0 -0
- package/lib/modules/hue2rgb.js +28 -0
- package/lib/modules/hue2rgb.js.map +1 -0
- package/{esm → lib/modules}/parse-color.d.ts +1 -1
- package/lib/modules/parse-color.js +59 -0
- package/lib/modules/parse-color.js.map +1 -0
- package/lib/{updater.d.ts → modules/updater.d.ts} +0 -0
- package/lib/modules/updater.js +22 -0
- package/lib/modules/updater.js.map +1 -0
- package/lib/modules/utils.d.ts +61 -0
- package/lib/modules/utils.js +215 -0
- package/lib/modules/utils.js.map +1 -0
- package/lib/name.js +6 -8
- package/lib/name.js.map +1 -1
- package/lib/palette.js +19 -31
- package/lib/palette.js.map +1 -1
- package/lib/parse-css.js +26 -24
- package/lib/parse-css.js.map +1 -1
- package/lib/random.js +3 -3
- package/lib/random.js.map +1 -1
- package/lib/rgb2hex.d.ts +1 -1
- package/lib/rgb2hex.js +12 -12
- package/lib/rgb2hex.js.map +1 -1
- package/lib/rgb2hsl.d.ts +1 -1
- package/lib/rgb2hsl.js +14 -14
- package/lib/rgb2hsl.js.map +1 -1
- package/lib/rotate.js +11 -12
- package/lib/rotate.js.map +1 -1
- package/lib/saturate.js +3 -4
- package/lib/saturate.js.map +1 -1
- package/lib/scheme.d.ts +1 -1
- package/lib/scheme.js +14 -28
- package/lib/scheme.js.map +1 -1
- package/lib/shift.js +7 -18
- package/lib/shift.js.map +1 -1
- package/lib/text-color.js +6 -6
- package/lib/text-color.js.map +1 -1
- package/package.json +34 -43
- package/src/brightness-difference.ts +3 -3
- package/src/chroma.ts +2 -2
- package/src/color-difference.ts +3 -3
- package/src/compare.ts +3 -4
- package/src/contrast.ts +8 -12
- package/src/darken.ts +1 -1
- package/src/desaturate.ts +1 -1
- package/src/fade.ts +4 -4
- package/src/format-css.ts +3 -3
- package/src/format-hex.ts +4 -4
- package/src/hex2hsl.ts +2 -3
- package/src/hex2rgb.ts +2 -3
- package/src/hsl2hex.ts +2 -3
- package/src/hsl2rgb.ts +5 -6
- package/src/index.ts +14 -19
- package/src/is-valid-color.ts +1 -1
- package/src/is-valid-hex.ts +2 -2
- package/src/lighten.ts +1 -1
- package/src/luminance.ts +6 -6
- package/src/modules/css-colors.ts +152 -0
- package/src/{hue2rgb.ts → modules/hue2rgb.ts} +1 -4
- package/src/{parse-color.ts → modules/parse-color.ts} +11 -11
- package/src/{updater.ts → modules/updater.ts} +6 -5
- package/src/modules/utils.ts +253 -0
- package/src/name.ts +3 -2
- package/src/palette.ts +9 -8
- package/src/parse-css.ts +8 -6
- package/src/rgb2hex.ts +4 -5
- package/src/rgb2hsl.ts +4 -5
- package/src/rotate.ts +3 -3
- package/src/saturate.ts +1 -1
- package/src/scheme.ts +11 -23
- package/src/shift.ts +4 -5
- package/src/text-color.ts +2 -2
- package/src/types/index.ts +1 -0
- package/esm/hue2rgb.js.map +0 -1
- package/esm/parse-color.js.map +0 -1
- package/esm/updater.js +0 -20
- package/esm/updater.js.map +0 -1
- package/esm/utils.js +0 -360
- package/esm/utils.js.map +0 -1
- package/lib/hue2rgb.js +0 -28
- package/lib/hue2rgb.js.map +0 -1
- package/lib/parse-color.js +0 -59
- package/lib/parse-color.js.map +0 -1
- package/lib/updater.js +0 -23
- package/lib/updater.js.map +0 -1
- package/lib/utils.js +0 -376
- package/lib/utils.js.map +0 -1
- package/src/utils.ts +0 -412
package/esm/parse-css.js
CHANGED
|
@@ -2,17 +2,18 @@ import hex2hsl from './hex2hsl';
|
|
|
2
2
|
import hex2rgb from './hex2rgb';
|
|
3
3
|
import hsl2hex from './hsl2hex';
|
|
4
4
|
import hsl2rgb from './hsl2rgb';
|
|
5
|
+
import isValidHex from './is-valid-hex';
|
|
6
|
+
import { cssColors } from './modules/css-colors';
|
|
7
|
+
import { invariant, isString, messages } from './modules/utils';
|
|
5
8
|
import rgb2hex from './rgb2hex';
|
|
6
9
|
import rgb2hsl from './rgb2hsl';
|
|
7
|
-
import { cssColors, invariant, isString, messages } from './utils';
|
|
8
|
-
import isValidHex from './is-valid-hex';
|
|
9
10
|
/**
|
|
10
11
|
* Parse CSS color
|
|
11
12
|
*/
|
|
12
13
|
export default function parseCSS(input, output) {
|
|
13
|
-
invariant(
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
invariant(isString(input), messages.inputString);
|
|
15
|
+
let result;
|
|
16
|
+
const parsedInput = cssColors[input.toLowerCase()] || input;
|
|
16
17
|
if (isValidHex(parsedInput)) {
|
|
17
18
|
switch (output) {
|
|
18
19
|
case 'hsl': {
|
|
@@ -31,12 +32,13 @@ export default function parseCSS(input, output) {
|
|
|
31
32
|
}
|
|
32
33
|
else {
|
|
33
34
|
// TODO: improve the pattern to require 3 groups
|
|
34
|
-
|
|
35
|
-
invariant(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
const matches = parsedInput.match(/(hsl|rgb)a?\((\d+)(?:,\s*|\s+)(\d+)%?(?:,\s*|\s+)(\d+)%?[^)]*\)/i);
|
|
36
|
+
invariant(Array.isArray(matches), 'invalid CSS string');
|
|
37
|
+
invariant(matches.length === 5, 'invalid CSS string');
|
|
38
|
+
const [, model, hORr, sORg, lORb] = matches;
|
|
39
|
+
let hex;
|
|
40
|
+
let hsl;
|
|
41
|
+
let rgb;
|
|
40
42
|
if (model === 'hsl') {
|
|
41
43
|
hsl = {
|
|
42
44
|
h: parseInt(hORr, 10),
|
package/esm/parse-css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-css.js","sourceRoot":"","sources":["../src/parse-css.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"parse-css.js","sourceRoot":"","sources":["../src/parse-css.ts"],"names":[],"mappings":"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"}
|
package/esm/random.js
CHANGED
package/esm/random.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM;IAC5B,
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM;IAC5B,MAAM,GAAG,GAAG;QACV,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;QACtC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;KACvC,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC"}
|
package/esm/rgb2hex.d.ts
CHANGED
package/esm/rgb2hex.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { invariant, isRGB, isRGBArray, messages } from './utils';
|
|
1
|
+
import { invariant, isRGB, isRGBArray, messages } from './modules/utils';
|
|
2
2
|
/**
|
|
3
|
-
* Convert
|
|
3
|
+
* Convert an RGA object to hex.
|
|
4
4
|
*/
|
|
5
5
|
export default function rgb2hex(input) {
|
|
6
|
-
invariant(
|
|
7
|
-
invariant(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
invariant(!!input, messages.input);
|
|
7
|
+
invariant(isRGBArray(input) || isRGB(input), messages.invalid);
|
|
8
|
+
let r;
|
|
9
|
+
let g;
|
|
10
|
+
let b;
|
|
11
11
|
if (isRGBArray(input)) {
|
|
12
|
-
r
|
|
12
|
+
[r, g, b] = input;
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
15
|
-
(
|
|
15
|
+
({ r, g, b } = input);
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
return
|
|
17
|
+
const output = [r.toString(16), g.toString(16), b.toString(16)];
|
|
18
|
+
return `#${output.map(d => (d.length === 1 ? `0${d}` : d)).join('')}`;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=rgb2hex.js.map
|
package/esm/rgb2hex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgb2hex.js","sourceRoot":"","sources":["../src/rgb2hex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rgb2hex.js","sourceRoot":"","sources":["../src/rgb2hex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGzE;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,KAAqB;IACnD,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE/D,IAAI,CAAS,CAAC;IACd,IAAI,CAAS,CAAC;IACd,IAAI,CAAS,CAAC;IAEd,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;QACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;KACnB;SAAM;QACL,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;KACvB;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACxE,CAAC"}
|
package/esm/rgb2hsl.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HSL, RGB, RGBArray } from './types';
|
|
2
2
|
export default function rgb2hsl(input: RGB | RGBArray): HSL;
|
package/esm/rgb2hsl.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { invariant, isRGB, limit, messages } from './utils';
|
|
1
|
+
import { invariant, isRGB, limit, messages } from './modules/utils';
|
|
2
2
|
export default function rgb2hsl(input) {
|
|
3
|
-
invariant(
|
|
4
|
-
|
|
3
|
+
invariant(!!input, messages.input);
|
|
4
|
+
let rgb = input;
|
|
5
5
|
if (Array.isArray(input)) {
|
|
6
6
|
rgb = { r: input[0], g: input[1], b: input[2] };
|
|
7
7
|
}
|
|
8
|
-
invariant(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
invariant(isRGB(rgb), messages.invalid);
|
|
9
|
+
const rLimit = limit(rgb.r, 'r') / 255;
|
|
10
|
+
const gLimit = limit(rgb.g, 'g') / 255;
|
|
11
|
+
const bLimit = limit(rgb.b, 'b') / 255;
|
|
12
|
+
const min = Math.min(rLimit, gLimit, bLimit);
|
|
13
|
+
const max = Math.max(rLimit, gLimit, bLimit);
|
|
14
|
+
const delta = max - min;
|
|
15
|
+
let h = 0;
|
|
16
|
+
let s;
|
|
17
|
+
const l = (max + min) / 2;
|
|
18
|
+
let rate;
|
|
19
19
|
switch (max) {
|
|
20
20
|
case rLimit:
|
|
21
21
|
rate = !delta ? 0 : (gLimit - bLimit) / delta;
|
package/esm/rgb2hsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgb2hsl.js","sourceRoot":"","sources":["../src/rgb2hsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"rgb2hsl.js","sourceRoot":"","sources":["../src/rgb2hsl.ts"],"names":[],"mappings":"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"}
|
package/esm/rotate.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import hex2hsl from './hex2hsl';
|
|
2
|
+
import { constrainDegrees, invariant, isNumber, isString, messages } from './modules/utils';
|
|
2
3
|
import parseCSS from './parse-css';
|
|
3
4
|
import { shift } from './shift';
|
|
4
|
-
import { constrainDegrees, invariant, isNumber, isString, messages } from './utils';
|
|
5
5
|
/**
|
|
6
6
|
* Change the color hue
|
|
7
7
|
*/
|
|
8
|
-
export default function rotate(input, degrees) {
|
|
9
|
-
|
|
10
|
-
invariant(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var h = hex2hsl(hex).h;
|
|
8
|
+
export default function rotate(input, degrees = 15) {
|
|
9
|
+
invariant(isString(input), messages.inputString);
|
|
10
|
+
invariant(isNumber(degrees), 'degrees must be a number');
|
|
11
|
+
const hex = parseCSS(input);
|
|
12
|
+
const { h } = hex2hsl(hex);
|
|
14
13
|
return shift(hex, {
|
|
15
14
|
h: constrainDegrees(h, degrees),
|
|
16
15
|
});
|
package/esm/rotate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotate.js","sourceRoot":"","sources":["../src/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"rotate.js","sourceRoot":"","sources":["../src/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAa,EAAE,OAAO,GAAG,EAAE;IACxD,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC;IAEzD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE3B,OAAO,KAAK,CAAC,GAAG,EAAE;QAChB,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC,CAAC;AACL,CAAC"}
|
package/esm/saturate.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import updater from './updater';
|
|
1
|
+
import updater from './modules/updater';
|
|
2
2
|
/**
|
|
3
3
|
* Increase color saturation
|
|
4
4
|
*/
|
|
5
|
-
export default function saturate(input, amount) {
|
|
6
|
-
if (amount === void 0) { amount = 10; }
|
|
5
|
+
export default function saturate(input, amount = 10) {
|
|
7
6
|
return updater('s', '+')(input, amount);
|
|
8
7
|
}
|
|
9
8
|
//# sourceMappingURL=saturate.js.map
|
package/esm/saturate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saturate.js","sourceRoot":"","sources":["../src/saturate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"saturate.js","sourceRoot":"","sources":["../src/saturate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAa,EAAE,MAAM,GAAG,EAAE;IACzD,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
package/esm/scheme.d.ts
CHANGED
package/esm/scheme.js
CHANGED
|
@@ -1,52 +1,38 @@
|
|
|
1
|
+
import { invariant, isString, messages } from './modules/utils';
|
|
1
2
|
import parseCSS from './parse-css';
|
|
2
3
|
import rotate from './rotate';
|
|
3
|
-
import { invariant, isString, messages } from './utils';
|
|
4
4
|
/**
|
|
5
|
-
* Get the scheme
|
|
5
|
+
* Get the scheme for a color.
|
|
6
6
|
*/
|
|
7
|
-
export default function scheme(input, type) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var output = [];
|
|
7
|
+
export default function scheme(input, type = 'complementary') {
|
|
8
|
+
invariant(isString(input), messages.inputString);
|
|
9
|
+
const hex = parseCSS(input);
|
|
10
|
+
const output = [];
|
|
12
11
|
switch (type) {
|
|
13
12
|
case 'analogous': {
|
|
14
|
-
output.push(rotate(hex, -30));
|
|
15
|
-
output.push(hex);
|
|
16
|
-
output.push(rotate(hex, 30));
|
|
13
|
+
output.push(rotate(hex, -30), hex, rotate(hex, 30));
|
|
17
14
|
break;
|
|
18
15
|
}
|
|
19
16
|
case 'complementary': {
|
|
20
|
-
output.push(hex);
|
|
21
|
-
output.push(rotate(hex, 180));
|
|
17
|
+
output.push(hex, rotate(hex, 180));
|
|
22
18
|
break;
|
|
23
19
|
}
|
|
24
20
|
case 'split':
|
|
25
21
|
case 'split-complementary': {
|
|
26
|
-
output.push(hex);
|
|
27
|
-
output.push(rotate(hex, 150));
|
|
28
|
-
output.push(rotate(hex, 210));
|
|
22
|
+
output.push(hex, rotate(hex, 150), rotate(hex, 210));
|
|
29
23
|
break;
|
|
30
24
|
}
|
|
31
25
|
case 'triadic': {
|
|
32
|
-
output.push(hex);
|
|
33
|
-
output.push(rotate(hex, 120));
|
|
34
|
-
output.push(rotate(hex, 240));
|
|
26
|
+
output.push(hex, rotate(hex, 120), rotate(hex, 240));
|
|
35
27
|
break;
|
|
36
28
|
}
|
|
37
29
|
case 'tetradic':
|
|
38
30
|
case 'rectangle': {
|
|
39
|
-
output.push(hex);
|
|
40
|
-
output.push(rotate(hex, 60));
|
|
41
|
-
output.push(rotate(hex, 180));
|
|
42
|
-
output.push(rotate(hex, 240));
|
|
31
|
+
output.push(hex, rotate(hex, 60), rotate(hex, 180), rotate(hex, 240));
|
|
43
32
|
break;
|
|
44
33
|
}
|
|
45
34
|
case 'square': {
|
|
46
|
-
output.push(hex);
|
|
47
|
-
output.push(rotate(hex, 90));
|
|
48
|
-
output.push(rotate(hex, 180));
|
|
49
|
-
output.push(rotate(hex, 270));
|
|
35
|
+
output.push(hex, rotate(hex, 90), rotate(hex, 180), rotate(hex, 270));
|
|
50
36
|
break;
|
|
51
37
|
}
|
|
52
38
|
default: {
|
package/esm/scheme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheme.js","sourceRoot":"","sources":["../src/scheme.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"scheme.js","sourceRoot":"","sources":["../src/scheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAa,EAAE,OAAe,eAAe;IAC1E,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,QAAQ,IAAI,EAAE;QACZ,KAAK,WAAW,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM;SACP;QACD,KAAK,eAAe,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM;SACP;QAED,KAAK,OAAO,CAAC;QACb,KAAK,qBAAqB,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM;SACP;QACD,KAAK,SAAS,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM;SACP;QAED,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtE,MAAM;SACP;QACD,KAAK,QAAQ,CAAC,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtE,MAAM;SACP;QACD,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;SACrC;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/esm/shift.js
CHANGED
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import hsl2hex from './hsl2hex';
|
|
13
1
|
import hex2hsl from './hex2hsl';
|
|
2
|
+
import hsl2hex from './hsl2hex';
|
|
3
|
+
import { HSLKeys, invariant, isPlainObject, isString, messages, pick } from './modules/utils';
|
|
14
4
|
import parseCSS from './parse-css';
|
|
15
|
-
import { HSLKeys, invariant, isPlainObject, isString, messages, pick } from './utils';
|
|
16
5
|
/**
|
|
17
6
|
* Shift color properties
|
|
18
7
|
*/
|
|
19
8
|
export function shift(input, options) {
|
|
20
|
-
invariant(
|
|
21
|
-
invariant(
|
|
22
|
-
return hsl2hex(
|
|
9
|
+
invariant(isString(input), messages.inputString);
|
|
10
|
+
invariant(isPlainObject(options), messages.options);
|
|
11
|
+
return hsl2hex({ ...hex2hsl(parseCSS(input)), ...pick(options, HSLKeys) });
|
|
23
12
|
}
|
|
24
13
|
//# sourceMappingURL=shift.js.map
|
package/esm/shift.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shift.js","sourceRoot":"","sources":["../src/shift.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shift.js","sourceRoot":"","sources":["../src/shift.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,QAAQ,MAAM,aAAa,CAAC;AAGnC;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,OAA2B;IAC9D,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEpD,OAAO,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
package/esm/text-color.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import hex2rgb from './hex2rgb';
|
|
2
|
+
import { invariant, isString, messages } from './modules/utils';
|
|
2
3
|
import parseCSS from './parse-css';
|
|
3
|
-
import { invariant, isString, messages } from './utils';
|
|
4
4
|
/**
|
|
5
5
|
* Get the contrasted color for a given hex.
|
|
6
6
|
*/
|
|
7
7
|
export default function textColor(input) {
|
|
8
|
-
invariant(
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
invariant(isString(input), messages.inputString);
|
|
9
|
+
const { r, g, b } = hex2rgb(parseCSS(input));
|
|
10
|
+
const yiq = (r * 299 + g * 587 + b * 114) / 1000;
|
|
11
11
|
return yiq >= 128 ? '#000000' : '#ffffff';
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=text-color.js.map
|
package/esm/text-color.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-color.js","sourceRoot":"","sources":["../src/text-color.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"text-color.js","sourceRoot":"","sources":["../src/text-color.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAa;IAC7C,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IAEjD,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const hex2rgb_1 = require("./hex2rgb");
|
|
4
|
+
const utils_1 = require("./modules/utils");
|
|
5
|
+
const parse_css_1 = require("./parse-css");
|
|
6
6
|
/**
|
|
7
7
|
* Get the brightness difference between 2 colors.
|
|
8
8
|
*/
|
|
9
9
|
function brightnessDifference(left, right) {
|
|
10
|
-
utils_1.invariant(
|
|
11
|
-
utils_1.invariant(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return utils_1.round(Math.abs(rightY - leftY), 4);
|
|
10
|
+
(0, utils_1.invariant)((0, utils_1.isString)(left), utils_1.messages.left);
|
|
11
|
+
(0, utils_1.invariant)((0, utils_1.isString)(right), utils_1.messages.right);
|
|
12
|
+
const RGBLeft = (0, hex2rgb_1.default)((0, parse_css_1.default)(left));
|
|
13
|
+
const RGBRight = (0, hex2rgb_1.default)((0, parse_css_1.default)(right));
|
|
14
|
+
const rightY = (RGBRight.r * 299 + RGBRight.g * 587 + RGBRight.b * 114) / 1000;
|
|
15
|
+
const leftY = (RGBLeft.r * 299 + RGBLeft.g * 587 + RGBLeft.b * 114) / 1000;
|
|
16
|
+
return (0, utils_1.round)(Math.abs(rightY - leftY), 4);
|
|
17
17
|
}
|
|
18
18
|
exports.default = brightnessDifference;
|
|
19
19
|
//# sourceMappingURL=brightness-difference.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brightness-difference.js","sourceRoot":"","sources":["../src/brightness-difference.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"brightness-difference.js","sourceRoot":"","sources":["../src/brightness-difference.ts"],"names":[],"mappings":";;AAAA,uCAAgC;AAChC,2CAAuE;AACvE,2CAAmC;AAEnC;;GAEG;AACH,SAAwB,oBAAoB,CAAC,IAAY,EAAE,KAAa;IACtE,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAE,gBAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAA,iBAAO,EAAC,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/E,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IAE3E,OAAO,IAAA,aAAK,EAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAXD,uCAWC"}
|
package/lib/chroma.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const hex2rgb_1 = require("./hex2rgb");
|
|
4
|
+
const utils_1 = require("./modules/utils");
|
|
5
|
+
const parse_css_1 = require("./parse-css");
|
|
6
6
|
/**
|
|
7
7
|
* Get the chroma of a color.
|
|
8
8
|
*/
|
|
9
9
|
function chroma(input) {
|
|
10
|
-
utils_1.invariant(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return utils_1.round((max - min) / 255, 4);
|
|
10
|
+
(0, utils_1.invariant)((0, utils_1.isString)(input), utils_1.messages.inputString);
|
|
11
|
+
const { r, g, b } = (0, hex2rgb_1.default)((0, parse_css_1.default)(input));
|
|
12
|
+
const max = Math.max(r, g, b);
|
|
13
|
+
const min = Math.min(r, g, b);
|
|
14
|
+
return (0, utils_1.round)((max - min) / 255, 4);
|
|
15
15
|
}
|
|
16
16
|
exports.default = chroma;
|
|
17
17
|
//# sourceMappingURL=chroma.js.map
|
package/lib/chroma.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chroma.js","sourceRoot":"","sources":["../src/chroma.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"chroma.js","sourceRoot":"","sources":["../src/chroma.ts"],"names":[],"mappings":";;AAAA,uCAAgC;AAChC,2CAAuE;AACvE,2CAAmC;AAEnC;;GAEG;AACH,SAAwB,MAAM,CAAC,KAAa;IAC1C,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,gBAAQ,CAAC,WAAW,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAA,iBAAO,EAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,OAAO,IAAA,aAAK,EAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AATD,yBASC"}
|
package/lib/color-difference.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const hex2rgb_1 = require("./hex2rgb");
|
|
4
|
+
const utils_1 = require("./modules/utils");
|
|
5
|
+
const parse_css_1 = require("./parse-css");
|
|
6
6
|
/**
|
|
7
7
|
* Get the difference between 2 colors.
|
|
8
8
|
*/
|
|
9
9
|
function colorDifference(left, right) {
|
|
10
|
-
utils_1.invariant(
|
|
11
|
-
utils_1.invariant(
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
(0, utils_1.invariant)((0, utils_1.isString)(left), utils_1.messages.left);
|
|
11
|
+
(0, utils_1.invariant)((0, utils_1.isString)(right), utils_1.messages.right);
|
|
12
|
+
const RGBLeft = (0, hex2rgb_1.default)((0, parse_css_1.default)(left));
|
|
13
|
+
const RGBRight = (0, hex2rgb_1.default)((0, parse_css_1.default)(right));
|
|
14
14
|
return (Math.max(RGBLeft.r, RGBRight.r) -
|
|
15
15
|
Math.min(RGBLeft.r, RGBRight.r) +
|
|
16
16
|
(Math.max(RGBLeft.g, RGBRight.g) - Math.min(RGBLeft.g, RGBRight.g)) +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color-difference.js","sourceRoot":"","sources":["../src/color-difference.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"color-difference.js","sourceRoot":"","sources":["../src/color-difference.ts"],"names":[],"mappings":";;AAAA,uCAAgC;AAChC,2CAAgE;AAChE,2CAAmC;AAEnC;;GAEG;AACH,SAAwB,eAAe,CAAC,IAAY,EAAE,KAAa;IACjE,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAE,gBAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAA,iBAAO,EAAC,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AAbD,kCAaC"}
|
package/lib/compare.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
const brightness_difference_1 = require("./brightness-difference");
|
|
4
|
+
const color_difference_1 = require("./color-difference");
|
|
5
|
+
const contrast_1 = require("./contrast");
|
|
6
|
+
const utils_1 = require("./modules/utils");
|
|
7
7
|
/**
|
|
8
8
|
* Check 2 colors for WCAG compliance.
|
|
9
9
|
*/
|
|
10
10
|
function compare(left, right) {
|
|
11
|
-
utils_1.invariant(
|
|
12
|
-
utils_1.invariant(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
(0, utils_1.invariant)((0, utils_1.isString)(left), utils_1.messages.left);
|
|
12
|
+
(0, utils_1.invariant)((0, utils_1.isString)(right), utils_1.messages.right);
|
|
13
|
+
const colorThreshold = 500;
|
|
14
|
+
const brightnessThreshold = 125;
|
|
15
|
+
const colorDifference = (0, color_difference_1.default)(left, right);
|
|
16
|
+
const contrast = (0, contrast_1.default)(left, right);
|
|
17
|
+
const brightnessDifference = (0, brightness_difference_1.default)(left, right);
|
|
18
|
+
const isBright = brightnessDifference >= brightnessThreshold;
|
|
19
|
+
const hasEnoughDifference = colorDifference >= colorThreshold;
|
|
20
|
+
let compliant = 0;
|
|
21
21
|
if (isBright && hasEnoughDifference) {
|
|
22
22
|
compliant = 2;
|
|
23
23
|
}
|
|
@@ -25,10 +25,10 @@ function compare(left, right) {
|
|
|
25
25
|
compliant = 1;
|
|
26
26
|
}
|
|
27
27
|
return {
|
|
28
|
-
brightnessDifference
|
|
29
|
-
colorDifference
|
|
30
|
-
compliant
|
|
31
|
-
contrast
|
|
28
|
+
brightnessDifference,
|
|
29
|
+
colorDifference,
|
|
30
|
+
compliant,
|
|
31
|
+
contrast,
|
|
32
32
|
largeAA: contrast >= 3,
|
|
33
33
|
largeAAA: contrast >= 4.5,
|
|
34
34
|
normalAA: contrast >= 4.5,
|
package/lib/compare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":";;AAAA,mEAA8D;AAC9D,yDAAoD;AACpD,yCAAqC;AACrC,2CAAgE;AAGhE;;GAEG;AACH,SAAwB,OAAO,CAAC,IAAY,EAAE,KAAa;IACzD,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAE,gBAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,GAAG,CAAC;IAC3B,MAAM,mBAAmB,GAAG,GAAG,CAAC;IAEhC,MAAM,eAAe,GAAG,IAAA,0BAAkB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,oBAAoB,GAAG,IAAA,+BAAuB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,oBAAoB,IAAI,mBAAmB,CAAC;IAC7D,MAAM,mBAAmB,GAAG,eAAe,IAAI,cAAc,CAAC;IAE9D,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,QAAQ,IAAI,mBAAmB,EAAE;QACnC,SAAS,GAAG,CAAC,CAAC;KACf;SAAM,IAAI,QAAQ,IAAI,mBAAmB,EAAE;QAC1C,SAAS,GAAG,CAAC,CAAC;KACf;IAED,OAAO;QACL,oBAAoB;QACpB,eAAe;QACf,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,QAAQ,IAAI,CAAC;QACtB,QAAQ,EAAE,QAAQ,IAAI,GAAG;QACzB,QAAQ,EAAE,QAAQ,IAAI,GAAG;QACzB,SAAS,EAAE,QAAQ,IAAI,CAAC;KACzB,CAAC;AACJ,CAAC;AAhCD,0BAgCC"}
|
package/lib/contrast.js
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const luminance_1 = require("./luminance");
|
|
4
|
+
const utils_1 = require("./modules/utils");
|
|
5
|
+
const parse_css_1 = require("./parse-css");
|
|
6
6
|
/**
|
|
7
7
|
* Get the color contrast between 2 colors.
|
|
8
8
|
*/
|
|
9
9
|
function contrast(left, right) {
|
|
10
|
-
utils_1.invariant(
|
|
11
|
-
utils_1.invariant(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
output = (LuminanceRight + 0.05) / (LuminanceLeft + 0.05);
|
|
20
|
-
}
|
|
21
|
-
return utils_1.round(output);
|
|
10
|
+
(0, utils_1.invariant)((0, utils_1.isString)(left), utils_1.messages.left);
|
|
11
|
+
(0, utils_1.invariant)((0, utils_1.isString)(right), utils_1.messages.right);
|
|
12
|
+
const LuminanceLeft = (0, luminance_1.default)((0, parse_css_1.default)(left));
|
|
13
|
+
const LuminanceRight = (0, luminance_1.default)((0, parse_css_1.default)(right));
|
|
14
|
+
return (0, utils_1.round)(LuminanceLeft >= LuminanceRight
|
|
15
|
+
? (LuminanceLeft + 0.05) / (LuminanceRight + 0.05)
|
|
16
|
+
: (LuminanceRight + 0.05) / (LuminanceLeft + 0.05));
|
|
22
17
|
}
|
|
23
18
|
exports.default = contrast;
|
|
24
19
|
//# sourceMappingURL=contrast.js.map
|
package/lib/contrast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contrast.js","sourceRoot":"","sources":["../src/contrast.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"contrast.js","sourceRoot":"","sources":["../src/contrast.ts"],"names":[],"mappings":";;AAAA,2CAAuC;AACvC,2CAAuE;AACvE,2CAAmC;AAEnC;;GAEG;AACH,SAAwB,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC1D,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAE,gBAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,IAAA,iBAAS,EAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,aAAa,GAAG,IAAA,mBAAY,EAAC,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,IAAA,mBAAY,EAAC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC;IAErD,OAAO,IAAA,aAAK,EACV,aAAa,IAAI,cAAc;QAC7B,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;QAClD,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CACrD,CAAC;AACJ,CAAC;AAZD,2BAYC"}
|