color-elements 0.0.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/README.md +33 -0
- package/_build/copy-config.js +90 -0
- package/_build/copy-config.json +18 -0
- package/_build/eleventy.js +16 -0
- package/_data/eleventyComputed.11tydata.js +29 -0
- package/_headers +2 -0
- package/_redirects +2 -0
- package/assets/css/style.css +1 -0
- package/assets/js/index.js +15 -0
- package/color-gamut/README.md +75 -0
- package/color-gamut/color-gamut.js +172 -0
- package/color-gamut/style.css +32 -0
- package/color-slider/README.md +84 -0
- package/color-slider/color-slider.js +79 -0
- package/color-slider/style.css +65 -0
- package/color-swatch/color-swatch.css +41 -0
- package/color-swatch/color-swatch.js +79 -0
- package/color-swatch/index.njk +40 -0
- package/common/attributes.js +68 -0
- package/common/color.js +10 -0
- package/css-color/css-color.js +256 -0
- package/css-color/index.njk +43 -0
- package/css-color/style.css +67 -0
- package/elements.11tydata.json +5 -0
- package/index.js +4 -0
- package/lib/README.md +4 -0
- package/lib/colorjs.io/LICENSE +21 -0
- package/lib/colorjs.io/README.json +3 -0
- package/lib/colorjs.io/README.md +257 -0
- package/lib/colorjs.io/colorjs.io/LICENSE +21 -0
- package/lib/colorjs.io/colorjs.io/README.json +3 -0
- package/lib/colorjs.io/colorjs.io/README.md +257 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +5437 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +7048 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.cjs +5759 -0
- package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.js +5760 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +7400 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.js +5755 -0
- package/lib/colorjs.io/colorjs.io/dist/color.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +7399 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +7395 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +1 -0
- package/lib/colorjs.io/colorjs.io/dist/color.min.js +2 -0
- package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +1 -0
- package/lib/colorjs.io/colorjs.io/package.json +113 -0
- package/lib/colorjs.io/colorjs.io/src/CATs.js +131 -0
- package/lib/colorjs.io/colorjs.io/src/adapt.js +62 -0
- package/lib/colorjs.io/colorjs.io/src/angles.js +44 -0
- package/lib/colorjs.io/colorjs.io/src/chromaticity.js +33 -0
- package/lib/colorjs.io/colorjs.io/src/clone.js +7 -0
- package/lib/colorjs.io/colorjs.io/src/color.js +201 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +102 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +17 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +22 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +20 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +27 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +25 -0
- package/lib/colorjs.io/colorjs.io/src/contrast/index.js +6 -0
- package/lib/colorjs.io/colorjs.io/src/contrast.js +28 -0
- package/lib/colorjs.io/colorjs.io/src/defaults.js +12 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +179 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +7 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +114 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +51 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +24 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +43 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +19 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +27 -0
- package/lib/colorjs.io/colorjs.io/src/deltaE.js +19 -0
- package/lib/colorjs.io/colorjs.io/src/display.js +83 -0
- package/lib/colorjs.io/colorjs.io/src/distance.js +21 -0
- package/lib/colorjs.io/colorjs.io/src/equals.js +10 -0
- package/lib/colorjs.io/colorjs.io/src/get.js +11 -0
- package/lib/colorjs.io/colorjs.io/src/getAll.js +20 -0
- package/lib/colorjs.io/colorjs.io/src/getColor.js +36 -0
- package/lib/colorjs.io/colorjs.io/src/hooks.js +37 -0
- package/lib/colorjs.io/colorjs.io/src/inGamut.js +25 -0
- package/lib/colorjs.io/colorjs.io/src/index-fn.js +28 -0
- package/lib/colorjs.io/colorjs.io/src/index.js +38 -0
- package/lib/colorjs.io/colorjs.io/src/interpolation.js +222 -0
- package/lib/colorjs.io/colorjs.io/src/keywords.js +158 -0
- package/lib/colorjs.io/colorjs.io/src/luminance.js +27 -0
- package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +44 -0
- package/lib/colorjs.io/colorjs.io/src/parse.js +198 -0
- package/lib/colorjs.io/colorjs.io/src/rgbspace.js +64 -0
- package/lib/colorjs.io/colorjs.io/src/serialize.js +86 -0
- package/lib/colorjs.io/colorjs.io/src/set.js +33 -0
- package/lib/colorjs.io/colorjs.io/src/setAll.js +12 -0
- package/lib/colorjs.io/colorjs.io/src/space-accessors.js +86 -0
- package/lib/colorjs.io/colorjs.io/src/space.js +440 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +28 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +11 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +76 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +54 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +362 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +157 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +130 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +91 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +162 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +65 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +58 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +133 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +7 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +29 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/index.js +8 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +118 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +53 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +74 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +74 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +67 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +68 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +85 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +74 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +68 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +22 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +13 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +28 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +19 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +27 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +31 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +49 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +37 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +30 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +127 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +40 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +12 -0
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +18 -0
- package/lib/colorjs.io/colorjs.io/src/to.js +26 -0
- package/lib/colorjs.io/colorjs.io/src/toGamut.js +310 -0
- package/lib/colorjs.io/colorjs.io/src/util.js +254 -0
- package/lib/colorjs.io/colorjs.io/src/variations.js +14 -0
- package/lib/colorjs.io/colorjs.io/types/index.d.cts +4 -0
- package/lib/colorjs.io/colorjs.io/types/index.d.ts +42 -0
- package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +13 -0
- package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +12 -0
- package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +7 -0
- package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +7 -0
- package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +160 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +11 -0
- package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +12 -0
- package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +2 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +11 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +9 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +5 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +14 -0
- package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +12 -0
- package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +17 -0
- package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +8 -0
- package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +4 -0
- package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +7 -0
- package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +4 -0
- package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +52 -0
- package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +8 -0
- package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +1 -0
- package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +63 -0
- package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +125 -0
- package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +77 -0
- package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +2 -0
- package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +10 -0
- package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +9 -0
- package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +16 -0
- package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +10 -0
- package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +13 -0
- package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +18 -0
- package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +14 -0
- package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +1 -0
- package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +69 -0
- package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +143 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +9 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +29 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +4 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +3 -0
- package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +14 -0
- package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +45 -0
- package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +58 -0
- package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +5 -0
- package/lib/colorjs.io/dist/color-fn.cjs +5437 -0
- package/lib/colorjs.io/dist/color-fn.cjs.map +1 -0
- package/lib/colorjs.io/dist/color-fn.legacy.cjs +7048 -0
- package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +1 -0
- package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +2 -0
- package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +1 -0
- package/lib/colorjs.io/dist/color-fn.min.cjs +2 -0
- package/lib/colorjs.io/dist/color-fn.min.cjs.map +1 -0
- package/lib/colorjs.io/dist/color.cjs +5759 -0
- package/lib/colorjs.io/dist/color.cjs.map +1 -0
- package/lib/colorjs.io/dist/color.global.js +5760 -0
- package/lib/colorjs.io/dist/color.global.js.map +1 -0
- package/lib/colorjs.io/dist/color.global.legacy.js +7400 -0
- package/lib/colorjs.io/dist/color.global.legacy.js.map +1 -0
- package/lib/colorjs.io/dist/color.global.legacy.min.js +2 -0
- package/lib/colorjs.io/dist/color.global.legacy.min.js.map +1 -0
- package/lib/colorjs.io/dist/color.global.min.js +2 -0
- package/lib/colorjs.io/dist/color.global.min.js.map +1 -0
- package/lib/colorjs.io/dist/color.js +5755 -0
- package/lib/colorjs.io/dist/color.js.map +1 -0
- package/lib/colorjs.io/dist/color.legacy.cjs +7399 -0
- package/lib/colorjs.io/dist/color.legacy.cjs.map +1 -0
- package/lib/colorjs.io/dist/color.legacy.js +7395 -0
- package/lib/colorjs.io/dist/color.legacy.js.map +1 -0
- package/lib/colorjs.io/dist/color.legacy.min.cjs +2 -0
- package/lib/colorjs.io/dist/color.legacy.min.cjs.map +1 -0
- package/lib/colorjs.io/dist/color.legacy.min.js +2 -0
- package/lib/colorjs.io/dist/color.legacy.min.js.map +1 -0
- package/lib/colorjs.io/dist/color.min.cjs +2 -0
- package/lib/colorjs.io/dist/color.min.cjs.map +1 -0
- package/lib/colorjs.io/dist/color.min.js +2 -0
- package/lib/colorjs.io/dist/color.min.js.map +1 -0
- package/lib/colorjs.io/package.json +113 -0
- package/lib/colorjs.io/src/CATs.js +131 -0
- package/lib/colorjs.io/src/adapt.js +62 -0
- package/lib/colorjs.io/src/angles.js +44 -0
- package/lib/colorjs.io/src/chromaticity.js +33 -0
- package/lib/colorjs.io/src/clone.js +7 -0
- package/lib/colorjs.io/src/color.js +201 -0
- package/lib/colorjs.io/src/contrast/APCA.js +102 -0
- package/lib/colorjs.io/src/contrast/Lstar.js +17 -0
- package/lib/colorjs.io/src/contrast/Michelson.js +22 -0
- package/lib/colorjs.io/src/contrast/WCAG21.js +20 -0
- package/lib/colorjs.io/src/contrast/Weber.js +27 -0
- package/lib/colorjs.io/src/contrast/deltaPhi.js +25 -0
- package/lib/colorjs.io/src/contrast/index.js +6 -0
- package/lib/colorjs.io/src/contrast.js +28 -0
- package/lib/colorjs.io/src/defaults.js +12 -0
- package/lib/colorjs.io/src/deltaE/deltaE2000.js +179 -0
- package/lib/colorjs.io/src/deltaE/deltaE76.js +7 -0
- package/lib/colorjs.io/src/deltaE/deltaECMC.js +114 -0
- package/lib/colorjs.io/src/deltaE/deltaEHCT.js +51 -0
- package/lib/colorjs.io/src/deltaE/deltaEITP.js +24 -0
- package/lib/colorjs.io/src/deltaE/deltaEJz.js +43 -0
- package/lib/colorjs.io/src/deltaE/deltaEOK.js +19 -0
- package/lib/colorjs.io/src/deltaE/index.js +27 -0
- package/lib/colorjs.io/src/deltaE.js +19 -0
- package/lib/colorjs.io/src/display.js +83 -0
- package/lib/colorjs.io/src/distance.js +21 -0
- package/lib/colorjs.io/src/equals.js +10 -0
- package/lib/colorjs.io/src/get.js +11 -0
- package/lib/colorjs.io/src/getAll.js +20 -0
- package/lib/colorjs.io/src/getColor.js +36 -0
- package/lib/colorjs.io/src/hooks.js +37 -0
- package/lib/colorjs.io/src/inGamut.js +25 -0
- package/lib/colorjs.io/src/index-fn.js +28 -0
- package/lib/colorjs.io/src/index.js +38 -0
- package/lib/colorjs.io/src/interpolation.js +222 -0
- package/lib/colorjs.io/src/keywords.js +158 -0
- package/lib/colorjs.io/src/luminance.js +27 -0
- package/lib/colorjs.io/src/multiply-matrices.js +44 -0
- package/lib/colorjs.io/src/parse.js +198 -0
- package/lib/colorjs.io/src/rgbspace.js +64 -0
- package/lib/colorjs.io/src/serialize.js +86 -0
- package/lib/colorjs.io/src/set.js +33 -0
- package/lib/colorjs.io/src/setAll.js +12 -0
- package/lib/colorjs.io/src/space-accessors.js +86 -0
- package/lib/colorjs.io/src/space.js +440 -0
- package/lib/colorjs.io/src/spaces/a98rgb-linear.js +28 -0
- package/lib/colorjs.io/src/spaces/a98rgb.js +11 -0
- package/lib/colorjs.io/src/spaces/acescc.js +76 -0
- package/lib/colorjs.io/src/spaces/acescg.js +54 -0
- package/lib/colorjs.io/src/spaces/cam16.js +362 -0
- package/lib/colorjs.io/src/spaces/hct.js +157 -0
- package/lib/colorjs.io/src/spaces/hpluv.js +130 -0
- package/lib/colorjs.io/src/spaces/hsl.js +91 -0
- package/lib/colorjs.io/src/spaces/hsluv.js +162 -0
- package/lib/colorjs.io/src/spaces/hsv.js +65 -0
- package/lib/colorjs.io/src/spaces/hwb.js +58 -0
- package/lib/colorjs.io/src/spaces/ictcp.js +133 -0
- package/lib/colorjs.io/src/spaces/index-fn-hdr.js +7 -0
- package/lib/colorjs.io/src/spaces/index-fn.js +29 -0
- package/lib/colorjs.io/src/spaces/index.js +8 -0
- package/lib/colorjs.io/src/spaces/jzazbz.js +118 -0
- package/lib/colorjs.io/src/spaces/jzczhz.js +53 -0
- package/lib/colorjs.io/src/spaces/lab-d65.js +74 -0
- package/lib/colorjs.io/src/spaces/lab.js +74 -0
- package/lib/colorjs.io/src/spaces/lch.js +67 -0
- package/lib/colorjs.io/src/spaces/lchuv.js +68 -0
- package/lib/colorjs.io/src/spaces/luv.js +85 -0
- package/lib/colorjs.io/src/spaces/oklab.js +74 -0
- package/lib/colorjs.io/src/spaces/oklch.js +68 -0
- package/lib/colorjs.io/src/spaces/p3-linear.js +22 -0
- package/lib/colorjs.io/src/spaces/p3.js +13 -0
- package/lib/colorjs.io/src/spaces/prophoto-linear.js +28 -0
- package/lib/colorjs.io/src/spaces/prophoto.js +19 -0
- package/lib/colorjs.io/src/spaces/rec2020-linear.js +27 -0
- package/lib/colorjs.io/src/spaces/rec2020.js +31 -0
- package/lib/colorjs.io/src/spaces/rec2100-hlg.js +49 -0
- package/lib/colorjs.io/src/spaces/rec2100-pq.js +37 -0
- package/lib/colorjs.io/src/spaces/srgb-linear.js +30 -0
- package/lib/colorjs.io/src/spaces/srgb.js +127 -0
- package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +40 -0
- package/lib/colorjs.io/src/spaces/xyz-d50.js +12 -0
- package/lib/colorjs.io/src/spaces/xyz-d65.js +18 -0
- package/lib/colorjs.io/src/to.js +26 -0
- package/lib/colorjs.io/src/toGamut.js +310 -0
- package/lib/colorjs.io/src/util.js +254 -0
- package/lib/colorjs.io/src/variations.js +14 -0
- package/lib/colorjs.io/types/index.d.cts +4 -0
- package/lib/colorjs.io/types/index.d.ts +42 -0
- package/lib/colorjs.io/types/src/CATs.d.ts +13 -0
- package/lib/colorjs.io/types/src/adapt.d.ts +12 -0
- package/lib/colorjs.io/types/src/angles.d.ts +7 -0
- package/lib/colorjs.io/types/src/chromaticity.d.ts +7 -0
- package/lib/colorjs.io/types/src/clone.d.ts +3 -0
- package/lib/colorjs.io/types/src/color.d.ts +160 -0
- package/lib/colorjs.io/types/src/contrast/APCA.d.ts +5 -0
- package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +5 -0
- package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +5 -0
- package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +5 -0
- package/lib/colorjs.io/types/src/contrast/Weber.d.ts +5 -0
- package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +5 -0
- package/lib/colorjs.io/types/src/contrast/index.d.ts +11 -0
- package/lib/colorjs.io/types/src/contrast.d.ts +12 -0
- package/lib/colorjs.io/types/src/defaults.d.ts +2 -0
- package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +11 -0
- package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +5 -0
- package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +9 -0
- package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +5 -0
- package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +5 -0
- package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +5 -0
- package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +5 -0
- package/lib/colorjs.io/types/src/deltaE/index.d.ts +14 -0
- package/lib/colorjs.io/types/src/deltaE.d.ts +12 -0
- package/lib/colorjs.io/types/src/display.d.ts +17 -0
- package/lib/colorjs.io/types/src/distance.d.ts +8 -0
- package/lib/colorjs.io/types/src/equals.d.ts +3 -0
- package/lib/colorjs.io/types/src/get.d.ts +4 -0
- package/lib/colorjs.io/types/src/getAll.d.ts +7 -0
- package/lib/colorjs.io/types/src/getColor.d.ts +4 -0
- package/lib/colorjs.io/types/src/hooks.d.ts +52 -0
- package/lib/colorjs.io/types/src/inGamut.d.ts +8 -0
- package/lib/colorjs.io/types/src/index-fn.d.cts +1 -0
- package/lib/colorjs.io/types/src/index-fn.d.ts +63 -0
- package/lib/colorjs.io/types/src/index.d.ts +125 -0
- package/lib/colorjs.io/types/src/interpolation.d.ts +77 -0
- package/lib/colorjs.io/types/src/keywords.d.ts +2 -0
- package/lib/colorjs.io/types/src/luminance.d.ts +10 -0
- package/lib/colorjs.io/types/src/multiply-matrices.d.ts +9 -0
- package/lib/colorjs.io/types/src/parse.d.ts +16 -0
- package/lib/colorjs.io/types/src/rgbspace.d.ts +10 -0
- package/lib/colorjs.io/types/src/serialize.d.ts +13 -0
- package/lib/colorjs.io/types/src/set.d.ts +18 -0
- package/lib/colorjs.io/types/src/setAll.d.ts +14 -0
- package/lib/colorjs.io/types/src/space-accessors.d.ts +1 -0
- package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +69 -0
- package/lib/colorjs.io/types/src/space.d.ts +143 -0
- package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/acescc.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/acescg.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/hsl.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/hsv.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/hwb.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +9 -0
- package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +29 -0
- package/lib/colorjs.io/types/src/spaces/index.d.ts +4 -0
- package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/lab.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/lch.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/luv.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/oklab.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/oklch.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/p3.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/srgb.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +3 -0
- package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +3 -0
- package/lib/colorjs.io/types/src/to.d.ts +14 -0
- package/lib/colorjs.io/types/src/toGamut.d.ts +45 -0
- package/lib/colorjs.io/types/src/util.d.ts +58 -0
- package/lib/colorjs.io/types/src/variations.d.ts +5 -0
- package/logo.svg +159 -0
- package/package.json +41 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/* List of CSS color keywords
|
|
2
|
+
* Note that this does not include currentColor, transparent,
|
|
3
|
+
* or system colors
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// To produce: Visit https://www.w3.org/TR/css-color-4/#named-colors
|
|
7
|
+
// and run in the console:
|
|
8
|
+
// copy($$("tr", $(".named-color-table tbody")).map(tr => `"${tr.cells[2].textContent.trim()}": [${tr.cells[4].textContent.trim().split(/\s+/).map(c => c === "0"? "0" : c === "255"? "1" : c + " / 255").join(", ")}]`).join(",\n"))
|
|
9
|
+
export default {
|
|
10
|
+
"aliceblue": [240 / 255, 248 / 255, 1],
|
|
11
|
+
"antiquewhite": [250 / 255, 235 / 255, 215 / 255],
|
|
12
|
+
"aqua": [0, 1, 1],
|
|
13
|
+
"aquamarine": [127 / 255, 1, 212 / 255],
|
|
14
|
+
"azure": [240 / 255, 1, 1],
|
|
15
|
+
"beige": [245 / 255, 245 / 255, 220 / 255],
|
|
16
|
+
"bisque": [1, 228 / 255, 196 / 255],
|
|
17
|
+
"black": [0, 0, 0],
|
|
18
|
+
"blanchedalmond": [1, 235 / 255, 205 / 255],
|
|
19
|
+
"blue": [0, 0, 1],
|
|
20
|
+
"blueviolet": [138 / 255, 43 / 255, 226 / 255],
|
|
21
|
+
"brown": [165 / 255, 42 / 255, 42 / 255],
|
|
22
|
+
"burlywood": [222 / 255, 184 / 255, 135 / 255],
|
|
23
|
+
"cadetblue": [95 / 255, 158 / 255, 160 / 255],
|
|
24
|
+
"chartreuse": [127 / 255, 1, 0],
|
|
25
|
+
"chocolate": [210 / 255, 105 / 255, 30 / 255],
|
|
26
|
+
"coral": [1, 127 / 255, 80 / 255],
|
|
27
|
+
"cornflowerblue": [100 / 255, 149 / 255, 237 / 255],
|
|
28
|
+
"cornsilk": [1, 248 / 255, 220 / 255],
|
|
29
|
+
"crimson": [220 / 255, 20 / 255, 60 / 255],
|
|
30
|
+
"cyan": [0, 1, 1],
|
|
31
|
+
"darkblue": [0, 0, 139 / 255],
|
|
32
|
+
"darkcyan": [0, 139 / 255, 139 / 255],
|
|
33
|
+
"darkgoldenrod": [184 / 255, 134 / 255, 11 / 255],
|
|
34
|
+
"darkgray": [169 / 255, 169 / 255, 169 / 255],
|
|
35
|
+
"darkgreen": [0, 100 / 255, 0],
|
|
36
|
+
"darkgrey": [169 / 255, 169 / 255, 169 / 255],
|
|
37
|
+
"darkkhaki": [189 / 255, 183 / 255, 107 / 255],
|
|
38
|
+
"darkmagenta": [139 / 255, 0, 139 / 255],
|
|
39
|
+
"darkolivegreen": [85 / 255, 107 / 255, 47 / 255],
|
|
40
|
+
"darkorange": [1, 140 / 255, 0],
|
|
41
|
+
"darkorchid": [153 / 255, 50 / 255, 204 / 255],
|
|
42
|
+
"darkred": [139 / 255, 0, 0],
|
|
43
|
+
"darksalmon": [233 / 255, 150 / 255, 122 / 255],
|
|
44
|
+
"darkseagreen": [143 / 255, 188 / 255, 143 / 255],
|
|
45
|
+
"darkslateblue": [72 / 255, 61 / 255, 139 / 255],
|
|
46
|
+
"darkslategray": [47 / 255, 79 / 255, 79 / 255],
|
|
47
|
+
"darkslategrey": [47 / 255, 79 / 255, 79 / 255],
|
|
48
|
+
"darkturquoise": [0, 206 / 255, 209 / 255],
|
|
49
|
+
"darkviolet": [148 / 255, 0, 211 / 255],
|
|
50
|
+
"deeppink": [1, 20 / 255, 147 / 255],
|
|
51
|
+
"deepskyblue": [0, 191 / 255, 1],
|
|
52
|
+
"dimgray": [105 / 255, 105 / 255, 105 / 255],
|
|
53
|
+
"dimgrey": [105 / 255, 105 / 255, 105 / 255],
|
|
54
|
+
"dodgerblue": [30 / 255, 144 / 255, 1],
|
|
55
|
+
"firebrick": [178 / 255, 34 / 255, 34 / 255],
|
|
56
|
+
"floralwhite": [1, 250 / 255, 240 / 255],
|
|
57
|
+
"forestgreen": [34 / 255, 139 / 255, 34 / 255],
|
|
58
|
+
"fuchsia": [1, 0, 1],
|
|
59
|
+
"gainsboro": [220 / 255, 220 / 255, 220 / 255],
|
|
60
|
+
"ghostwhite": [248 / 255, 248 / 255, 1],
|
|
61
|
+
"gold": [1, 215 / 255, 0],
|
|
62
|
+
"goldenrod": [218 / 255, 165 / 255, 32 / 255],
|
|
63
|
+
"gray": [128 / 255, 128 / 255, 128 / 255],
|
|
64
|
+
"green": [0, 128 / 255, 0],
|
|
65
|
+
"greenyellow": [173 / 255, 1, 47 / 255],
|
|
66
|
+
"grey": [128 / 255, 128 / 255, 128 / 255],
|
|
67
|
+
"honeydew": [240 / 255, 1, 240 / 255],
|
|
68
|
+
"hotpink": [1, 105 / 255, 180 / 255],
|
|
69
|
+
"indianred": [205 / 255, 92 / 255, 92 / 255],
|
|
70
|
+
"indigo": [75 / 255, 0, 130 / 255],
|
|
71
|
+
"ivory": [1, 1, 240 / 255],
|
|
72
|
+
"khaki": [240 / 255, 230 / 255, 140 / 255],
|
|
73
|
+
"lavender": [230 / 255, 230 / 255, 250 / 255],
|
|
74
|
+
"lavenderblush": [1, 240 / 255, 245 / 255],
|
|
75
|
+
"lawngreen": [124 / 255, 252 / 255, 0],
|
|
76
|
+
"lemonchiffon": [1, 250 / 255, 205 / 255],
|
|
77
|
+
"lightblue": [173 / 255, 216 / 255, 230 / 255],
|
|
78
|
+
"lightcoral": [240 / 255, 128 / 255, 128 / 255],
|
|
79
|
+
"lightcyan": [224 / 255, 1, 1],
|
|
80
|
+
"lightgoldenrodyellow": [250 / 255, 250 / 255, 210 / 255],
|
|
81
|
+
"lightgray": [211 / 255, 211 / 255, 211 / 255],
|
|
82
|
+
"lightgreen": [144 / 255, 238 / 255, 144 / 255],
|
|
83
|
+
"lightgrey": [211 / 255, 211 / 255, 211 / 255],
|
|
84
|
+
"lightpink": [1, 182 / 255, 193 / 255],
|
|
85
|
+
"lightsalmon": [1, 160 / 255, 122 / 255],
|
|
86
|
+
"lightseagreen": [32 / 255, 178 / 255, 170 / 255],
|
|
87
|
+
"lightskyblue": [135 / 255, 206 / 255, 250 / 255],
|
|
88
|
+
"lightslategray": [119 / 255, 136 / 255, 153 / 255],
|
|
89
|
+
"lightslategrey": [119 / 255, 136 / 255, 153 / 255],
|
|
90
|
+
"lightsteelblue": [176 / 255, 196 / 255, 222 / 255],
|
|
91
|
+
"lightyellow": [1, 1, 224 / 255],
|
|
92
|
+
"lime": [0, 1, 0],
|
|
93
|
+
"limegreen": [50 / 255, 205 / 255, 50 / 255],
|
|
94
|
+
"linen": [250 / 255, 240 / 255, 230 / 255],
|
|
95
|
+
"magenta": [1, 0, 1],
|
|
96
|
+
"maroon": [128 / 255, 0, 0],
|
|
97
|
+
"mediumaquamarine": [102 / 255, 205 / 255, 170 / 255],
|
|
98
|
+
"mediumblue": [0, 0, 205 / 255],
|
|
99
|
+
"mediumorchid": [186 / 255, 85 / 255, 211 / 255],
|
|
100
|
+
"mediumpurple": [147 / 255, 112 / 255, 219 / 255],
|
|
101
|
+
"mediumseagreen": [60 / 255, 179 / 255, 113 / 255],
|
|
102
|
+
"mediumslateblue": [123 / 255, 104 / 255, 238 / 255],
|
|
103
|
+
"mediumspringgreen": [0, 250 / 255, 154 / 255],
|
|
104
|
+
"mediumturquoise": [72 / 255, 209 / 255, 204 / 255],
|
|
105
|
+
"mediumvioletred": [199 / 255, 21 / 255, 133 / 255],
|
|
106
|
+
"midnightblue": [25 / 255, 25 / 255, 112 / 255],
|
|
107
|
+
"mintcream": [245 / 255, 1, 250 / 255],
|
|
108
|
+
"mistyrose": [1, 228 / 255, 225 / 255],
|
|
109
|
+
"moccasin": [1, 228 / 255, 181 / 255],
|
|
110
|
+
"navajowhite": [1, 222 / 255, 173 / 255],
|
|
111
|
+
"navy": [0, 0, 128 / 255],
|
|
112
|
+
"oldlace": [253 / 255, 245 / 255, 230 / 255],
|
|
113
|
+
"olive": [128 / 255, 128 / 255, 0],
|
|
114
|
+
"olivedrab": [107 / 255, 142 / 255, 35 / 255],
|
|
115
|
+
"orange": [1, 165 / 255, 0],
|
|
116
|
+
"orangered": [1, 69 / 255, 0],
|
|
117
|
+
"orchid": [218 / 255, 112 / 255, 214 / 255],
|
|
118
|
+
"palegoldenrod": [238 / 255, 232 / 255, 170 / 255],
|
|
119
|
+
"palegreen": [152 / 255, 251 / 255, 152 / 255],
|
|
120
|
+
"paleturquoise": [175 / 255, 238 / 255, 238 / 255],
|
|
121
|
+
"palevioletred": [219 / 255, 112 / 255, 147 / 255],
|
|
122
|
+
"papayawhip": [1, 239 / 255, 213 / 255],
|
|
123
|
+
"peachpuff": [1, 218 / 255, 185 / 255],
|
|
124
|
+
"peru": [205 / 255, 133 / 255, 63 / 255],
|
|
125
|
+
"pink": [1, 192 / 255, 203 / 255],
|
|
126
|
+
"plum": [221 / 255, 160 / 255, 221 / 255],
|
|
127
|
+
"powderblue": [176 / 255, 224 / 255, 230 / 255],
|
|
128
|
+
"purple": [128 / 255, 0, 128 / 255],
|
|
129
|
+
"rebeccapurple": [102 / 255, 51 / 255, 153 / 255],
|
|
130
|
+
"red": [1, 0, 0],
|
|
131
|
+
"rosybrown": [188 / 255, 143 / 255, 143 / 255],
|
|
132
|
+
"royalblue": [65 / 255, 105 / 255, 225 / 255],
|
|
133
|
+
"saddlebrown": [139 / 255, 69 / 255, 19 / 255],
|
|
134
|
+
"salmon": [250 / 255, 128 / 255, 114 / 255],
|
|
135
|
+
"sandybrown": [244 / 255, 164 / 255, 96 / 255],
|
|
136
|
+
"seagreen": [46 / 255, 139 / 255, 87 / 255],
|
|
137
|
+
"seashell": [1, 245 / 255, 238 / 255],
|
|
138
|
+
"sienna": [160 / 255, 82 / 255, 45 / 255],
|
|
139
|
+
"silver": [192 / 255, 192 / 255, 192 / 255],
|
|
140
|
+
"skyblue": [135 / 255, 206 / 255, 235 / 255],
|
|
141
|
+
"slateblue": [106 / 255, 90 / 255, 205 / 255],
|
|
142
|
+
"slategray": [112 / 255, 128 / 255, 144 / 255],
|
|
143
|
+
"slategrey": [112 / 255, 128 / 255, 144 / 255],
|
|
144
|
+
"snow": [1, 250 / 255, 250 / 255],
|
|
145
|
+
"springgreen": [0, 1, 127 / 255],
|
|
146
|
+
"steelblue": [70 / 255, 130 / 255, 180 / 255],
|
|
147
|
+
"tan": [210 / 255, 180 / 255, 140 / 255],
|
|
148
|
+
"teal": [0, 128 / 255, 128 / 255],
|
|
149
|
+
"thistle": [216 / 255, 191 / 255, 216 / 255],
|
|
150
|
+
"tomato": [1, 99 / 255, 71 / 255],
|
|
151
|
+
"turquoise": [64 / 255, 224 / 255, 208 / 255],
|
|
152
|
+
"violet": [238 / 255, 130 / 255, 238 / 255],
|
|
153
|
+
"wheat": [245 / 255, 222 / 255, 179 / 255],
|
|
154
|
+
"white": [1, 1, 1],
|
|
155
|
+
"whitesmoke": [245 / 255, 245 / 255, 245 / 255],
|
|
156
|
+
"yellow": [1, 1, 0],
|
|
157
|
+
"yellowgreen": [154 / 255, 205 / 255, 50 / 255],
|
|
158
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relative luminance
|
|
3
|
+
*/
|
|
4
|
+
import get from "./get.js";
|
|
5
|
+
import set from "./set.js";
|
|
6
|
+
import xyz_d65 from "./spaces/xyz-d65.js";
|
|
7
|
+
|
|
8
|
+
export function getLuminance (color) {
|
|
9
|
+
// Assume getColor() is called on color in get()
|
|
10
|
+
return get(color, [xyz_d65, "y"]);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function setLuminance (color, value) {
|
|
14
|
+
// Assume getColor() is called on color in set()
|
|
15
|
+
set(color, [xyz_d65, "y"], value);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function register (Color) {
|
|
19
|
+
Object.defineProperty(Color.prototype, "luminance", {
|
|
20
|
+
get () {
|
|
21
|
+
return getLuminance(this);
|
|
22
|
+
},
|
|
23
|
+
set (value) {
|
|
24
|
+
setLuminance(this, value);
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// A is m x n. B is n x p. product is m x p.
|
|
2
|
+
export default function multiplyMatrices (A, B) {
|
|
3
|
+
let m = A.length;
|
|
4
|
+
|
|
5
|
+
if (!Array.isArray(A[0])) {
|
|
6
|
+
// A is vector, convert to [[a, b, c, ...]]
|
|
7
|
+
A = [A];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (!Array.isArray(B[0])) {
|
|
11
|
+
// B is vector, convert to [[a], [b], [c], ...]]
|
|
12
|
+
B = B.map(x => [x]);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
let p = B[0].length;
|
|
16
|
+
let B_cols = B[0].map((_, i) => B.map(x => x[i])); // transpose B
|
|
17
|
+
let product = A.map(row => B_cols.map(col => {
|
|
18
|
+
let ret = 0;
|
|
19
|
+
|
|
20
|
+
if (!Array.isArray(row)) {
|
|
21
|
+
for (let c of col) {
|
|
22
|
+
ret += row * c;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return ret;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
for (let i = 0; i < row.length; i++) {
|
|
29
|
+
ret += row[i] * (col[i] || 0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return ret;
|
|
33
|
+
}));
|
|
34
|
+
|
|
35
|
+
if (m === 1) {
|
|
36
|
+
product = product[0]; // Avoid [[a, b, c, ...]]
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (p === 1) {
|
|
40
|
+
return product.map(x => x[0]); // Avoid [[a], [b], [c], ...]]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return product;
|
|
44
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import * as util from "./util.js";
|
|
2
|
+
import hooks from "./hooks.js";
|
|
3
|
+
import ColorSpace from "./space.js";
|
|
4
|
+
import defaults from "./defaults.js";
|
|
5
|
+
|
|
6
|
+
const noneTypes = new Set(["<number>", "<percentage>", "<angle>"]);
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Validates the coordinates of a color against a format's coord grammar and
|
|
10
|
+
* maps the coordinates to the range or refRange of the coordinates.
|
|
11
|
+
* @param {ColorSpace} space - Colorspace the coords are in
|
|
12
|
+
* @param {object} format - the format object to validate against
|
|
13
|
+
* @param {string} name - the name of the color function. e.g. "oklab" or "color"
|
|
14
|
+
* @returns {object[]} - an array of type metadata for each coordinate
|
|
15
|
+
*/
|
|
16
|
+
function coerceCoords (space, format, name, coords) {
|
|
17
|
+
let types = Object.entries(space.coords).map(([id, coordMeta], i) => {
|
|
18
|
+
let coordGrammar = format.coordGrammar[i];
|
|
19
|
+
let arg = coords[i];
|
|
20
|
+
let providedType = arg?.type;
|
|
21
|
+
|
|
22
|
+
// Find grammar alternative that matches the provided type
|
|
23
|
+
// Non-strict equals is intentional because we are comparing w/ string objects
|
|
24
|
+
let type;
|
|
25
|
+
if (arg.none) {
|
|
26
|
+
type = coordGrammar.find(c => noneTypes.has(c));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
type = coordGrammar.find(c => c == providedType);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Check that each coord conforms to its grammar
|
|
33
|
+
if (!type) {
|
|
34
|
+
// Type does not exist in the grammar, throw
|
|
35
|
+
let coordName = coordMeta.name || id;
|
|
36
|
+
throw new TypeError(`${providedType ?? arg.raw} not allowed for ${coordName} in ${name}()`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let fromRange = type.range;
|
|
40
|
+
|
|
41
|
+
if (providedType === "<percentage>") {
|
|
42
|
+
fromRange ||= [0, 1];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
let toRange = coordMeta.range || coordMeta.refRange;
|
|
46
|
+
|
|
47
|
+
if (fromRange && toRange) {
|
|
48
|
+
coords[i] = util.mapRange(fromRange, toRange, coords[i]);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return type;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
return types;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Convert a CSS Color string to a color object
|
|
60
|
+
* @param {string} str
|
|
61
|
+
* @param {object} [options]
|
|
62
|
+
* @param {object} [options.meta] - Object for additional information about the parsing
|
|
63
|
+
* @returns {Color}
|
|
64
|
+
*/
|
|
65
|
+
export default function parse (str, {meta} = {}) {
|
|
66
|
+
let env = {"str": String(str)?.trim()};
|
|
67
|
+
hooks.run("parse-start", env);
|
|
68
|
+
|
|
69
|
+
if (env.color) {
|
|
70
|
+
return env.color;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
env.parsed = util.parseFunction(env.str);
|
|
74
|
+
|
|
75
|
+
if (env.parsed) {
|
|
76
|
+
// Is a functional syntax
|
|
77
|
+
let name = env.parsed.name;
|
|
78
|
+
|
|
79
|
+
if (name === "color") {
|
|
80
|
+
// color() function
|
|
81
|
+
let id = env.parsed.args.shift();
|
|
82
|
+
// Check against both <dashed-ident> and <ident> versions
|
|
83
|
+
let alternateId = id.startsWith("--") ? id.substring(2) : `--${id}`;
|
|
84
|
+
let ids = [id, alternateId];
|
|
85
|
+
let alpha = env.parsed.rawArgs.indexOf("/") > 0 ? env.parsed.args.pop() : 1;
|
|
86
|
+
|
|
87
|
+
for (let space of ColorSpace.all) {
|
|
88
|
+
let colorSpec = space.getFormat("color");
|
|
89
|
+
|
|
90
|
+
if (colorSpec) {
|
|
91
|
+
if (ids.includes(colorSpec.id) || colorSpec.ids?.filter((specId) => ids.includes(specId)).length) {
|
|
92
|
+
// From https://drafts.csswg.org/css-color-4/#color-function
|
|
93
|
+
// If more <number>s or <percentage>s are provided than parameters that the colorspace takes, the excess <number>s at the end are ignored.
|
|
94
|
+
// If less <number>s or <percentage>s are provided than parameters that the colorspace takes, the missing parameters default to 0. (This is particularly convenient for multichannel printers where the additional inks are spot colors or varnishes that most colors on the page won’t use.)
|
|
95
|
+
const coords = Object.keys(space.coords).map((_, i) => env.parsed.args[i] || 0);
|
|
96
|
+
|
|
97
|
+
let types;
|
|
98
|
+
|
|
99
|
+
if (colorSpec.coordGrammar) {
|
|
100
|
+
types = coerceCoords(space, colorSpec, "color", coords);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (meta) {
|
|
104
|
+
Object.assign(meta, {formatId: "color", types});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (colorSpec.id.startsWith("--") && !id.startsWith("--")) {
|
|
108
|
+
defaults.warn(`${space.name} is a non-standard space and not currently supported in the CSS spec. ` +
|
|
109
|
+
`Use prefixed color(${colorSpec.id}) instead of color(${id}).`);
|
|
110
|
+
}
|
|
111
|
+
if (id.startsWith("--") && !colorSpec.id.startsWith("--")) {
|
|
112
|
+
defaults.warn(`${space.name} is a standard space and supported in the CSS spec. ` +
|
|
113
|
+
`Use color(${colorSpec.id}) instead of prefixed color(${id}).`);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return {spaceId: space.id, coords, alpha};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Not found
|
|
122
|
+
let didYouMean = "";
|
|
123
|
+
let registryId = id in ColorSpace.registry ? id : alternateId;
|
|
124
|
+
if (registryId in ColorSpace.registry) {
|
|
125
|
+
// Used color space id instead of color() id, these are often different
|
|
126
|
+
let cssId = ColorSpace.registry[registryId].formats?.color?.id;
|
|
127
|
+
|
|
128
|
+
if (cssId) {
|
|
129
|
+
didYouMean = `Did you mean color(${cssId})?`;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
throw new TypeError(`Cannot parse color(${id}). ` + (didYouMean || "Missing a plugin?"));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
for (let space of ColorSpace.all) {
|
|
137
|
+
// color space specific function
|
|
138
|
+
let format = space.getFormat(name);
|
|
139
|
+
if (format && format.type === "function") {
|
|
140
|
+
let alpha = 1;
|
|
141
|
+
|
|
142
|
+
if (format.lastAlpha || util.last(env.parsed.args).alpha) {
|
|
143
|
+
alpha = env.parsed.args.pop();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
let coords = env.parsed.args;
|
|
147
|
+
|
|
148
|
+
let types;
|
|
149
|
+
|
|
150
|
+
if (format.coordGrammar) {
|
|
151
|
+
types = coerceCoords(space, format, name, coords);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (meta) {
|
|
155
|
+
Object.assign(meta, {formatId: format.name, types});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return {
|
|
159
|
+
spaceId: space.id,
|
|
160
|
+
coords, alpha,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
// Custom, colorspace-specific format
|
|
168
|
+
for (let space of ColorSpace.all) {
|
|
169
|
+
for (let formatId in space.formats) {
|
|
170
|
+
let format = space.formats[formatId];
|
|
171
|
+
|
|
172
|
+
if (format.type !== "custom") {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (format.test && !format.test(env.str)) {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
let color = format.parse(env.str);
|
|
181
|
+
|
|
182
|
+
if (color) {
|
|
183
|
+
color.alpha ??= 1;
|
|
184
|
+
|
|
185
|
+
if (meta) {
|
|
186
|
+
meta.formatId = formatId;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return color;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
// If we're here, we couldn't parse
|
|
197
|
+
throw new TypeError(`Could not parse ${str} as a color. Missing a plugin?`);
|
|
198
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import ColorSpace from "./space.js";
|
|
2
|
+
import {multiplyMatrices} from "./util.js";
|
|
3
|
+
import adapt from "./adapt.js";
|
|
4
|
+
import XYZ_D65 from "./spaces/xyz-d65.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Convenience class for RGB color spaces
|
|
8
|
+
* @extends {ColorSpace}
|
|
9
|
+
*/
|
|
10
|
+
export default class RGBColorSpace extends ColorSpace {
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new RGB ColorSpace.
|
|
13
|
+
* If coords are not specified, they will use the default RGB coords.
|
|
14
|
+
* Instead of `fromBase()` and `toBase()` functions,
|
|
15
|
+
* you can specify to/from XYZ matrices and have `toBase()` and `fromBase()` automatically generated.
|
|
16
|
+
* @param {*} options - Same options as {@link ColorSpace} plus:
|
|
17
|
+
* @param {number[][]} options.toXYZ_M - Matrix to convert to XYZ
|
|
18
|
+
* @param {number[][]} options.fromXYZ_M - Matrix to convert from XYZ
|
|
19
|
+
*/
|
|
20
|
+
constructor (options) {
|
|
21
|
+
if (!options.coords) {
|
|
22
|
+
options.coords = {
|
|
23
|
+
r: {
|
|
24
|
+
range: [0, 1],
|
|
25
|
+
name: "Red",
|
|
26
|
+
},
|
|
27
|
+
g: {
|
|
28
|
+
range: [0, 1],
|
|
29
|
+
name: "Green",
|
|
30
|
+
},
|
|
31
|
+
b: {
|
|
32
|
+
range: [0, 1],
|
|
33
|
+
name: "Blue",
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (!options.base) {
|
|
39
|
+
options.base = XYZ_D65;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (options.toXYZ_M && options.fromXYZ_M) {
|
|
43
|
+
options.toBase ??= rgb => {
|
|
44
|
+
let xyz = multiplyMatrices(options.toXYZ_M, rgb);
|
|
45
|
+
|
|
46
|
+
if (this.white !== this.base.white) {
|
|
47
|
+
// Perform chromatic adaptation
|
|
48
|
+
xyz = adapt(this.white, this.base.white, xyz);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return xyz;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
options.fromBase ??= xyz => {
|
|
55
|
+
xyz = adapt(this.base.white, this.white, xyz);
|
|
56
|
+
return multiplyMatrices(options.fromXYZ_M, xyz);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
options.referred ??= "display";
|
|
61
|
+
|
|
62
|
+
super(options);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as util from "./util.js";
|
|
2
|
+
import ColorSpace from "./space.js";
|
|
3
|
+
import defaults from "./defaults.js";
|
|
4
|
+
import getColor from "./getColor.js";
|
|
5
|
+
import checkInGamut from "./inGamut.js";
|
|
6
|
+
import toGamut from "./toGamut.js";
|
|
7
|
+
import clone from "./clone.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Generic toString() method, outputs a color(spaceId ...coords) function, a functional syntax, or custom formats defined by the color space
|
|
11
|
+
* @param {Object} options
|
|
12
|
+
* @param {number} options.precision - Significant digits
|
|
13
|
+
* @param {boolean} options.inGamut - Adjust coordinates to fit in gamut first? [default: false]
|
|
14
|
+
*/
|
|
15
|
+
export default function serialize (color, {
|
|
16
|
+
precision = defaults.precision,
|
|
17
|
+
format = "default",
|
|
18
|
+
inGamut = true,
|
|
19
|
+
...customOptions
|
|
20
|
+
} = {}) {
|
|
21
|
+
let ret;
|
|
22
|
+
|
|
23
|
+
color = getColor(color);
|
|
24
|
+
|
|
25
|
+
let formatId = format;
|
|
26
|
+
format = color.space.getFormat(format)
|
|
27
|
+
?? color.space.getFormat("default")
|
|
28
|
+
?? ColorSpace.DEFAULT_FORMAT;
|
|
29
|
+
|
|
30
|
+
// The assignment to coords and inGamut needs to stay in the order they are now
|
|
31
|
+
// The order of the assignment was changed as a workaround for a bug in Next.js
|
|
32
|
+
// See this issue for details: https://github.com/color-js/color.js/issues/260
|
|
33
|
+
|
|
34
|
+
let coords = color.coords.slice(); // clone so we can manipulate it
|
|
35
|
+
|
|
36
|
+
inGamut ||= format.toGamut;
|
|
37
|
+
|
|
38
|
+
if (inGamut && !checkInGamut(color)) {
|
|
39
|
+
// FIXME what happens if the color contains NaNs?
|
|
40
|
+
coords = toGamut(clone(color), inGamut === true ? undefined : inGamut).coords;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (format.type === "custom") {
|
|
44
|
+
customOptions.precision = precision;
|
|
45
|
+
|
|
46
|
+
if (format.serialize) {
|
|
47
|
+
ret = format.serialize(coords, color.alpha, customOptions);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
throw new TypeError(`format ${formatId} can only be used to parse colors, not for serialization`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Functional syntax
|
|
55
|
+
let name = format.name || "color";
|
|
56
|
+
|
|
57
|
+
if (format.serializeCoords) {
|
|
58
|
+
coords = format.serializeCoords(coords, precision);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
if (precision !== null) {
|
|
62
|
+
coords = coords.map(c => {
|
|
63
|
+
return util.serializeNumber(c, {precision});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
let args = [...coords];
|
|
69
|
+
|
|
70
|
+
if (name === "color") {
|
|
71
|
+
// If output is a color() function, add colorspace id as first argument
|
|
72
|
+
let cssId = format.id || format.ids?.[0] || color.space.id;
|
|
73
|
+
args.unshift(cssId);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
let alpha = color.alpha;
|
|
77
|
+
if (precision !== null) {
|
|
78
|
+
alpha = util.serializeNumber(alpha, {precision});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
let strAlpha = color.alpha >= 1 || format.noAlpha ? "" : `${format.commas ? "," : " /"} ${alpha}`;
|
|
82
|
+
ret = `${name}(${args.join(format.commas ? ", " : " ")}${strAlpha})`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return ret;
|
|
86
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import ColorSpace from "./space.js";
|
|
2
|
+
import getColor from "./getColor.js";
|
|
3
|
+
import get from "./get.js";
|
|
4
|
+
import getAll from "./getAll.js";
|
|
5
|
+
import setAll from "./setAll.js";
|
|
6
|
+
import {type} from "./util.js";
|
|
7
|
+
|
|
8
|
+
// Set properties and return current instance
|
|
9
|
+
export default function set (color, prop, value) {
|
|
10
|
+
color = getColor(color);
|
|
11
|
+
|
|
12
|
+
if (arguments.length === 2 && type(arguments[1]) === "object") {
|
|
13
|
+
// Argument is an object literal
|
|
14
|
+
let object = arguments[1];
|
|
15
|
+
for (let p in object) {
|
|
16
|
+
set(color, p, object[p]);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
if (typeof value === "function") {
|
|
21
|
+
value = value(get(color, prop));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let {space, index} = ColorSpace.resolveCoord(prop, color.space);
|
|
25
|
+
let coords = getAll(color, space);
|
|
26
|
+
coords[index] = value;
|
|
27
|
+
setAll(color, space, coords);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return color;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
set.returns = "color";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import ColorSpace from "./space.js";
|
|
2
|
+
import getColor from "./getColor.js";
|
|
3
|
+
|
|
4
|
+
export default function setAll (color, space, coords) {
|
|
5
|
+
color = getColor(color);
|
|
6
|
+
|
|
7
|
+
space = ColorSpace.get(space);
|
|
8
|
+
color.coords = space.to(color.space, coords);
|
|
9
|
+
return color;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
setAll.returns = "color";
|