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.
Files changed (448) hide show
  1. package/README.md +33 -0
  2. package/_build/copy-config.js +90 -0
  3. package/_build/copy-config.json +18 -0
  4. package/_build/eleventy.js +16 -0
  5. package/_data/eleventyComputed.11tydata.js +29 -0
  6. package/_headers +2 -0
  7. package/_redirects +2 -0
  8. package/assets/css/style.css +1 -0
  9. package/assets/js/index.js +15 -0
  10. package/color-gamut/README.md +75 -0
  11. package/color-gamut/color-gamut.js +172 -0
  12. package/color-gamut/style.css +32 -0
  13. package/color-slider/README.md +84 -0
  14. package/color-slider/color-slider.js +79 -0
  15. package/color-slider/style.css +65 -0
  16. package/color-swatch/color-swatch.css +41 -0
  17. package/color-swatch/color-swatch.js +79 -0
  18. package/color-swatch/index.njk +40 -0
  19. package/common/attributes.js +68 -0
  20. package/common/color.js +10 -0
  21. package/css-color/css-color.js +256 -0
  22. package/css-color/index.njk +43 -0
  23. package/css-color/style.css +67 -0
  24. package/elements.11tydata.json +5 -0
  25. package/index.js +4 -0
  26. package/lib/README.md +4 -0
  27. package/lib/colorjs.io/LICENSE +21 -0
  28. package/lib/colorjs.io/README.json +3 -0
  29. package/lib/colorjs.io/README.md +257 -0
  30. package/lib/colorjs.io/colorjs.io/LICENSE +21 -0
  31. package/lib/colorjs.io/colorjs.io/README.json +3 -0
  32. package/lib/colorjs.io/colorjs.io/README.md +257 -0
  33. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +5437 -0
  34. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +1 -0
  35. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +7048 -0
  36. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +1 -0
  37. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +2 -0
  38. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +1 -0
  39. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +2 -0
  40. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +1 -0
  41. package/lib/colorjs.io/colorjs.io/dist/color.cjs +5759 -0
  42. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +1 -0
  43. package/lib/colorjs.io/colorjs.io/dist/color.global.js +5760 -0
  44. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +1 -0
  45. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +7400 -0
  46. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +1 -0
  47. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +2 -0
  48. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +1 -0
  49. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +2 -0
  50. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +1 -0
  51. package/lib/colorjs.io/colorjs.io/dist/color.js +5755 -0
  52. package/lib/colorjs.io/colorjs.io/dist/color.js.map +1 -0
  53. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +7399 -0
  54. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +1 -0
  55. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +7395 -0
  56. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +1 -0
  57. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +2 -0
  58. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +1 -0
  59. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +2 -0
  60. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +1 -0
  61. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +2 -0
  62. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +1 -0
  63. package/lib/colorjs.io/colorjs.io/dist/color.min.js +2 -0
  64. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +1 -0
  65. package/lib/colorjs.io/colorjs.io/package.json +113 -0
  66. package/lib/colorjs.io/colorjs.io/src/CATs.js +131 -0
  67. package/lib/colorjs.io/colorjs.io/src/adapt.js +62 -0
  68. package/lib/colorjs.io/colorjs.io/src/angles.js +44 -0
  69. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +33 -0
  70. package/lib/colorjs.io/colorjs.io/src/clone.js +7 -0
  71. package/lib/colorjs.io/colorjs.io/src/color.js +201 -0
  72. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +102 -0
  73. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +17 -0
  74. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +22 -0
  75. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +20 -0
  76. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +27 -0
  77. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +25 -0
  78. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +6 -0
  79. package/lib/colorjs.io/colorjs.io/src/contrast.js +28 -0
  80. package/lib/colorjs.io/colorjs.io/src/defaults.js +12 -0
  81. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +179 -0
  82. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +7 -0
  83. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +114 -0
  84. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +51 -0
  85. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +24 -0
  86. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +43 -0
  87. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +19 -0
  88. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +27 -0
  89. package/lib/colorjs.io/colorjs.io/src/deltaE.js +19 -0
  90. package/lib/colorjs.io/colorjs.io/src/display.js +83 -0
  91. package/lib/colorjs.io/colorjs.io/src/distance.js +21 -0
  92. package/lib/colorjs.io/colorjs.io/src/equals.js +10 -0
  93. package/lib/colorjs.io/colorjs.io/src/get.js +11 -0
  94. package/lib/colorjs.io/colorjs.io/src/getAll.js +20 -0
  95. package/lib/colorjs.io/colorjs.io/src/getColor.js +36 -0
  96. package/lib/colorjs.io/colorjs.io/src/hooks.js +37 -0
  97. package/lib/colorjs.io/colorjs.io/src/inGamut.js +25 -0
  98. package/lib/colorjs.io/colorjs.io/src/index-fn.js +28 -0
  99. package/lib/colorjs.io/colorjs.io/src/index.js +38 -0
  100. package/lib/colorjs.io/colorjs.io/src/interpolation.js +222 -0
  101. package/lib/colorjs.io/colorjs.io/src/keywords.js +158 -0
  102. package/lib/colorjs.io/colorjs.io/src/luminance.js +27 -0
  103. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +44 -0
  104. package/lib/colorjs.io/colorjs.io/src/parse.js +198 -0
  105. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +64 -0
  106. package/lib/colorjs.io/colorjs.io/src/serialize.js +86 -0
  107. package/lib/colorjs.io/colorjs.io/src/set.js +33 -0
  108. package/lib/colorjs.io/colorjs.io/src/setAll.js +12 -0
  109. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +86 -0
  110. package/lib/colorjs.io/colorjs.io/src/space.js +440 -0
  111. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +28 -0
  112. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +11 -0
  113. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +76 -0
  114. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +54 -0
  115. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +362 -0
  116. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +157 -0
  117. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +130 -0
  118. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +91 -0
  119. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +162 -0
  120. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +65 -0
  121. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +58 -0
  122. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +133 -0
  123. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +7 -0
  124. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +29 -0
  125. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +8 -0
  126. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +118 -0
  127. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +53 -0
  128. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +74 -0
  129. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +74 -0
  130. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +67 -0
  131. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +68 -0
  132. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +85 -0
  133. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +74 -0
  134. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +68 -0
  135. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +22 -0
  136. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +13 -0
  137. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +28 -0
  138. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +19 -0
  139. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +27 -0
  140. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +31 -0
  141. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +49 -0
  142. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +37 -0
  143. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +30 -0
  144. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +127 -0
  145. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +40 -0
  146. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +12 -0
  147. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +18 -0
  148. package/lib/colorjs.io/colorjs.io/src/to.js +26 -0
  149. package/lib/colorjs.io/colorjs.io/src/toGamut.js +310 -0
  150. package/lib/colorjs.io/colorjs.io/src/util.js +254 -0
  151. package/lib/colorjs.io/colorjs.io/src/variations.js +14 -0
  152. package/lib/colorjs.io/colorjs.io/types/index.d.cts +4 -0
  153. package/lib/colorjs.io/colorjs.io/types/index.d.ts +42 -0
  154. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +13 -0
  155. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +12 -0
  156. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +7 -0
  157. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +7 -0
  158. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +3 -0
  159. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +160 -0
  160. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +5 -0
  161. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +5 -0
  162. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +5 -0
  163. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +5 -0
  164. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +5 -0
  165. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +5 -0
  166. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +11 -0
  167. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +12 -0
  168. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +2 -0
  169. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +11 -0
  170. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +5 -0
  171. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +9 -0
  172. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +5 -0
  173. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +5 -0
  174. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +5 -0
  175. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +5 -0
  176. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +14 -0
  177. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +12 -0
  178. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +17 -0
  179. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +8 -0
  180. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +3 -0
  181. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +4 -0
  182. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +7 -0
  183. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +4 -0
  184. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +52 -0
  185. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +8 -0
  186. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +1 -0
  187. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +63 -0
  188. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +125 -0
  189. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +77 -0
  190. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +2 -0
  191. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +10 -0
  192. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +9 -0
  193. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +16 -0
  194. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +10 -0
  195. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +13 -0
  196. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +18 -0
  197. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +14 -0
  198. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +1 -0
  199. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +69 -0
  200. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +143 -0
  201. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +3 -0
  202. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +3 -0
  203. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +3 -0
  204. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +3 -0
  205. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +3 -0
  206. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +3 -0
  207. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +3 -0
  208. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +3 -0
  209. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +3 -0
  210. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +3 -0
  211. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +9 -0
  212. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +29 -0
  213. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +4 -0
  214. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +3 -0
  215. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +3 -0
  216. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +3 -0
  217. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +3 -0
  218. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +3 -0
  219. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +3 -0
  220. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +3 -0
  221. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +3 -0
  222. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +3 -0
  223. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +3 -0
  224. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +3 -0
  225. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +3 -0
  226. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +3 -0
  227. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +3 -0
  228. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +3 -0
  229. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +3 -0
  230. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +3 -0
  231. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +3 -0
  232. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +3 -0
  233. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +3 -0
  234. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +3 -0
  235. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +3 -0
  236. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +14 -0
  237. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +45 -0
  238. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +58 -0
  239. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +5 -0
  240. package/lib/colorjs.io/dist/color-fn.cjs +5437 -0
  241. package/lib/colorjs.io/dist/color-fn.cjs.map +1 -0
  242. package/lib/colorjs.io/dist/color-fn.legacy.cjs +7048 -0
  243. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +1 -0
  244. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +2 -0
  245. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +1 -0
  246. package/lib/colorjs.io/dist/color-fn.min.cjs +2 -0
  247. package/lib/colorjs.io/dist/color-fn.min.cjs.map +1 -0
  248. package/lib/colorjs.io/dist/color.cjs +5759 -0
  249. package/lib/colorjs.io/dist/color.cjs.map +1 -0
  250. package/lib/colorjs.io/dist/color.global.js +5760 -0
  251. package/lib/colorjs.io/dist/color.global.js.map +1 -0
  252. package/lib/colorjs.io/dist/color.global.legacy.js +7400 -0
  253. package/lib/colorjs.io/dist/color.global.legacy.js.map +1 -0
  254. package/lib/colorjs.io/dist/color.global.legacy.min.js +2 -0
  255. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +1 -0
  256. package/lib/colorjs.io/dist/color.global.min.js +2 -0
  257. package/lib/colorjs.io/dist/color.global.min.js.map +1 -0
  258. package/lib/colorjs.io/dist/color.js +5755 -0
  259. package/lib/colorjs.io/dist/color.js.map +1 -0
  260. package/lib/colorjs.io/dist/color.legacy.cjs +7399 -0
  261. package/lib/colorjs.io/dist/color.legacy.cjs.map +1 -0
  262. package/lib/colorjs.io/dist/color.legacy.js +7395 -0
  263. package/lib/colorjs.io/dist/color.legacy.js.map +1 -0
  264. package/lib/colorjs.io/dist/color.legacy.min.cjs +2 -0
  265. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +1 -0
  266. package/lib/colorjs.io/dist/color.legacy.min.js +2 -0
  267. package/lib/colorjs.io/dist/color.legacy.min.js.map +1 -0
  268. package/lib/colorjs.io/dist/color.min.cjs +2 -0
  269. package/lib/colorjs.io/dist/color.min.cjs.map +1 -0
  270. package/lib/colorjs.io/dist/color.min.js +2 -0
  271. package/lib/colorjs.io/dist/color.min.js.map +1 -0
  272. package/lib/colorjs.io/package.json +113 -0
  273. package/lib/colorjs.io/src/CATs.js +131 -0
  274. package/lib/colorjs.io/src/adapt.js +62 -0
  275. package/lib/colorjs.io/src/angles.js +44 -0
  276. package/lib/colorjs.io/src/chromaticity.js +33 -0
  277. package/lib/colorjs.io/src/clone.js +7 -0
  278. package/lib/colorjs.io/src/color.js +201 -0
  279. package/lib/colorjs.io/src/contrast/APCA.js +102 -0
  280. package/lib/colorjs.io/src/contrast/Lstar.js +17 -0
  281. package/lib/colorjs.io/src/contrast/Michelson.js +22 -0
  282. package/lib/colorjs.io/src/contrast/WCAG21.js +20 -0
  283. package/lib/colorjs.io/src/contrast/Weber.js +27 -0
  284. package/lib/colorjs.io/src/contrast/deltaPhi.js +25 -0
  285. package/lib/colorjs.io/src/contrast/index.js +6 -0
  286. package/lib/colorjs.io/src/contrast.js +28 -0
  287. package/lib/colorjs.io/src/defaults.js +12 -0
  288. package/lib/colorjs.io/src/deltaE/deltaE2000.js +179 -0
  289. package/lib/colorjs.io/src/deltaE/deltaE76.js +7 -0
  290. package/lib/colorjs.io/src/deltaE/deltaECMC.js +114 -0
  291. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +51 -0
  292. package/lib/colorjs.io/src/deltaE/deltaEITP.js +24 -0
  293. package/lib/colorjs.io/src/deltaE/deltaEJz.js +43 -0
  294. package/lib/colorjs.io/src/deltaE/deltaEOK.js +19 -0
  295. package/lib/colorjs.io/src/deltaE/index.js +27 -0
  296. package/lib/colorjs.io/src/deltaE.js +19 -0
  297. package/lib/colorjs.io/src/display.js +83 -0
  298. package/lib/colorjs.io/src/distance.js +21 -0
  299. package/lib/colorjs.io/src/equals.js +10 -0
  300. package/lib/colorjs.io/src/get.js +11 -0
  301. package/lib/colorjs.io/src/getAll.js +20 -0
  302. package/lib/colorjs.io/src/getColor.js +36 -0
  303. package/lib/colorjs.io/src/hooks.js +37 -0
  304. package/lib/colorjs.io/src/inGamut.js +25 -0
  305. package/lib/colorjs.io/src/index-fn.js +28 -0
  306. package/lib/colorjs.io/src/index.js +38 -0
  307. package/lib/colorjs.io/src/interpolation.js +222 -0
  308. package/lib/colorjs.io/src/keywords.js +158 -0
  309. package/lib/colorjs.io/src/luminance.js +27 -0
  310. package/lib/colorjs.io/src/multiply-matrices.js +44 -0
  311. package/lib/colorjs.io/src/parse.js +198 -0
  312. package/lib/colorjs.io/src/rgbspace.js +64 -0
  313. package/lib/colorjs.io/src/serialize.js +86 -0
  314. package/lib/colorjs.io/src/set.js +33 -0
  315. package/lib/colorjs.io/src/setAll.js +12 -0
  316. package/lib/colorjs.io/src/space-accessors.js +86 -0
  317. package/lib/colorjs.io/src/space.js +440 -0
  318. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +28 -0
  319. package/lib/colorjs.io/src/spaces/a98rgb.js +11 -0
  320. package/lib/colorjs.io/src/spaces/acescc.js +76 -0
  321. package/lib/colorjs.io/src/spaces/acescg.js +54 -0
  322. package/lib/colorjs.io/src/spaces/cam16.js +362 -0
  323. package/lib/colorjs.io/src/spaces/hct.js +157 -0
  324. package/lib/colorjs.io/src/spaces/hpluv.js +130 -0
  325. package/lib/colorjs.io/src/spaces/hsl.js +91 -0
  326. package/lib/colorjs.io/src/spaces/hsluv.js +162 -0
  327. package/lib/colorjs.io/src/spaces/hsv.js +65 -0
  328. package/lib/colorjs.io/src/spaces/hwb.js +58 -0
  329. package/lib/colorjs.io/src/spaces/ictcp.js +133 -0
  330. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +7 -0
  331. package/lib/colorjs.io/src/spaces/index-fn.js +29 -0
  332. package/lib/colorjs.io/src/spaces/index.js +8 -0
  333. package/lib/colorjs.io/src/spaces/jzazbz.js +118 -0
  334. package/lib/colorjs.io/src/spaces/jzczhz.js +53 -0
  335. package/lib/colorjs.io/src/spaces/lab-d65.js +74 -0
  336. package/lib/colorjs.io/src/spaces/lab.js +74 -0
  337. package/lib/colorjs.io/src/spaces/lch.js +67 -0
  338. package/lib/colorjs.io/src/spaces/lchuv.js +68 -0
  339. package/lib/colorjs.io/src/spaces/luv.js +85 -0
  340. package/lib/colorjs.io/src/spaces/oklab.js +74 -0
  341. package/lib/colorjs.io/src/spaces/oklch.js +68 -0
  342. package/lib/colorjs.io/src/spaces/p3-linear.js +22 -0
  343. package/lib/colorjs.io/src/spaces/p3.js +13 -0
  344. package/lib/colorjs.io/src/spaces/prophoto-linear.js +28 -0
  345. package/lib/colorjs.io/src/spaces/prophoto.js +19 -0
  346. package/lib/colorjs.io/src/spaces/rec2020-linear.js +27 -0
  347. package/lib/colorjs.io/src/spaces/rec2020.js +31 -0
  348. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +49 -0
  349. package/lib/colorjs.io/src/spaces/rec2100-pq.js +37 -0
  350. package/lib/colorjs.io/src/spaces/srgb-linear.js +30 -0
  351. package/lib/colorjs.io/src/spaces/srgb.js +127 -0
  352. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +40 -0
  353. package/lib/colorjs.io/src/spaces/xyz-d50.js +12 -0
  354. package/lib/colorjs.io/src/spaces/xyz-d65.js +18 -0
  355. package/lib/colorjs.io/src/to.js +26 -0
  356. package/lib/colorjs.io/src/toGamut.js +310 -0
  357. package/lib/colorjs.io/src/util.js +254 -0
  358. package/lib/colorjs.io/src/variations.js +14 -0
  359. package/lib/colorjs.io/types/index.d.cts +4 -0
  360. package/lib/colorjs.io/types/index.d.ts +42 -0
  361. package/lib/colorjs.io/types/src/CATs.d.ts +13 -0
  362. package/lib/colorjs.io/types/src/adapt.d.ts +12 -0
  363. package/lib/colorjs.io/types/src/angles.d.ts +7 -0
  364. package/lib/colorjs.io/types/src/chromaticity.d.ts +7 -0
  365. package/lib/colorjs.io/types/src/clone.d.ts +3 -0
  366. package/lib/colorjs.io/types/src/color.d.ts +160 -0
  367. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +5 -0
  368. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +5 -0
  369. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +5 -0
  370. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +5 -0
  371. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +5 -0
  372. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +5 -0
  373. package/lib/colorjs.io/types/src/contrast/index.d.ts +11 -0
  374. package/lib/colorjs.io/types/src/contrast.d.ts +12 -0
  375. package/lib/colorjs.io/types/src/defaults.d.ts +2 -0
  376. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +11 -0
  377. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +5 -0
  378. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +9 -0
  379. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +5 -0
  380. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +5 -0
  381. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +5 -0
  382. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +5 -0
  383. package/lib/colorjs.io/types/src/deltaE/index.d.ts +14 -0
  384. package/lib/colorjs.io/types/src/deltaE.d.ts +12 -0
  385. package/lib/colorjs.io/types/src/display.d.ts +17 -0
  386. package/lib/colorjs.io/types/src/distance.d.ts +8 -0
  387. package/lib/colorjs.io/types/src/equals.d.ts +3 -0
  388. package/lib/colorjs.io/types/src/get.d.ts +4 -0
  389. package/lib/colorjs.io/types/src/getAll.d.ts +7 -0
  390. package/lib/colorjs.io/types/src/getColor.d.ts +4 -0
  391. package/lib/colorjs.io/types/src/hooks.d.ts +52 -0
  392. package/lib/colorjs.io/types/src/inGamut.d.ts +8 -0
  393. package/lib/colorjs.io/types/src/index-fn.d.cts +1 -0
  394. package/lib/colorjs.io/types/src/index-fn.d.ts +63 -0
  395. package/lib/colorjs.io/types/src/index.d.ts +125 -0
  396. package/lib/colorjs.io/types/src/interpolation.d.ts +77 -0
  397. package/lib/colorjs.io/types/src/keywords.d.ts +2 -0
  398. package/lib/colorjs.io/types/src/luminance.d.ts +10 -0
  399. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +9 -0
  400. package/lib/colorjs.io/types/src/parse.d.ts +16 -0
  401. package/lib/colorjs.io/types/src/rgbspace.d.ts +10 -0
  402. package/lib/colorjs.io/types/src/serialize.d.ts +13 -0
  403. package/lib/colorjs.io/types/src/set.d.ts +18 -0
  404. package/lib/colorjs.io/types/src/setAll.d.ts +14 -0
  405. package/lib/colorjs.io/types/src/space-accessors.d.ts +1 -0
  406. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +69 -0
  407. package/lib/colorjs.io/types/src/space.d.ts +143 -0
  408. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +3 -0
  409. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +3 -0
  410. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +3 -0
  411. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +3 -0
  412. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +3 -0
  413. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +3 -0
  414. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +3 -0
  415. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +3 -0
  416. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +3 -0
  417. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +3 -0
  418. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +9 -0
  419. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +29 -0
  420. package/lib/colorjs.io/types/src/spaces/index.d.ts +4 -0
  421. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +3 -0
  422. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +3 -0
  423. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +3 -0
  424. package/lib/colorjs.io/types/src/spaces/lab.d.ts +3 -0
  425. package/lib/colorjs.io/types/src/spaces/lch.d.ts +3 -0
  426. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +3 -0
  427. package/lib/colorjs.io/types/src/spaces/luv.d.ts +3 -0
  428. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +3 -0
  429. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +3 -0
  430. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +3 -0
  431. package/lib/colorjs.io/types/src/spaces/p3.d.ts +3 -0
  432. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +3 -0
  433. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +3 -0
  434. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +3 -0
  435. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +3 -0
  436. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +3 -0
  437. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +3 -0
  438. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +3 -0
  439. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +3 -0
  440. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +3 -0
  441. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +3 -0
  442. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +3 -0
  443. package/lib/colorjs.io/types/src/to.d.ts +14 -0
  444. package/lib/colorjs.io/types/src/toGamut.d.ts +45 -0
  445. package/lib/colorjs.io/types/src/util.d.ts +58 -0
  446. package/lib/colorjs.io/types/src/variations.d.ts +5 -0
  447. package/logo.svg +159 -0
  448. 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";