color-elements 0.0.2 → 0.0.3

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 (484) hide show
  1. package/README.md +30 -15
  2. package/_build/copy-config.json +1 -1
  3. package/_build/eleventy.js +7 -2
  4. package/_build/filters-extra.js +1 -1
  5. package/_includes/component.njk +9 -1
  6. package/_includes/partials/_nav-links.njk +11 -4
  7. package/_redirects +8 -1
  8. package/assets/css/style.css +78 -1
  9. package/assets/js/index.js +6 -6
  10. package/data/components.json +12 -0
  11. package/debug.html +447 -0
  12. package/index.js +5 -1
  13. package/package.json +2 -1
  14. package/src/channel-picker/README.md +103 -0
  15. package/src/channel-picker/channel-picker.css +31 -0
  16. package/src/channel-picker/channel-picker.js +168 -0
  17. package/src/channel-picker/channel-picker.webp +0 -0
  18. package/src/channel-slider/README.md +50 -8
  19. package/src/channel-slider/channel-slider.css +47 -5
  20. package/src/channel-slider/channel-slider.js +74 -39
  21. package/src/channel-slider/channel-slider.webp +0 -0
  22. package/src/color-chart/README.md +129 -0
  23. package/src/color-chart/color-chart-global.css +97 -0
  24. package/src/color-chart/color-chart.css +112 -0
  25. package/src/color-chart/color-chart.js +441 -0
  26. package/src/color-chart/color-chart.webp +0 -0
  27. package/src/color-inline/README.md +42 -1
  28. package/src/color-inline/color-inline.css +11 -4
  29. package/src/color-inline/color-inline.js +56 -50
  30. package/src/color-inline/color-inline.webp +0 -0
  31. package/src/color-picker/README.md +107 -5
  32. package/src/color-picker/color-picker.css +21 -6
  33. package/src/color-picker/color-picker.js +147 -60
  34. package/src/color-picker/color-picker.webp +0 -0
  35. package/src/color-scale/README.md +75 -0
  36. package/src/color-scale/color-scale.css +40 -0
  37. package/src/color-scale/color-scale.js +164 -0
  38. package/src/color-scale/color-scale.webp +0 -0
  39. package/src/color-slider/README.md +31 -4
  40. package/src/color-slider/color-slider.css +17 -7
  41. package/src/color-slider/color-slider.js +80 -38
  42. package/src/color-slider/color-slider.webp +0 -0
  43. package/src/color-swatch/README.md +265 -6
  44. package/src/color-swatch/color-swatch.css +162 -27
  45. package/src/color-swatch/color-swatch.js +191 -217
  46. package/src/color-swatch/color-swatch.webp +0 -0
  47. package/src/common/color-element.js +86 -0
  48. package/src/common/dom.js +1 -1
  49. package/src/common/util.js +12 -99
  50. package/src/gamut-badge/README.md +145 -0
  51. package/src/gamut-badge/gamut-badge.css +78 -0
  52. package/src/gamut-badge/gamut-badge.js +121 -0
  53. package/src/gamut-badge/gamut-badge.webp +0 -0
  54. package/src/index.js.njk +1 -1
  55. package/src/space-picker/README.md +121 -0
  56. package/src/space-picker/space-picker.css +23 -0
  57. package/src/space-picker/space-picker.js +213 -0
  58. package/src/space-picker/space-picker.webp +0 -0
  59. package/_data/components.json +0 -8
  60. package/lib/README.md +0 -4
  61. package/lib/colorjs.io/LICENSE +0 -21
  62. package/lib/colorjs.io/README.json +0 -3
  63. package/lib/colorjs.io/README.md +0 -257
  64. package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
  65. package/lib/colorjs.io/colorjs.io/README.json +0 -3
  66. package/lib/colorjs.io/colorjs.io/README.md +0 -257
  67. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
  68. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
  69. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  70. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  71. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  72. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  73. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
  74. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  75. package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
  76. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
  77. package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
  78. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
  79. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
  80. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
  81. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
  82. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  83. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
  84. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
  85. package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
  86. package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
  87. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
  88. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
  89. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
  90. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
  91. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
  92. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  93. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
  94. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
  95. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
  96. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
  97. package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
  98. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
  99. package/lib/colorjs.io/colorjs.io/package.json +0 -113
  100. package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
  101. package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
  102. package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
  103. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
  104. package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
  105. package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
  106. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
  107. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
  108. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
  109. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
  110. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
  111. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
  112. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
  113. package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
  114. package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
  115. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  116. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
  117. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  118. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  119. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  120. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  121. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  122. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
  123. package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
  124. package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
  125. package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
  126. package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
  127. package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
  128. package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
  129. package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
  130. package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
  131. package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
  132. package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
  133. package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
  134. package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
  135. package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
  136. package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
  137. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
  138. package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
  139. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
  140. package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
  141. package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
  142. package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
  143. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
  144. package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
  145. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  146. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
  147. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
  148. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
  149. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
  150. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
  151. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
  152. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
  153. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
  154. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
  155. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
  156. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
  157. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  158. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
  159. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
  160. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
  161. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
  162. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
  163. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
  164. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
  165. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
  166. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
  167. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
  168. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
  169. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
  170. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
  171. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  172. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
  173. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  174. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
  175. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  176. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  177. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
  178. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
  179. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  180. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
  181. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
  182. package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
  183. package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
  184. package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
  185. package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
  186. package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
  187. package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
  188. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
  189. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
  190. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
  191. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
  192. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
  193. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
  194. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  195. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  196. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  197. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  198. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  199. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  200. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
  201. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
  202. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
  203. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  204. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  205. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  206. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  207. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  208. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  209. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  210. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  211. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
  212. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
  213. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
  214. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
  215. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
  216. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
  217. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
  218. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
  219. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
  220. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
  221. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
  222. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
  223. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
  224. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
  225. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
  226. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  227. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
  228. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
  229. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
  230. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
  231. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
  232. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
  233. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  234. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
  235. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  236. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  237. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  238. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  239. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  240. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  241. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  242. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  243. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  244. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  245. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  246. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  247. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
  248. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  249. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  250. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  251. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  252. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  253. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  254. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  255. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  256. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  257. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  258. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  259. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  260. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  261. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  262. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  263. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  264. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  265. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  266. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  267. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  268. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  269. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  270. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
  271. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
  272. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
  273. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
  274. package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
  275. package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
  276. package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  277. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  278. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  279. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  280. package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
  281. package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  282. package/lib/colorjs.io/dist/color.cjs +0 -5759
  283. package/lib/colorjs.io/dist/color.cjs.map +0 -1
  284. package/lib/colorjs.io/dist/color.global.js +0 -5760
  285. package/lib/colorjs.io/dist/color.global.js.map +0 -1
  286. package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
  287. package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
  288. package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
  289. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  290. package/lib/colorjs.io/dist/color.global.min.js +0 -2
  291. package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
  292. package/lib/colorjs.io/dist/color.js +0 -5755
  293. package/lib/colorjs.io/dist/color.js.map +0 -1
  294. package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
  295. package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
  296. package/lib/colorjs.io/dist/color.legacy.js +0 -7395
  297. package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
  298. package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
  299. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  300. package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
  301. package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
  302. package/lib/colorjs.io/dist/color.min.cjs +0 -2
  303. package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
  304. package/lib/colorjs.io/dist/color.min.js +0 -2
  305. package/lib/colorjs.io/dist/color.min.js.map +0 -1
  306. package/lib/colorjs.io/package.json +0 -113
  307. package/lib/colorjs.io/src/CATs.js +0 -131
  308. package/lib/colorjs.io/src/adapt.js +0 -62
  309. package/lib/colorjs.io/src/angles.js +0 -44
  310. package/lib/colorjs.io/src/chromaticity.js +0 -33
  311. package/lib/colorjs.io/src/clone.js +0 -7
  312. package/lib/colorjs.io/src/color.js +0 -201
  313. package/lib/colorjs.io/src/contrast/APCA.js +0 -102
  314. package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
  315. package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
  316. package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
  317. package/lib/colorjs.io/src/contrast/Weber.js +0 -27
  318. package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
  319. package/lib/colorjs.io/src/contrast/index.js +0 -6
  320. package/lib/colorjs.io/src/contrast.js +0 -28
  321. package/lib/colorjs.io/src/defaults.js +0 -12
  322. package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  323. package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
  324. package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  325. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  326. package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  327. package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  328. package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  329. package/lib/colorjs.io/src/deltaE/index.js +0 -27
  330. package/lib/colorjs.io/src/deltaE.js +0 -19
  331. package/lib/colorjs.io/src/display.js +0 -83
  332. package/lib/colorjs.io/src/distance.js +0 -21
  333. package/lib/colorjs.io/src/equals.js +0 -10
  334. package/lib/colorjs.io/src/get.js +0 -11
  335. package/lib/colorjs.io/src/getAll.js +0 -20
  336. package/lib/colorjs.io/src/getColor.js +0 -36
  337. package/lib/colorjs.io/src/hooks.js +0 -37
  338. package/lib/colorjs.io/src/inGamut.js +0 -25
  339. package/lib/colorjs.io/src/index-fn.js +0 -28
  340. package/lib/colorjs.io/src/index.js +0 -38
  341. package/lib/colorjs.io/src/interpolation.js +0 -222
  342. package/lib/colorjs.io/src/keywords.js +0 -158
  343. package/lib/colorjs.io/src/luminance.js +0 -27
  344. package/lib/colorjs.io/src/multiply-matrices.js +0 -44
  345. package/lib/colorjs.io/src/parse.js +0 -198
  346. package/lib/colorjs.io/src/rgbspace.js +0 -64
  347. package/lib/colorjs.io/src/serialize.js +0 -86
  348. package/lib/colorjs.io/src/set.js +0 -33
  349. package/lib/colorjs.io/src/setAll.js +0 -12
  350. package/lib/colorjs.io/src/space-accessors.js +0 -86
  351. package/lib/colorjs.io/src/space.js +0 -440
  352. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  353. package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
  354. package/lib/colorjs.io/src/spaces/acescc.js +0 -76
  355. package/lib/colorjs.io/src/spaces/acescg.js +0 -54
  356. package/lib/colorjs.io/src/spaces/cam16.js +0 -362
  357. package/lib/colorjs.io/src/spaces/hct.js +0 -157
  358. package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
  359. package/lib/colorjs.io/src/spaces/hsl.js +0 -91
  360. package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
  361. package/lib/colorjs.io/src/spaces/hsv.js +0 -65
  362. package/lib/colorjs.io/src/spaces/hwb.js +0 -58
  363. package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
  364. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  365. package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
  366. package/lib/colorjs.io/src/spaces/index.js +0 -8
  367. package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
  368. package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
  369. package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
  370. package/lib/colorjs.io/src/spaces/lab.js +0 -74
  371. package/lib/colorjs.io/src/spaces/lch.js +0 -67
  372. package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
  373. package/lib/colorjs.io/src/spaces/luv.js +0 -85
  374. package/lib/colorjs.io/src/spaces/oklab.js +0 -74
  375. package/lib/colorjs.io/src/spaces/oklch.js +0 -68
  376. package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
  377. package/lib/colorjs.io/src/spaces/p3.js +0 -13
  378. package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  379. package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
  380. package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  381. package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
  382. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  383. package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  384. package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
  385. package/lib/colorjs.io/src/spaces/srgb.js +0 -127
  386. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  387. package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
  388. package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
  389. package/lib/colorjs.io/src/to.js +0 -26
  390. package/lib/colorjs.io/src/toGamut.js +0 -310
  391. package/lib/colorjs.io/src/util.js +0 -254
  392. package/lib/colorjs.io/src/variations.js +0 -14
  393. package/lib/colorjs.io/types/index.d.cts +0 -4
  394. package/lib/colorjs.io/types/index.d.ts +0 -42
  395. package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
  396. package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
  397. package/lib/colorjs.io/types/src/angles.d.ts +0 -7
  398. package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
  399. package/lib/colorjs.io/types/src/clone.d.ts +0 -3
  400. package/lib/colorjs.io/types/src/color.d.ts +0 -160
  401. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  402. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  403. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  404. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  405. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  406. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  407. package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
  408. package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
  409. package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
  410. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  411. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  412. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  413. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  414. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  415. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  416. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  417. package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  418. package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
  419. package/lib/colorjs.io/types/src/display.d.ts +0 -17
  420. package/lib/colorjs.io/types/src/distance.d.ts +0 -8
  421. package/lib/colorjs.io/types/src/equals.d.ts +0 -3
  422. package/lib/colorjs.io/types/src/get.d.ts +0 -4
  423. package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
  424. package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
  425. package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
  426. package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
  427. package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
  428. package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
  429. package/lib/colorjs.io/types/src/index.d.ts +0 -125
  430. package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
  431. package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
  432. package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
  433. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  434. package/lib/colorjs.io/types/src/parse.d.ts +0 -16
  435. package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
  436. package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
  437. package/lib/colorjs.io/types/src/set.d.ts +0 -18
  438. package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
  439. package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
  440. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  441. package/lib/colorjs.io/types/src/space.d.ts +0 -143
  442. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  443. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  444. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  445. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  446. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  447. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  448. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  449. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  450. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  451. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  452. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  453. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  454. package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
  455. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  456. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  457. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  458. package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  459. package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  460. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  461. package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  462. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  463. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  464. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  465. package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  466. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  467. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  468. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  469. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  470. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  471. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  472. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  473. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  474. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  475. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  476. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  477. package/lib/colorjs.io/types/src/to.d.ts +0 -14
  478. package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
  479. package/lib/colorjs.io/types/src/util.d.ts +0 -58
  480. package/lib/colorjs.io/types/src/variations.d.ts +0 -5
  481. package/src/color-gamut/README.md +0 -75
  482. package/src/color-gamut/color-gamut.css +0 -32
  483. package/src/color-gamut/color-gamut.js +0 -172
  484. package/src/common/color.js +0 -12
@@ -1,17 +0,0 @@
1
- // CIE Lightness difference, as used by Google Material Design
2
- // Google HCT Tone is the same as CIE Lightness
3
- // https://material.io/blog/science-of-color-design
4
-
5
- import getColor from "../getColor.js";
6
- import get from "../get.js";
7
- import lab from "../spaces/lab.js";
8
-
9
- export default function contrastLstar (color1, color2) {
10
- color1 = getColor(color1);
11
- color2 = getColor(color2);
12
-
13
- let L1 = get(color1, [lab, "l"]);
14
- let L2 = get(color2, [lab, "l"]);
15
-
16
- return Math.abs(L1 - L2);
17
- }
@@ -1,22 +0,0 @@
1
- // Michelson luminance contrast
2
- // the relation between the spread and the sum of the two luminances
3
- // Symmetric, does not matter which is foreground and which is background
4
- // No black level compensation for flare.
5
-
6
- import getColor from "../getColor.js";
7
- import {getLuminance} from "../luminance.js";
8
-
9
- export default function contrastMichelson (color1, color2) {
10
- color1 = getColor(color1);
11
- color2 = getColor(color2);
12
-
13
- let Y1 = Math.max(getLuminance(color1), 0);
14
- let Y2 = Math.max(getLuminance(color2), 0);
15
-
16
- if (Y2 > Y1) {
17
- [Y1, Y2] = [Y2, Y1];
18
- }
19
-
20
- let denom = (Y1 + Y2);
21
- return denom === 0 ? 0 : (Y1 - Y2) / denom;
22
- }
@@ -1,20 +0,0 @@
1
- // WCAG 2.0 contrast https://www.w3.org/TR/WCAG20-TECHS/G18.html
2
- // Simple contrast, with fixed 5% viewing flare contribution
3
- // Symmetric, does not matter which is foreground and which is background
4
-
5
- import getColor from "../getColor.js";
6
- import {getLuminance} from "../luminance.js";
7
-
8
- export default function contrastWCAG21 (color1, color2) {
9
- color1 = getColor(color1);
10
- color2 = getColor(color2);
11
-
12
- let Y1 = Math.max(getLuminance(color1), 0);
13
- let Y2 = Math.max(getLuminance(color2), 0);
14
-
15
- if (Y2 > Y1) {
16
- [Y1, Y2] = [Y2, Y1];
17
- }
18
-
19
- return (Y1 + .05) / (Y2 + .05);
20
- }
@@ -1,27 +0,0 @@
1
- // Weber luminance contrast
2
- // The difference between the two luminances divided by the lower luminance
3
- // Symmetric, does not matter which is foreground and which is background
4
- // No black level compensation for flare.
5
-
6
- import getColor from "../getColor.js";
7
- import {getLuminance} from "../luminance.js";
8
-
9
- // the darkest sRGB color above black is #000001 and this produces
10
- // a plain Weber contrast of ~45647.
11
- // So, setting the divide-by-zero result at 50000 is a reasonable
12
- // max clamp for the plain Weber
13
- const max = 50000;
14
-
15
- export default function contrastWeber (color1, color2) {
16
- color1 = getColor(color1);
17
- color2 = getColor(color2);
18
-
19
- let Y1 = Math.max(getLuminance(color1), 0);
20
- let Y2 = Math.max(getLuminance(color2), 0);
21
-
22
- if (Y2 > Y1) {
23
- [Y1, Y2] = [Y2, Y1];
24
- }
25
-
26
- return Y2 === 0 ? max : (Y1 - Y2) / Y2;
27
- }
@@ -1,25 +0,0 @@
1
- // Delta Phi Star perceptual lightness contrast
2
- // See https://github.com/Myndex/deltaphistar
3
- // The (difference between two Lstars each raised to phi) raised to (1/phi)
4
- // Symmetric, does not matter which is foreground and which is background
5
-
6
-
7
- import getColor from "../getColor.js";
8
- import get from "../get.js";
9
- import lab_d65 from "../spaces/lab-d65.js";
10
-
11
- const phi = Math.pow(5, 0.5) * 0.5 + 0.5; // Math.phi can be used if Math.js
12
-
13
- export default function contrastDeltaPhi (color1, color2) {
14
- color1 = getColor(color1);
15
- color2 = getColor(color2);
16
-
17
- let Lstr1 = get(color1, [lab_d65, "l"]);
18
- let Lstr2 = get(color2, [lab_d65, "l"]);
19
-
20
- let deltaPhiStar = Math.abs(Math.pow(Lstr1, phi) - Math.pow(Lstr2, phi));
21
-
22
- let contrast = Math.pow(deltaPhiStar, (1 / phi)) * Math.SQRT2 - 40;
23
-
24
- return (contrast < 7.5) ? 0.0 : contrast ;
25
- }
@@ -1,6 +0,0 @@
1
- export {default as contrastWCAG21} from "./WCAG21.js";
2
- export {default as contrastAPCA} from "./APCA.js";
3
- export {default as contrastMichelson} from "./Michelson.js";
4
- export {default as contrastWeber} from "./Weber.js";
5
- export {default as contrastLstar} from "./Lstar.js";
6
- export {default as contrastDeltaPhi} from "./deltaPhi.js";
@@ -1,28 +0,0 @@
1
- import getColor from "./getColor.js";
2
- // import defaults from "./defaults.js";
3
- import {isString} from "./util.js";
4
- import * as contrastAlgorithms from "./contrast/index.js";
5
-
6
- export default function contrast (background, foreground, o = {}) {
7
- if (isString(o)) {
8
- o = {algorithm: o};
9
- }
10
-
11
- let {algorithm, ...rest} = o;
12
-
13
- if (!algorithm) {
14
- let algorithms = Object.keys(contrastAlgorithms).map(a => a.replace(/^contrast/, "")).join(", ");
15
- throw new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${algorithms}`);
16
- }
17
-
18
- background = getColor(background);
19
- foreground = getColor(foreground);
20
-
21
- for (let a in contrastAlgorithms) {
22
- if ("contrast" + algorithm.toLowerCase() === a.toLowerCase()) {
23
- return contrastAlgorithms[a](background, foreground, rest);
24
- }
25
- }
26
-
27
- throw new TypeError(`Unknown contrast algorithm: ${algorithm}`);
28
- }
@@ -1,12 +0,0 @@
1
- // Global defaults one may want to configure
2
- export default {
3
- gamut_mapping: "css",
4
- precision: 5,
5
- deltaE: "76", // Default deltaE method
6
- verbose: globalThis?.process?.env?.NODE_ENV?.toLowerCase() !== "test",
7
- warn: function warn (msg) {
8
- if (this.verbose) {
9
- globalThis?.console?.warn?.(msg);
10
- }
11
- },
12
- };
@@ -1,179 +0,0 @@
1
- import defaults from "../defaults.js";
2
- import lab from "../spaces/lab.js";
3
- import lch from "../spaces/lch.js";
4
- import getColor from "../getColor.js";
5
-
6
- // deltaE2000 is a statistically significant improvement
7
- // and is recommended by the CIE and Idealliance
8
- // especially for color differences less than 10 deltaE76
9
- // but is wicked complicated
10
- // and many implementations have small errors!
11
- // DeltaE2000 is also discontinuous; in case this
12
- // matters to you, use deltaECMC instead.
13
-
14
- const Gfactor = 25 ** 7;
15
- const π = Math.PI;
16
- const r2d = 180 / π;
17
- const d2r = π / 180;
18
-
19
- function pow7 (x) {
20
- // Faster than x ** 7 or Math.pow(x, 7)
21
-
22
- const x2 = x * x;
23
- const x7 = x2 * x2 * x2 * x;
24
-
25
- return x7;
26
- }
27
-
28
- export default function (color, sample, {kL = 1, kC = 1, kH = 1} = {}) {
29
- [color, sample] = getColor([color, sample]);
30
-
31
- // Given this color as the reference
32
- // and the function parameter as the sample,
33
- // calculate deltaE 2000.
34
-
35
- // This implementation assumes the parametric
36
- // weighting factors kL, kC and kH
37
- // for the influence of viewing conditions
38
- // are all 1, as sadly seems typical.
39
- // kL should be increased for lightness texture or noise
40
- // and kC increased for chroma noise
41
-
42
- let [L1, a1, b1] = lab.from(color);
43
- let C1 = lch.from(lab, [L1, a1, b1])[1];
44
- let [L2, a2, b2] = lab.from(sample);
45
- let C2 = lch.from(lab, [L2, a2, b2])[1];
46
-
47
- // Check for negative Chroma,
48
- // which might happen through
49
- // direct user input of LCH values
50
-
51
- if (C1 < 0) {
52
- C1 = 0;
53
- }
54
- if (C2 < 0) {
55
- C2 = 0;
56
- }
57
-
58
- let Cbar = (C1 + C2) / 2; // mean Chroma
59
-
60
- // calculate a-axis asymmetry factor from mean Chroma
61
- // this turns JND ellipses for near-neutral colors back into circles
62
- let C7 = pow7(Cbar);
63
-
64
- let G = 0.5 * (1 - Math.sqrt(C7 / (C7 + Gfactor)));
65
-
66
- // scale a axes by asymmetry factor
67
- // this by the way is why there is no Lab2000 colorspace
68
- let adash1 = (1 + G) * a1;
69
- let adash2 = (1 + G) * a2;
70
-
71
- // calculate new Chroma from scaled a and original b axes
72
- let Cdash1 = Math.sqrt(adash1 ** 2 + b1 ** 2);
73
- let Cdash2 = Math.sqrt(adash2 ** 2 + b2 ** 2);
74
-
75
- // calculate new hues, with zero hue for true neutrals
76
- // and in degrees, not radians
77
-
78
- let h1 = (adash1 === 0 && b1 === 0) ? 0 : Math.atan2(b1, adash1);
79
- let h2 = (adash2 === 0 && b2 === 0) ? 0 : Math.atan2(b2, adash2);
80
-
81
- if (h1 < 0) {
82
- h1 += 2 * π;
83
- }
84
- if (h2 < 0) {
85
- h2 += 2 * π;
86
- }
87
-
88
- h1 *= r2d;
89
- h2 *= r2d;
90
-
91
- // Lightness and Chroma differences; sign matters
92
- let ΔL = L2 - L1;
93
- let ΔC = Cdash2 - Cdash1;
94
-
95
- // Hue difference, getting the sign correct
96
- let hdiff = h2 - h1;
97
- let hsum = h1 + h2;
98
- let habs = Math.abs(hdiff);
99
- let Δh;
100
-
101
- if (Cdash1 * Cdash2 === 0) {
102
- Δh = 0;
103
- }
104
- else if (habs <= 180) {
105
- Δh = hdiff;
106
- }
107
- else if (hdiff > 180) {
108
- Δh = hdiff - 360;
109
- }
110
- else if (hdiff < -180) {
111
- Δh = hdiff + 360;
112
- }
113
- else {
114
- defaults.warn("the unthinkable has happened");
115
- }
116
-
117
- // weighted Hue difference, more for larger Chroma
118
- let ΔH = 2 * Math.sqrt(Cdash2 * Cdash1) * Math.sin(Δh * d2r / 2);
119
-
120
- // calculate mean Lightness and Chroma
121
- let Ldash = (L1 + L2) / 2;
122
- let Cdash = (Cdash1 + Cdash2) / 2;
123
- let Cdash7 = pow7(Cdash);
124
-
125
- // Compensate for non-linearity in the blue region of Lab.
126
- // Four possibilities for hue weighting factor,
127
- // depending on the angles, to get the correct sign
128
- let hdash;
129
- if (Cdash1 * Cdash2 === 0) {
130
- hdash = hsum; // which should be zero
131
- }
132
- else if (habs <= 180) {
133
- hdash = hsum / 2;
134
- }
135
- else if (hsum < 360) {
136
- hdash = (hsum + 360) / 2;
137
- }
138
- else {
139
- hdash = (hsum - 360) / 2;
140
- }
141
-
142
- // positional corrections to the lack of uniformity of CIELAB
143
- // These are all trying to make JND ellipsoids more like spheres
144
-
145
- // SL Lightness crispening factor
146
- // a background with L=50 is assumed
147
- let lsq = (Ldash - 50) ** 2;
148
- let SL = 1 + ((0.015 * lsq) / Math.sqrt(20 + lsq));
149
-
150
- // SC Chroma factor, similar to those in CMC and deltaE 94 formulae
151
- let SC = 1 + 0.045 * Cdash;
152
-
153
- // Cross term T for blue non-linearity
154
- let T = 1;
155
- T -= (0.17 * Math.cos(( hdash - 30) * d2r));
156
- T += (0.24 * Math.cos( 2 * hdash * d2r));
157
- T += (0.32 * Math.cos(((3 * hdash) + 6) * d2r));
158
- T -= (0.20 * Math.cos(((4 * hdash) - 63) * d2r));
159
-
160
- // SH Hue factor depends on Chroma,
161
- // as well as adjusted hue angle like deltaE94.
162
- let SH = 1 + 0.015 * Cdash * T;
163
-
164
- // RT Hue rotation term compensates for rotation of JND ellipses
165
- // and Munsell constant hue lines
166
- // in the medium-high Chroma blue region
167
- // (Hue 225 to 315)
168
- let Δθ = 30 * Math.exp(-1 * (((hdash - 275) / 25) ** 2));
169
- let RC = 2 * Math.sqrt(Cdash7 / (Cdash7 + Gfactor));
170
- let RT = -1 * Math.sin(2 * Δθ * d2r) * RC;
171
-
172
- // Finally calculate the deltaE, term by term as root sume of squares
173
- let dE = (ΔL / (kL * SL)) ** 2;
174
- dE += (ΔC / (kC * SC)) ** 2;
175
- dE += (ΔH / (kH * SH)) ** 2;
176
- dE += RT * (ΔC / (kC * SC)) * (ΔH / (kH * SH));
177
- return Math.sqrt(dE);
178
- // Yay!!!
179
- }
@@ -1,7 +0,0 @@
1
- import distance from "../distance.js";
2
- import getColor from "../getColor.js";
3
-
4
- export default function deltaE76 (color, sample) {
5
- // Assume getColor() is called in the distance function
6
- return distance(color, sample, "lab");
7
- }
@@ -1,114 +0,0 @@
1
- import lab from "../spaces/lab.js";
2
- import lch from "../spaces/lch.js";
3
- import getColor from "../getColor.js";
4
-
5
- // More accurate color-difference formulae
6
- // than the simple 1976 Euclidean distance in Lab
7
-
8
- // CMC by the Color Measurement Committee of the
9
- // Bradford Society of Dyeists and Colorsts, 1994.
10
- // Uses LCH rather than Lab,
11
- // with different weights for L, C and H differences
12
- // A nice increase in accuracy for modest increase in complexity
13
- const π = Math.PI;
14
- const d2r = π / 180;
15
-
16
- export default function (color, sample, {l = 2, c = 1} = {}) {
17
- [color, sample] = getColor([color, sample]);
18
-
19
- // Given this color as the reference
20
- // and a sample,
21
- // calculate deltaE CMC.
22
-
23
- // This implementation assumes the parametric
24
- // weighting factors l:c are 2:1
25
- // which is typical for non-textile uses.
26
-
27
- let [L1, a1, b1] = lab.from(color);
28
- let [, C1, H1] = lch.from(lab, [L1, a1, b1]);
29
- let [L2, a2, b2] = lab.from(sample);
30
- let C2 = lch.from(lab, [L2, a2, b2])[1];
31
-
32
- // let [L1, a1, b1] = color.getAll(lab);
33
- // let C1 = color.get("lch.c");
34
- // let H1 = color.get("lch.h");
35
- // let [L2, a2, b2] = sample.getAll(lab);
36
- // let C2 = sample.get("lch.c");
37
-
38
- // Check for negative Chroma,
39
- // which might happen through
40
- // direct user input of LCH values
41
-
42
- if (C1 < 0) {
43
- C1 = 0;
44
- }
45
- if (C2 < 0) {
46
- C2 = 0;
47
- }
48
-
49
- // we don't need H2 as ΔH is calculated from Δa, Δb and ΔC
50
-
51
- // Lightness and Chroma differences
52
- // These are (color - sample), unlike deltaE2000
53
- let ΔL = L1 - L2;
54
- let ΔC = C1 - C2;
55
-
56
- let Δa = a1 - a2;
57
- let Δb = b1 - b2;
58
-
59
- // weighted Hue difference, less for larger Chroma difference
60
-
61
- let H2 = (Δa ** 2) + (Δb ** 2) - (ΔC ** 2);
62
- // due to roundoff error it is possible that, for zero a and b,
63
- // ΔC > Δa + Δb is 0, resulting in attempting
64
- // to take the square root of a negative number
65
-
66
- // trying instead the equation from Industrial Color Physics
67
- // By Georg A. Klein
68
-
69
- // let ΔH = ((a1 * b2) - (a2 * b1)) / Math.sqrt(0.5 * ((C2 * C1) + (a2 * a1) + (b2 * b1)));
70
- // console.log({ΔH});
71
- // This gives the same result to 12 decimal places
72
- // except it sometimes NaNs when trying to root a negative number
73
-
74
- // let ΔH = Math.sqrt(H2); we never actually use the root, it gets squared again!!
75
-
76
- // positional corrections to the lack of uniformity of CIELAB
77
- // These are all trying to make JND ellipsoids more like spheres
78
-
79
- // SL Lightness crispening factor, depends entirely on L1 not L2
80
- let SL = 0.511; // linear portion of the Y to L transfer function
81
- if (L1 >= 16) { // cubic portion
82
- SL = (0.040975 * L1) / (1 + 0.01765 * L1);
83
- }
84
-
85
- // SC Chroma factor
86
- let SC = ((0.0638 * C1) / (1 + 0.0131 * C1)) + 0.638;
87
-
88
- // Cross term T for blue non-linearity
89
- let T;
90
- if (Number.isNaN(H1)) {
91
- H1 = 0;
92
- }
93
-
94
- if (H1 >= 164 && H1 <= 345) {
95
- T = 0.56 + Math.abs(0.2 * Math.cos((H1 + 168) * d2r));
96
- }
97
- else {
98
- T = 0.36 + Math.abs(0.4 * Math.cos((H1 + 35) * d2r));
99
- }
100
- // console.log({T});
101
-
102
- // SH Hue factor also depends on C1,
103
- let C4 = Math.pow(C1, 4);
104
- let F = Math.sqrt(C4 / (C4 + 1900));
105
- let SH = SC * ((F * T) + 1 - F);
106
-
107
- // Finally calculate the deltaE, term by term as root sume of squares
108
- let dE = (ΔL / (l * SL)) ** 2;
109
- dE += (ΔC / (c * SC)) ** 2;
110
- dE += (H2 / (SH ** 2));
111
- // dE += (ΔH / SH) ** 2;
112
- return Math.sqrt(dE);
113
- // Yay!!!
114
- }
@@ -1,51 +0,0 @@
1
- import hct from "../spaces/hct.js";
2
- import {viewingConditions} from "../spaces/hct.js";
3
- import getColor from "../getColor.js";
4
-
5
- const rad2deg = 180 / Math.PI;
6
- const deg2rad = Math.PI / 180;
7
- const ucsCoeff = [1.00, 0.007, 0.0228];
8
-
9
- /**
10
- * Convert HCT chroma and hue (CAM16 JMh colorfulness and hue) using UCS logic for a and b.
11
- * @param {number[]} coords - HCT coordinates.
12
- * @return {number[]}
13
- */
14
- function convertUcsAb (coords) {
15
- // We want the distance between the actual color.
16
- // If chroma is negative, it will throw off our calculations.
17
- // Normally, converting back to the base and forward will correct it.
18
- // If we have a negative chroma after this, then we have a color that
19
- // cannot resolve to positive chroma.
20
- if (coords[1] < 0) {
21
- coords = hct.fromBase(hct.toBase(coords));
22
- }
23
-
24
- // Only in extreme cases (usually outside the visible spectrum)
25
- // can the input value for log become negative.
26
- // Avoid domain error by forcing a zero result via "max" if necessary.
27
- const M = Math.log(Math.max(1 + ucsCoeff[2] * coords[1] * viewingConditions.flRoot, 1.0)) / ucsCoeff[2];
28
- const hrad = coords[0] * deg2rad;
29
- const a = M * Math.cos(hrad);
30
- const b = M * Math.sin(hrad);
31
-
32
- return [coords[2], a, b];
33
- }
34
-
35
-
36
- /**
37
- * Color distance using HCT.
38
- * @param {Color} color - Color to compare.
39
- * @param {Color} sample - Color to compare.
40
- * @return {number[]}
41
- */
42
- export default function (color, sample) {
43
- [color, sample] = getColor([color, sample]);
44
-
45
- let [ t1, a1, b1 ] = convertUcsAb(hct.from(color));
46
- let [ t2, a2, b2 ] = convertUcsAb(hct.from(sample));
47
-
48
- // Use simple euclidean distance with a and b using UCS conversion
49
- // and LCh lightness (HCT tone).
50
- return Math.sqrt((t1 - t2) ** 2 + (a1 - a2) ** 2 + (b1 - b2) ** 2);
51
- }
@@ -1,24 +0,0 @@
1
- import ictcp from "../spaces/ictcp.js";
2
- import getColor from "../getColor.js";
3
-
4
- // Delta E in ICtCp space,
5
- // which the ITU calls Delta E ITP, which is shorter
6
- // formulae from ITU Rec. ITU-R BT.2124-0
7
-
8
- export default function (color, sample) {
9
- [color, sample] = getColor([color, sample]);
10
-
11
- // Given this color as the reference
12
- // and a sample,
13
- // calculate deltaE in ICtCp
14
- // which is simply the Euclidean distance
15
-
16
- let [ I1, T1, P1 ] = ictcp.from(color);
17
- let [ I2, T2, P2 ] = ictcp.from(sample);
18
-
19
- // the 0.25 factor is to undo the encoding scaling in Ct
20
- // the 720 is so that 1 deltaE = 1 JND
21
- // per ITU-R BT.2124-0 p.3
22
-
23
- return 720 * Math.sqrt((I1 - I2) ** 2 + (0.25 * (T1 - T2) ** 2) + (P1 - P2) ** 2);
24
- }
@@ -1,43 +0,0 @@
1
- import jzczhz from "../spaces/jzczhz.js";
2
- import getColor from "../getColor.js";
3
-
4
- // More accurate color-difference formulae
5
- // than the simple 1976 Euclidean distance in Lab
6
-
7
- // Uses JzCzHz, which has improved perceptual uniformity
8
- // and thus a simple Euclidean root-sum of ΔL² ΔC² ΔH²
9
- // gives good results.
10
-
11
- export default function (color, sample) {
12
- [color, sample] = getColor([color, sample]);
13
-
14
- // Given this color as the reference
15
- // and a sample,
16
- // calculate deltaE in JzCzHz.
17
- let [Jz1, Cz1, Hz1] = jzczhz.from(color);
18
- let [Jz2, Cz2, Hz2] = jzczhz.from(sample);
19
-
20
- // Lightness and Chroma differences
21
- // sign does not matter as they are squared.
22
- let ΔJ = Jz1 - Jz2;
23
- let ΔC = Cz1 - Cz2;
24
-
25
- // length of chord for ΔH
26
- if ((Number.isNaN(Hz1)) && (Number.isNaN(Hz2))) {
27
- // both undefined hues
28
- Hz1 = 0;
29
- Hz2 = 0;
30
- }
31
- else if (Number.isNaN(Hz1)) {
32
- // one undefined, set to the defined hue
33
- Hz1 = Hz2;
34
- }
35
- else if (Number.isNaN(Hz2)) {
36
- Hz2 = Hz1;
37
- }
38
-
39
- let Δh = Hz1 - Hz2;
40
- let ΔH = 2 * Math.sqrt(Cz1 * Cz2) * Math.sin((Δh / 2) * (Math.PI / 180));
41
-
42
- return Math.sqrt(ΔJ ** 2 + ΔC ** 2 + ΔH ** 2);
43
- }
@@ -1,19 +0,0 @@
1
- // More accurate color-difference formulae
2
- // than the simple 1976 Euclidean distance in CIE Lab
3
-
4
- import oklab from "../spaces/oklab.js";
5
- import getColor from "../getColor.js";
6
-
7
- export default function (color, sample) {
8
- [color, sample] = getColor([color, sample]);
9
-
10
- // Given this color as the reference
11
- // and a sample,
12
- // calculate deltaEOK, term by term as root sum of squares
13
- let [L1, a1, b1] = oklab.from(color);
14
- let [L2, a2, b2] = oklab.from(sample);
15
- let ΔL = L1 - L2;
16
- let Δa = a1 - a2;
17
- let Δb = b1 - b2;
18
- return Math.sqrt(ΔL ** 2 + Δa ** 2 + Δb ** 2);
19
- }
@@ -1,27 +0,0 @@
1
- import deltaE76 from "./deltaE76.js";
2
- import deltaECMC from "./deltaECMC.js";
3
- import deltaE2000 from "./deltaE2000.js";
4
- import deltaEJz from "./deltaEJz.js";
5
- import deltaEITP from "./deltaEITP.js";
6
- import deltaEOK from "./deltaEOK.js";
7
- import deltaEHCT from "./deltaEHCT.js";
8
-
9
- export {
10
- deltaE76,
11
- deltaECMC,
12
- deltaE2000,
13
- deltaEJz,
14
- deltaEITP,
15
- deltaEOK,
16
- deltaEHCT,
17
- };
18
-
19
- export default {
20
- deltaE76,
21
- deltaECMC,
22
- deltaE2000,
23
- deltaEJz,
24
- deltaEITP,
25
- deltaEOK,
26
- deltaEHCT,
27
- };
@@ -1,19 +0,0 @@
1
- import defaults from "./defaults.js";
2
- import {isString} from "./util.js";
3
- import deltaEMethods from "./deltaE/index.js";
4
-
5
- export default function deltaE (c1, c2, o = {}) {
6
- if (isString(o)) {
7
- o = {method: o};
8
- }
9
-
10
- let {method = defaults.deltaE, ...rest} = o;
11
-
12
- for (let m in deltaEMethods) {
13
- if ("deltae" + method.toLowerCase() === m.toLowerCase()) {
14
- return deltaEMethods[m](c1, c2, rest);
15
- }
16
- }
17
-
18
- throw new TypeError(`Unknown deltaE method: ${method}`);
19
- }