color-elements 0.0.2 → 0.0.4

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 (483) 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 +12 -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/index.js +5 -1
  12. package/package.json +9 -3
  13. package/src/channel-picker/README.md +103 -0
  14. package/src/channel-picker/channel-picker.css +31 -0
  15. package/src/channel-picker/channel-picker.js +168 -0
  16. package/src/channel-picker/channel-picker.webp +0 -0
  17. package/src/channel-slider/README.md +50 -8
  18. package/src/channel-slider/channel-slider.css +47 -5
  19. package/src/channel-slider/channel-slider.js +74 -39
  20. package/src/channel-slider/channel-slider.webp +0 -0
  21. package/src/color-chart/README.md +129 -0
  22. package/src/color-chart/color-chart-global.css +101 -0
  23. package/src/color-chart/color-chart.css +112 -0
  24. package/src/color-chart/color-chart.js +439 -0
  25. package/src/color-chart/color-chart.webp +0 -0
  26. package/src/color-inline/README.md +42 -1
  27. package/src/color-inline/color-inline.css +11 -4
  28. package/src/color-inline/color-inline.js +56 -50
  29. package/src/color-inline/color-inline.webp +0 -0
  30. package/src/color-picker/README.md +107 -5
  31. package/src/color-picker/color-picker.css +21 -6
  32. package/src/color-picker/color-picker.js +147 -60
  33. package/src/color-picker/color-picker.webp +0 -0
  34. package/src/color-scale/README.md +75 -0
  35. package/src/color-scale/color-scale.css +35 -0
  36. package/src/color-scale/color-scale.js +164 -0
  37. package/src/color-scale/color-scale.webp +0 -0
  38. package/src/color-slider/README.md +31 -4
  39. package/src/color-slider/color-slider.css +17 -7
  40. package/src/color-slider/color-slider.js +80 -38
  41. package/src/color-slider/color-slider.webp +0 -0
  42. package/src/color-swatch/README.md +265 -6
  43. package/src/color-swatch/color-swatch.css +171 -27
  44. package/src/color-swatch/color-swatch.js +193 -217
  45. package/src/color-swatch/color-swatch.webp +0 -0
  46. package/src/common/color-element.js +140 -0
  47. package/src/common/dom.js +1 -1
  48. package/src/common/util.js +62 -84
  49. package/src/gamut-badge/README.md +145 -0
  50. package/src/gamut-badge/gamut-badge.css +78 -0
  51. package/src/gamut-badge/gamut-badge.js +121 -0
  52. package/src/gamut-badge/gamut-badge.webp +0 -0
  53. package/src/index.js.njk +1 -1
  54. package/src/space-picker/README.md +121 -0
  55. package/src/space-picker/space-picker.css +23 -0
  56. package/src/space-picker/space-picker.js +213 -0
  57. package/src/space-picker/space-picker.webp +0 -0
  58. package/_data/components.json +0 -8
  59. package/lib/README.md +0 -4
  60. package/lib/colorjs.io/LICENSE +0 -21
  61. package/lib/colorjs.io/README.json +0 -3
  62. package/lib/colorjs.io/README.md +0 -257
  63. package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
  64. package/lib/colorjs.io/colorjs.io/README.json +0 -3
  65. package/lib/colorjs.io/colorjs.io/README.md +0 -257
  66. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
  67. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
  68. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  69. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  70. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  71. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  72. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
  73. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  74. package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
  75. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
  76. package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
  77. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
  78. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
  79. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
  80. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
  81. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  82. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
  83. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
  84. package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
  85. package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
  86. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
  87. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
  88. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
  89. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
  90. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
  91. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  92. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
  93. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
  94. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
  95. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
  96. package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
  97. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
  98. package/lib/colorjs.io/colorjs.io/package.json +0 -113
  99. package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
  100. package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
  101. package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
  102. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
  103. package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
  104. package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
  105. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
  106. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
  107. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
  108. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
  109. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
  110. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
  111. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
  112. package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
  113. package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
  114. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  115. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
  116. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  117. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  118. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  119. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  120. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  121. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
  122. package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
  123. package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
  124. package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
  125. package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
  126. package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
  127. package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
  128. package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
  129. package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
  130. package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
  131. package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
  132. package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
  133. package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
  134. package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
  135. package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
  136. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
  137. package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
  138. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
  139. package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
  140. package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
  141. package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
  142. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
  143. package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
  144. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  145. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
  146. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
  147. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
  148. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
  149. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
  150. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
  151. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
  152. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
  153. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
  154. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
  155. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
  156. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  157. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
  158. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
  159. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
  160. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
  161. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
  162. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
  163. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
  164. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
  165. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
  166. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
  167. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
  168. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
  169. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
  170. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  171. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
  172. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  173. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
  174. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  175. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  176. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
  177. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
  178. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  179. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
  180. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
  181. package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
  182. package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
  183. package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
  184. package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
  185. package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
  186. package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
  187. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
  188. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
  189. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
  190. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
  191. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
  192. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
  193. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  194. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  195. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  196. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  197. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  198. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  199. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
  200. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
  201. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
  202. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  203. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  204. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  205. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  206. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  207. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  208. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  209. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  210. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
  211. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
  212. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
  213. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
  214. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
  215. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
  216. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
  217. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
  218. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
  219. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
  220. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
  221. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
  222. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
  223. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
  224. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
  225. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  226. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
  227. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
  228. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
  229. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
  230. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
  231. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
  232. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  233. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
  234. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  235. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  236. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  237. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  238. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  239. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  240. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  241. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  242. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  243. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  244. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  245. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  246. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
  247. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  248. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  249. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  250. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  251. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  252. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  253. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  254. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  255. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  256. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  257. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  258. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  259. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  260. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  261. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  262. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  263. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  264. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  265. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  266. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  267. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  268. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  269. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
  270. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
  271. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
  272. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
  273. package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
  274. package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
  275. package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  276. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  277. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  278. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  279. package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
  280. package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  281. package/lib/colorjs.io/dist/color.cjs +0 -5759
  282. package/lib/colorjs.io/dist/color.cjs.map +0 -1
  283. package/lib/colorjs.io/dist/color.global.js +0 -5760
  284. package/lib/colorjs.io/dist/color.global.js.map +0 -1
  285. package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
  286. package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
  287. package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
  288. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  289. package/lib/colorjs.io/dist/color.global.min.js +0 -2
  290. package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
  291. package/lib/colorjs.io/dist/color.js +0 -5755
  292. package/lib/colorjs.io/dist/color.js.map +0 -1
  293. package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
  294. package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
  295. package/lib/colorjs.io/dist/color.legacy.js +0 -7395
  296. package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
  297. package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
  298. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  299. package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
  300. package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
  301. package/lib/colorjs.io/dist/color.min.cjs +0 -2
  302. package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
  303. package/lib/colorjs.io/dist/color.min.js +0 -2
  304. package/lib/colorjs.io/dist/color.min.js.map +0 -1
  305. package/lib/colorjs.io/package.json +0 -113
  306. package/lib/colorjs.io/src/CATs.js +0 -131
  307. package/lib/colorjs.io/src/adapt.js +0 -62
  308. package/lib/colorjs.io/src/angles.js +0 -44
  309. package/lib/colorjs.io/src/chromaticity.js +0 -33
  310. package/lib/colorjs.io/src/clone.js +0 -7
  311. package/lib/colorjs.io/src/color.js +0 -201
  312. package/lib/colorjs.io/src/contrast/APCA.js +0 -102
  313. package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
  314. package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
  315. package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
  316. package/lib/colorjs.io/src/contrast/Weber.js +0 -27
  317. package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
  318. package/lib/colorjs.io/src/contrast/index.js +0 -6
  319. package/lib/colorjs.io/src/contrast.js +0 -28
  320. package/lib/colorjs.io/src/defaults.js +0 -12
  321. package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  322. package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
  323. package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  324. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  325. package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  326. package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  327. package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  328. package/lib/colorjs.io/src/deltaE/index.js +0 -27
  329. package/lib/colorjs.io/src/deltaE.js +0 -19
  330. package/lib/colorjs.io/src/display.js +0 -83
  331. package/lib/colorjs.io/src/distance.js +0 -21
  332. package/lib/colorjs.io/src/equals.js +0 -10
  333. package/lib/colorjs.io/src/get.js +0 -11
  334. package/lib/colorjs.io/src/getAll.js +0 -20
  335. package/lib/colorjs.io/src/getColor.js +0 -36
  336. package/lib/colorjs.io/src/hooks.js +0 -37
  337. package/lib/colorjs.io/src/inGamut.js +0 -25
  338. package/lib/colorjs.io/src/index-fn.js +0 -28
  339. package/lib/colorjs.io/src/index.js +0 -38
  340. package/lib/colorjs.io/src/interpolation.js +0 -222
  341. package/lib/colorjs.io/src/keywords.js +0 -158
  342. package/lib/colorjs.io/src/luminance.js +0 -27
  343. package/lib/colorjs.io/src/multiply-matrices.js +0 -44
  344. package/lib/colorjs.io/src/parse.js +0 -198
  345. package/lib/colorjs.io/src/rgbspace.js +0 -64
  346. package/lib/colorjs.io/src/serialize.js +0 -86
  347. package/lib/colorjs.io/src/set.js +0 -33
  348. package/lib/colorjs.io/src/setAll.js +0 -12
  349. package/lib/colorjs.io/src/space-accessors.js +0 -86
  350. package/lib/colorjs.io/src/space.js +0 -440
  351. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  352. package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
  353. package/lib/colorjs.io/src/spaces/acescc.js +0 -76
  354. package/lib/colorjs.io/src/spaces/acescg.js +0 -54
  355. package/lib/colorjs.io/src/spaces/cam16.js +0 -362
  356. package/lib/colorjs.io/src/spaces/hct.js +0 -157
  357. package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
  358. package/lib/colorjs.io/src/spaces/hsl.js +0 -91
  359. package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
  360. package/lib/colorjs.io/src/spaces/hsv.js +0 -65
  361. package/lib/colorjs.io/src/spaces/hwb.js +0 -58
  362. package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
  363. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  364. package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
  365. package/lib/colorjs.io/src/spaces/index.js +0 -8
  366. package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
  367. package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
  368. package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
  369. package/lib/colorjs.io/src/spaces/lab.js +0 -74
  370. package/lib/colorjs.io/src/spaces/lch.js +0 -67
  371. package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
  372. package/lib/colorjs.io/src/spaces/luv.js +0 -85
  373. package/lib/colorjs.io/src/spaces/oklab.js +0 -74
  374. package/lib/colorjs.io/src/spaces/oklch.js +0 -68
  375. package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
  376. package/lib/colorjs.io/src/spaces/p3.js +0 -13
  377. package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  378. package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
  379. package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  380. package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
  381. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  382. package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  383. package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
  384. package/lib/colorjs.io/src/spaces/srgb.js +0 -127
  385. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  386. package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
  387. package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
  388. package/lib/colorjs.io/src/to.js +0 -26
  389. package/lib/colorjs.io/src/toGamut.js +0 -310
  390. package/lib/colorjs.io/src/util.js +0 -254
  391. package/lib/colorjs.io/src/variations.js +0 -14
  392. package/lib/colorjs.io/types/index.d.cts +0 -4
  393. package/lib/colorjs.io/types/index.d.ts +0 -42
  394. package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
  395. package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
  396. package/lib/colorjs.io/types/src/angles.d.ts +0 -7
  397. package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
  398. package/lib/colorjs.io/types/src/clone.d.ts +0 -3
  399. package/lib/colorjs.io/types/src/color.d.ts +0 -160
  400. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  401. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  402. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  403. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  404. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  405. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  406. package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
  407. package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
  408. package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
  409. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  410. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  411. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  412. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  413. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  414. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  415. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  416. package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  417. package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
  418. package/lib/colorjs.io/types/src/display.d.ts +0 -17
  419. package/lib/colorjs.io/types/src/distance.d.ts +0 -8
  420. package/lib/colorjs.io/types/src/equals.d.ts +0 -3
  421. package/lib/colorjs.io/types/src/get.d.ts +0 -4
  422. package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
  423. package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
  424. package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
  425. package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
  426. package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
  427. package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
  428. package/lib/colorjs.io/types/src/index.d.ts +0 -125
  429. package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
  430. package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
  431. package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
  432. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  433. package/lib/colorjs.io/types/src/parse.d.ts +0 -16
  434. package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
  435. package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
  436. package/lib/colorjs.io/types/src/set.d.ts +0 -18
  437. package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
  438. package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
  439. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  440. package/lib/colorjs.io/types/src/space.d.ts +0 -143
  441. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  442. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  443. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  444. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  445. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  446. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  447. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  448. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  449. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  450. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  451. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  452. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  453. package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
  454. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  455. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  456. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  457. package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  458. package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  459. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  460. package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  461. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  462. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  463. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  464. package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  465. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  466. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  467. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  468. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  469. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  470. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  471. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  472. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  473. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  474. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  475. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  476. package/lib/colorjs.io/types/src/to.d.ts +0 -14
  477. package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
  478. package/lib/colorjs.io/types/src/util.d.ts +0 -58
  479. package/lib/colorjs.io/types/src/variations.d.ts +0 -5
  480. package/src/color-gamut/README.md +0 -75
  481. package/src/color-gamut/color-gamut.css +0 -32
  482. package/src/color-gamut/color-gamut.js +0 -172
  483. package/src/common/color.js +0 -12
package/README.md CHANGED
@@ -3,6 +3,34 @@
3
3
  These are some **highly experimental** color-related web components.
4
4
  Use at your own risk, the API can change at any point.
5
5
 
6
+ ## All elements
7
+
8
+ <section class="showcase">
9
+ {% for name, description in components -%}
10
+ <a href="{{ page | relative }}/src/{{ name }}/">
11
+ <figure>
12
+ <img src="{{ page | relative }}/src/{{ name }}/{{ name }}.webp" alt="A screenshot showcasing the &lt;{{ name }}&gt; color element" />
13
+ <figcaption>
14
+ <h2>&lt;{{ name }}&gt;</h2>
15
+ <p>{{ description | safe }}</p>
16
+ </figcaption>
17
+ </figure>
18
+ </a>
19
+ {% endfor %}
20
+ </section>
21
+
22
+ ### Upcoming
23
+
24
+ <section class="showcase upcoming">
25
+ {% for name in ["color-plane"] -%}
26
+ <figure>
27
+ <figcaption>
28
+ <h2>&lt;{{ name }}&gt;</h2>
29
+ </figcaption>
30
+ </figure>
31
+ {% endfor %}
32
+ </section>
33
+
6
34
  ## Usage
7
35
 
8
36
  ### CDN
@@ -10,13 +38,13 @@ Use at your own risk, the API can change at any point.
10
38
  To include all components at once:
11
39
 
12
40
  ```html
13
- <script src="https://elements.colorjs.io/index.js"></script>
41
+ <script src="https://elements.colorjs.io/index.js" type="module"></script>
14
42
  ```
15
43
 
16
44
  To cherry-pick individual components, follow the instructions within the component’s page, but it generally looks like this:
17
45
 
18
46
  ```html
19
- <script src="https://elements.colorjs.io/src/COMPONENT_NAME/COMPONENT_NAME.js"></script>
47
+ <script src="https://elements.colorjs.io/src/COMPONENT_NAME/COMPONENT_NAME.js" type="module"></script>
20
48
  ```
21
49
 
22
50
  Each component imports its own dependencies and styles.
@@ -40,16 +68,3 @@ You can also import individual components:
40
68
  ```js
41
69
  import "color-elements/COMPONENT_NAME";
42
70
  ```
43
-
44
- ## All elements
45
-
46
- - [`<color-picker>`](src/color-picker/)
47
- - [`<color-slider>`](src/color-slider/)
48
- - [`<channel-slider>`](src/channel-slider/)
49
- - [`<color-swatch>`](src/color-swatch/)
50
- - [`<color-inline>`](src/color-inline/)
51
- - [`<color-gamut>`](src/color-gamut/)
52
-
53
- ### Upcoming:
54
-
55
- - `<color-plane>`
@@ -4,7 +4,7 @@
4
4
  "_includes/partials/_nav.njk",
5
5
  "_includes/page.njk",
6
6
  "_includes/plain.njk",
7
- "_data/eleventyComputed.js",
7
+ "data/eleventyComputed.js",
8
8
  ["_build/eleventy.js", "_build/eleventy-original.js"],
9
9
  "_build/filters.js"
10
10
  ],
@@ -1,11 +1,12 @@
1
1
  import markdownIt from "markdown-it";
2
2
  import markdownItAttrs from "markdown-it-attrs";
3
+ import markdownItAnchor from "markdown-it-anchor";
3
4
  import configOriginal from "./eleventy-original.js";
4
5
  import * as filters from "./filters-extra.js";
5
6
 
6
7
  let data = {
7
8
  "permalink": "{{ page.filePathStem | replace('README', '') | replace('index', '') }}/index.html",
8
- "body_classes": "cn-ignore"
9
+ "body_classes": "cn-ignore",
9
10
  };
10
11
 
11
12
  let md = markdownIt({
@@ -14,7 +15,11 @@ let md = markdownIt({
14
15
  typographer: true,
15
16
  })
16
17
  .disable("code")
17
- .use(markdownItAttrs);
18
+ .use(markdownItAttrs)
19
+ .use(markdownItAnchor, {
20
+ permalink: markdownItAnchor.permalink.headerLink(),
21
+ level: 2,
22
+ });
18
23
 
19
24
  export default config => {
20
25
  let ret = configOriginal(config);
@@ -1,3 +1,3 @@
1
1
  export function tag_to_class (tag) {
2
2
  return tag?.replace(/(?:^|-)([a-z])/g, ($0, $1) => $1.toUpperCase());
3
- }
3
+ }
@@ -16,7 +16,7 @@
16
16
  }
17
17
  },
18
18
  title: function (data) {
19
- return data.title ?? data.tag;
19
+ return data.title || data.tag;
20
20
  },
21
21
  }
22
22
  }
@@ -25,6 +25,14 @@
25
25
  <script src="{{ page | relative }}/index.js" type="module"></script>
26
26
  <script src="{{ name }}.js" type="module"></script>
27
27
 
28
+ <aside id="toc">
29
+ <ul>
30
+ {% for name, description in components -%}
31
+ <li><a href="{{ page | relative }}/src/{{ name }}/"><code>&lt;{{ name }}&gt;</code></a></li>
32
+ {% endfor %}
33
+ </ul>
34
+ </aside>
35
+
28
36
  {{ content | safe }}
29
37
 
30
38
  <section id="installation">
@@ -2,11 +2,19 @@
2
2
  <div class="menu">
3
3
  <a href="{{ page | relative }}">Elements</a>
4
4
  <ul>
5
- {% for name in components %}
6
- <li><a href="{{ page | relative }}/src/{{ name }}/"><code>&lt;{{ name }}&gt;</code></a></span>
5
+ {% for name, description in components %}
6
+ <li><a href="{{ page | relative }}/src/{{ name }}/"><code>&lt;{{ name }}&gt;</code></a></li>
7
7
  {% endfor %}
8
8
  </ul>
9
9
  </div>
10
10
 
11
- <a href="https://github.com/color-js/elements">GitHub</a>
12
- <a href="https://github.com/color-js/elements/issues/new" class="footer">File bug</a>
11
+ <a href="https://github.com/color-js/elements{{ ('/tree/main/src/' + name) if name }}" target="_blank">GitHub</a>
12
+ <div class="menu">
13
+ <a href="https://github.com/color-js/elements/issues{{ ('?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+%5B' + name + '%5D+in%3Atitle') if name }}" target="_blank">Issues</a>
14
+ <ul>
15
+ <li><a href="https://github.com/color-js/elements/issues/new{{ ('?title=[' + name + '] ') if name }}">New</a></li>
16
+ </ul>
17
+ </div>
18
+ <a href="https://opencollective.com/color">♡&nbsp;Sponsor</a>
19
+
20
+
package/_redirects CHANGED
@@ -1,2 +1,9 @@
1
+ # Specific versions
2
+ node_modules/nude-element/* https://cdn.jsdelivr.net/npm/nude-element@0.0.14/:splat 200
3
+
4
+ # Catch all NPM fallback
1
5
  node_modules/:modulename/* https://cdn.jsdelivr.net/npm/:modulename@latest/:splat 200
2
- assets/* https://colorjs.io/assets/:splat 200
6
+
7
+ assets/* https://colorjs.io/assets/:splat 200
8
+
9
+ /:tag/* /src/:tag/:splat 200
@@ -1 +1,78 @@
1
- @import url("https://colorjs.io/assets/css/style.css");
1
+ @import url("https://colorjs.io/assets/css/style.css");
2
+ @import url("https://colorjs.io/assets/css/docs.css");
3
+
4
+ .showcase {
5
+ --_border-color: hsl(var(--gray) 85%);
6
+
7
+ display: grid;
8
+ grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
9
+ gap: 2rem;
10
+
11
+ figure {
12
+ display: grid;
13
+ grid-template-rows: 1fr auto;
14
+
15
+ inline-size: 100%;
16
+ margin: 0;
17
+ overflow: hidden;
18
+
19
+ border: 1px solid var(--_border-color);
20
+ border-radius: .5em;
21
+
22
+ box-shadow: 0 .02em .5em -.7em hsl(var(--gray) 30%);
23
+
24
+ &:is(:hover, :focus-within) {
25
+ img {
26
+ scale: 1.1;
27
+ }
28
+ }
29
+
30
+ img {
31
+ inline-size: 100%;
32
+ aspect-ratio: 4 / 3;
33
+ transition: scale .2s;
34
+ }
35
+
36
+ figcaption {
37
+ margin: 0;
38
+ padding: 0 .7em .5em;
39
+ border-block-start: 1px solid var(--_border-color);
40
+ background-color: hsl(var(--gray) 98%);
41
+ z-index: 1;
42
+
43
+ h2 {
44
+ font-size: 200%;
45
+
46
+ &:not(:only-child) {
47
+ margin-block-end: 0;
48
+ }
49
+ }
50
+
51
+ p {
52
+ text-wrap: balance;
53
+ }
54
+ }
55
+ }
56
+
57
+ &.upcoming {
58
+ figure {
59
+ &::before {
60
+ content: "";
61
+ inline-size: 100%;
62
+ aspect-ratio: 4 / 3;
63
+
64
+ background: var(--rainbow);
65
+ animation: var(--rainbow-scroll);
66
+
67
+ mask-image: url('data:image/svg+xml,\
68
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 1080">\
69
+ <path fill="none" stroke="black" stroke-width="25" stroke-linecap="round" stroke-linejoin="round" d="M233 579a70 70 0 0 0 70 70h834a70 70 0 0 0 0-140H303a70 70 0 0 0-70 70Z"/>\
70
+ <path fill-rule="evenodd" d="M270 579a42 42 0 0 0 42 42h538v-84H312a42 42 0 0 0-42 42Z"/>\
71
+ <text xml:space="preserve" x="425.54" y="462" font-family="Impact" font-size="90" font-weight="800" letter-spacing="2.7">COMING SOON...</text>\
72
+ </svg>');
73
+ mask-repeat: no-repeat;
74
+ mask-size: 100% 100%;
75
+ }
76
+ }
77
+ }
78
+ }
@@ -1,16 +1,16 @@
1
1
  import "https://colorjs.io/assets/js//prism.js";
2
2
  import "https://colorjs.io/assets/js/colors.js";
3
+ import "https://blissfuljs.com/bliss.shy.js";
3
4
 
4
5
  import { styleCallouts } from "https://colorjs.io/assets/js/enhance.js";
5
6
  styleCallouts();
6
7
 
7
- let root = document.documentElement;
8
- document.addEventListener("scroll", evt => {
9
- root.style.setProperty("--scrolltop", root.scrollTop);
10
- }, {passive: true});
11
-
12
8
  import HTMLDemoElement from "https://nudeui.com/elements/html-demo/html-demo.js";
13
9
 
14
10
  if (document.body.classList.contains("component-page")) {
15
11
  HTMLDemoElement.wrapAll();
16
- }
12
+ }
13
+
14
+ if (window.toc) {
15
+ import("https://colorjs.io/assets/js/docs.js");
16
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "color-picker": "Select and adjust colors in any color space using sliders and input fields.",
3
+ "color-scale": "Display a list of colors. Primarily intended for color palettes.",
4
+ "color-chart": "Display lists of colors as a scatterplot or line chart.",
5
+ "color-swatch": "Display a visual representation of a color alongside the info about it.",
6
+ "color-inline": "Display a color swatch alone or alongside its textual representation.",
7
+ "channel-slider": "Display a <code>&lt;color-slider&gt;</code> for a specific channel.",
8
+ "color-slider": "Display a slider with a gradient background. Primarily intended for color picking.",
9
+ "gamut-badge": "Gamut indicator. Used internally by <code>&lt;color-swatch&gt;</code>.",
10
+ "channel-picker": "Select individual color channels within a specified color space.",
11
+ "space-picker": "Select a color space from a list of predefined or custom color spaces."
12
+ }
package/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  export { default as ColorPicker } from "./src/color-picker/color-picker.js";
2
+ export { default as ColorScale } from "./src/color-scale/color-scale.js";
3
+ export { default as ColorChart } from "./src/color-chart/color-chart.js";
2
4
  export { default as ColorSwatch } from "./src/color-swatch/color-swatch.js";
3
5
  export { default as ColorInline } from "./src/color-inline/color-inline.js";
4
6
  export { default as ChannelSlider } from "./src/channel-slider/channel-slider.js";
5
7
  export { default as ColorSlider } from "./src/color-slider/color-slider.js";
6
- export { default as ColorGamut } from "./src/color-gamut/color-gamut.js";
8
+ export { default as GamutBadge } from "./src/gamut-badge/gamut-badge.js";
9
+ export { default as ChannelPicker } from "./src/channel-picker/channel-picker.js";
10
+ export { default as SpacePicker } from "./src/space-picker/space-picker.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "color-elements",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "A set of web components for working with color. A Color.js project.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -14,6 +14,7 @@
14
14
  "release": "release-it",
15
15
  "test": "echo \"Error: no test specified\" && exit 1",
16
16
  "build:html": "npx @11ty/eleventy --config=_build/eleventy.js",
17
+ "serve": "npx @11ty/eleventy --config=_build/eleventy.js --serve",
17
18
  "watch:html": "npx @11ty/eleventy --config=_build/eleventy.js --serve"
18
19
  },
19
20
  "repository": {
@@ -26,22 +27,27 @@
26
27
  "web components"
27
28
  ],
28
29
  "author": "Lea Verou",
30
+ "funding": {
31
+ "type": "opencollective",
32
+ "url": "https://opencollective.com/color"
33
+ },
29
34
  "license": "MIT",
30
35
  "bugs": {
31
36
  "url": "https://github.com/color-js/elements/issues"
32
37
  },
33
38
  "homepage": "https://github.com/color-js/elements#readme",
34
39
  "dependencies": {
40
+ "@11ty/eleventy": "^3.1.2",
35
41
  "colorjs.io": "^0.5.0",
36
42
  "nude-element": "latest"
37
43
  },
38
44
  "devDependencies": {
39
- "@11ty/eleventy": "^3.0.0-alpha.6",
40
45
  "@stylistic/eslint-plugin": "latest",
41
46
  "eslint": "latest",
42
47
  "globals": "latest",
48
+ "markdown-it-anchor": "^8",
43
49
  "markdown-it-attrs": "^4.1.6",
44
50
  "npm-run-all": "^4.1.5",
45
51
  "release-it": "^17.2.0"
46
52
  }
47
- }
53
+ }
@@ -0,0 +1,103 @@
1
+ # `<channel-picker>`
2
+
3
+ ## Usage
4
+
5
+ ### Basic usage
6
+
7
+ ```html
8
+ <channel-picker value="oklab.a"></channel-picker>
9
+ ```
10
+
11
+ If no color channel is provided (via the `value` attribute/property),
12
+ the default `oklch.l` will be used:
13
+
14
+ ```html
15
+ <channel-picker></channel-picker>
16
+ ```
17
+
18
+ You can hide the `color-space` part with CSS to show only the coordinates of the specified space:
19
+
20
+ ```html
21
+ <channel-picker id="picker" value="hsl.h"></channel-picker>
22
+
23
+ <style>
24
+ #picker::part(color-space) {
25
+ display: none;
26
+ }
27
+ </style>
28
+ ```
29
+
30
+ ### Events
31
+
32
+ You can listen to the `valuechange` event to get the current value (the `value` property). When a new color space is selected,
33
+ the channel will be either preserved (if it is in the new space) or reset to the first available one:
34
+
35
+ ```html
36
+ <channel-picker onvaluechange="this.nextElementSibling.textContent = this.value"></channel-picker>
37
+ <output></output>
38
+ ```
39
+
40
+ ### Dynamic
41
+
42
+ All properties are reactive and can be set programmatically:
43
+
44
+ ```html
45
+ <button onclick="this.nextElementSibling.value = 'p3.b'">Switch to P3 Blue</button>
46
+ <channel-picker></channel-picker>
47
+ ```
48
+
49
+ `<channel-picker>` plays nicely with other color elements, like [`<channel-slider>`](../channel-slider):
50
+
51
+ ```html
52
+ <channel-picker id="channel_picker" value="oklch.c"></channel-picker>
53
+ <channel-slider id="channel_slider" color="oklch(50% 50% 180)"></channel-slider>
54
+
55
+ <style>
56
+ #channel_picker::part(color-space) {
57
+ display: none;
58
+ }
59
+ </style>
60
+
61
+ <script>
62
+ function updateSlider() {
63
+ let [space, channel] = channel_picker.value.split(".");
64
+ channel_slider.space = space;
65
+ channel_slider.channel = channel;
66
+ }
67
+
68
+ channel_picker.onvaluechange = updateSlider;
69
+ </script>
70
+ ```
71
+
72
+ ## Reference
73
+
74
+ ### Attributes & Properties
75
+
76
+ | Attribute | Property | Property type | Default value | Description |
77
+ |-----------|----------|---------------|---------------|----------------------------------|
78
+ | `value` | `value` | `string` | `oklch.l` | The current value of the picker. |
79
+
80
+ ### Getters
81
+
82
+ These properties are read-only.
83
+
84
+ | Property | Type | Description |
85
+ |----------|------|-------------|
86
+ | `selectedSpace` | `ColorSpace` | Color space object corresponding to the space picker current value. |
87
+ | `selectedChannel` | `object` | The current channel metadata.|
88
+
89
+ ### Events
90
+
91
+ | Name | Description |
92
+ |-----------------|--------------------------------------------------------------------------------|
93
+ | `input` | Fired when the color space or channel changes due to user action. |
94
+ | `change` | Fired when the color space or channel changes due to user action. |
95
+ | `valuechange` | Fired when the value changes for any reason, and once during initialization. |
96
+
97
+ ### Parts
98
+
99
+ | Name | Description |
100
+ |----------------|------------------------------------------------------|
101
+ | `color-space` | The internal [`<space-picker>`](../space-picker/) element. |
102
+ | `color-space-base` | The internal `<select>` element of [`<space-picker>`](../space-picker/). |
103
+ | `color-channel-base` | The internal `<select>` element. |
@@ -0,0 +1,31 @@
1
+ :host {
2
+ --border-width: 1px;
3
+ --border-color: rgb(0 0 0 / .2);
4
+ --border-radius: .2em;
5
+
6
+ padding: .3em .5em;
7
+
8
+ border: var(--border-width) solid var(--border-color);
9
+ border-radius: var(--border-radius);
10
+ }
11
+
12
+ #picker {
13
+ font: inherit;
14
+ color: inherit;
15
+ background: inherit;
16
+ border: none;
17
+ field-sizing: content;
18
+ cursor: pointer;
19
+
20
+ &:focus:not(:focus-visible) {
21
+ outline: none;
22
+ }
23
+ }
24
+
25
+ #space_picker {
26
+ padding: initial;
27
+ padding-inline-end: .4em;
28
+ border-radius: 0;
29
+ border: none;
30
+ border-inline-end: var(--border-width) solid var(--border-color);
31
+ }
@@ -0,0 +1,168 @@
1
+ import ColorElement from "../common/color-element.js";
2
+ import "../space-picker/space-picker.js";
3
+ import * as dom from "../common/dom.js";
4
+
5
+ const Self = class ChannelPicker extends ColorElement {
6
+ static tagName = "channel-picker";
7
+ static url = import.meta.url;
8
+ static styles = "./channel-picker.css";
9
+ static shadowTemplate = `
10
+ <space-picker part="color-space" exportparts="base: color-space-base" id="space_picker"></space-picker>
11
+ <select id="picker" part="color-channel-base"></select>`;
12
+
13
+ constructor () {
14
+ super();
15
+
16
+ this._el = dom.named(this);
17
+
18
+ // We need to start listening for this event as soon as the <space-picker> is created
19
+ this._el.space_picker.addEventListener("spacechange", this);
20
+
21
+ // We need to render the picker as soon as possible so as not to choke on invalid initial values
22
+ this.#render();
23
+ }
24
+
25
+ connectedCallback () {
26
+ super.connectedCallback?.();
27
+
28
+ this._el.picker.addEventListener("input", this);
29
+ }
30
+
31
+ disconnectedCallback () {
32
+ super.disconnectedCallback?.();
33
+
34
+ this._el.space_picker.removeEventListener("spacechange", this);
35
+ this._el.picker.removeEventListener("input", this);
36
+ }
37
+
38
+ get selectedSpace () {
39
+ return this._el.space_picker.selectedSpace;
40
+ }
41
+
42
+ get selectedChannel () {
43
+ return this.selectedSpace.coords?.[this._el.picker.value];
44
+ }
45
+
46
+ /**
47
+ * Previously selected channels for each space.
48
+ * Keys are space IDs. Values are coords.
49
+ */
50
+ #history = {};
51
+
52
+ #render () {
53
+ let space = this.selectedSpace;
54
+ let coords = space.coords;
55
+
56
+ if (space && !coords) {
57
+ console.warn(`Color space "${ space.name }" has no coordinates.`);
58
+ return;
59
+ }
60
+
61
+ this._el.picker.innerHTML = Object.entries(coords)
62
+ .map(([id, coord]) => `<option value="${ id }">${ coord.name }</option>`)
63
+ .join("\n");
64
+
65
+ let [prevSpace, prevChannel] = this.value?.split(".") ?? [];
66
+ if (prevSpace && prevChannel) {
67
+ let prevChannelName = this._el.space_picker.spaces[prevSpace].coords[prevChannel].name;
68
+ let currentChannelName = coords[prevChannel]?.name;
69
+ if (prevChannelName === currentChannelName) {
70
+ // Preserve the channel if it exists in the new space and has the same name ("b" in "oklab" is not the same as "b" in "p3")
71
+ this._el.picker.value = prevChannel;
72
+ }
73
+ else if (this.#history?.[space.id]) {
74
+ // Otherwise, try to restore the last channel used
75
+ this._el.picker.value = this.#history[space.id];
76
+ }
77
+ }
78
+ }
79
+
80
+ handleEvent (event) {
81
+ if (event.type === "spacechange") {
82
+ this.#render();
83
+ }
84
+
85
+ if ([this._el.space_picker, this._el.picker].includes(event.target)) {
86
+ let value = `${ this._el.space_picker.value }.${ this._el.picker.value }`;
87
+ if (value !== this.value) {
88
+ this.value = value;
89
+ }
90
+ }
91
+ }
92
+
93
+ propChangedCallback ({name, prop, detail: change}) {
94
+ if (name === "value" && this.value) {
95
+ let [space, channel] = (this.value + "").split(".");
96
+
97
+ let currentSpace = this._el.space_picker.value;
98
+ let currentCoord = this._el.picker.value;
99
+ let currentValue = `${ currentSpace }.${ currentCoord }`;
100
+
101
+ if (!space || !channel) {
102
+ console.warn(`Invalid value "${ this.value }". Expected format: "space.channel". Falling back to "${ currentValue }".`);
103
+ this.value = currentValue;
104
+ }
105
+ else {
106
+ let spaces = Object.keys(this._el.space_picker.spaces);
107
+
108
+ if (!spaces.includes(space)) {
109
+ console.warn(`No "${ space }" color space found. Choose one of the following: ${ spaces.join(", ") }. Falling back to "${ currentSpace }".`);
110
+ this.value = currentValue;
111
+ }
112
+ else {
113
+ if (currentSpace !== space) {
114
+ this._el.space_picker.value = space;
115
+ }
116
+
117
+ if (currentCoord && currentCoord !== channel) {
118
+ let coords = Object.keys(this.selectedSpace.coords ?? {});
119
+
120
+ if (coords.includes(channel)) {
121
+ this._el.picker.value = channel;
122
+ }
123
+ else {
124
+ currentCoord = coords.includes(currentCoord) ? currentCoord : coords[0];
125
+
126
+ let message = `Color space "${ space }" has no coordinate "${ channel }".`;
127
+ if (coords.length) {
128
+ message += ` Choose one of the following: ${ coords.join(", ") }.`;
129
+ }
130
+ message += ` Falling back to "${ currentCoord }".`;
131
+ console.warn(message);
132
+ this.value = `${ space }.${ currentCoord }`;
133
+ channel = currentCoord;
134
+ }
135
+ }
136
+
137
+ this.#history[space] = channel;
138
+ }
139
+ }
140
+ }
141
+ }
142
+
143
+ static props = {
144
+ value: {
145
+ default: "oklch.l",
146
+ },
147
+ };
148
+
149
+ static events = {
150
+ change: {
151
+ from () {
152
+ return [this._el.space_picker, this._el.picker];
153
+ },
154
+ },
155
+ input: {
156
+ from () {
157
+ return [this._el.space_picker, this._el.picker];
158
+ },
159
+ },
160
+ valuechange: {
161
+ propchange: "value",
162
+ },
163
+ };
164
+ };
165
+
166
+ Self.define();
167
+
168
+ export default Self;