color-elements 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/README.md +33 -0
  2. package/_build/copy-config.js +90 -0
  3. package/_build/copy-config.json +18 -0
  4. package/_build/eleventy.js +16 -0
  5. package/_data/eleventyComputed.11tydata.js +29 -0
  6. package/_headers +2 -0
  7. package/_redirects +2 -0
  8. package/assets/css/style.css +1 -0
  9. package/assets/js/index.js +15 -0
  10. package/color-gamut/README.md +75 -0
  11. package/color-gamut/color-gamut.js +172 -0
  12. package/color-gamut/style.css +32 -0
  13. package/color-slider/README.md +84 -0
  14. package/color-slider/color-slider.js +79 -0
  15. package/color-slider/style.css +65 -0
  16. package/color-swatch/color-swatch.css +41 -0
  17. package/color-swatch/color-swatch.js +79 -0
  18. package/color-swatch/index.njk +40 -0
  19. package/common/attributes.js +68 -0
  20. package/common/color.js +10 -0
  21. package/css-color/css-color.js +256 -0
  22. package/css-color/index.njk +43 -0
  23. package/css-color/style.css +67 -0
  24. package/elements.11tydata.json +5 -0
  25. package/index.js +4 -0
  26. package/lib/README.md +4 -0
  27. package/lib/colorjs.io/LICENSE +21 -0
  28. package/lib/colorjs.io/README.json +3 -0
  29. package/lib/colorjs.io/README.md +257 -0
  30. package/lib/colorjs.io/colorjs.io/LICENSE +21 -0
  31. package/lib/colorjs.io/colorjs.io/README.json +3 -0
  32. package/lib/colorjs.io/colorjs.io/README.md +257 -0
  33. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +5437 -0
  34. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +1 -0
  35. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +7048 -0
  36. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +1 -0
  37. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +2 -0
  38. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +1 -0
  39. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +2 -0
  40. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +1 -0
  41. package/lib/colorjs.io/colorjs.io/dist/color.cjs +5759 -0
  42. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +1 -0
  43. package/lib/colorjs.io/colorjs.io/dist/color.global.js +5760 -0
  44. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +1 -0
  45. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +7400 -0
  46. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +1 -0
  47. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +2 -0
  48. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +1 -0
  49. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +2 -0
  50. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +1 -0
  51. package/lib/colorjs.io/colorjs.io/dist/color.js +5755 -0
  52. package/lib/colorjs.io/colorjs.io/dist/color.js.map +1 -0
  53. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +7399 -0
  54. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +1 -0
  55. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +7395 -0
  56. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +1 -0
  57. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +2 -0
  58. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +1 -0
  59. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +2 -0
  60. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +1 -0
  61. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +2 -0
  62. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +1 -0
  63. package/lib/colorjs.io/colorjs.io/dist/color.min.js +2 -0
  64. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +1 -0
  65. package/lib/colorjs.io/colorjs.io/package.json +113 -0
  66. package/lib/colorjs.io/colorjs.io/src/CATs.js +131 -0
  67. package/lib/colorjs.io/colorjs.io/src/adapt.js +62 -0
  68. package/lib/colorjs.io/colorjs.io/src/angles.js +44 -0
  69. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +33 -0
  70. package/lib/colorjs.io/colorjs.io/src/clone.js +7 -0
  71. package/lib/colorjs.io/colorjs.io/src/color.js +201 -0
  72. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +102 -0
  73. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +17 -0
  74. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +22 -0
  75. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +20 -0
  76. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +27 -0
  77. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +25 -0
  78. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +6 -0
  79. package/lib/colorjs.io/colorjs.io/src/contrast.js +28 -0
  80. package/lib/colorjs.io/colorjs.io/src/defaults.js +12 -0
  81. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +179 -0
  82. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +7 -0
  83. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +114 -0
  84. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +51 -0
  85. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +24 -0
  86. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +43 -0
  87. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +19 -0
  88. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +27 -0
  89. package/lib/colorjs.io/colorjs.io/src/deltaE.js +19 -0
  90. package/lib/colorjs.io/colorjs.io/src/display.js +83 -0
  91. package/lib/colorjs.io/colorjs.io/src/distance.js +21 -0
  92. package/lib/colorjs.io/colorjs.io/src/equals.js +10 -0
  93. package/lib/colorjs.io/colorjs.io/src/get.js +11 -0
  94. package/lib/colorjs.io/colorjs.io/src/getAll.js +20 -0
  95. package/lib/colorjs.io/colorjs.io/src/getColor.js +36 -0
  96. package/lib/colorjs.io/colorjs.io/src/hooks.js +37 -0
  97. package/lib/colorjs.io/colorjs.io/src/inGamut.js +25 -0
  98. package/lib/colorjs.io/colorjs.io/src/index-fn.js +28 -0
  99. package/lib/colorjs.io/colorjs.io/src/index.js +38 -0
  100. package/lib/colorjs.io/colorjs.io/src/interpolation.js +222 -0
  101. package/lib/colorjs.io/colorjs.io/src/keywords.js +158 -0
  102. package/lib/colorjs.io/colorjs.io/src/luminance.js +27 -0
  103. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +44 -0
  104. package/lib/colorjs.io/colorjs.io/src/parse.js +198 -0
  105. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +64 -0
  106. package/lib/colorjs.io/colorjs.io/src/serialize.js +86 -0
  107. package/lib/colorjs.io/colorjs.io/src/set.js +33 -0
  108. package/lib/colorjs.io/colorjs.io/src/setAll.js +12 -0
  109. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +86 -0
  110. package/lib/colorjs.io/colorjs.io/src/space.js +440 -0
  111. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +28 -0
  112. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +11 -0
  113. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +76 -0
  114. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +54 -0
  115. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +362 -0
  116. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +157 -0
  117. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +130 -0
  118. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +91 -0
  119. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +162 -0
  120. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +65 -0
  121. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +58 -0
  122. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +133 -0
  123. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +7 -0
  124. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +29 -0
  125. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +8 -0
  126. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +118 -0
  127. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +53 -0
  128. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +74 -0
  129. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +74 -0
  130. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +67 -0
  131. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +68 -0
  132. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +85 -0
  133. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +74 -0
  134. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +68 -0
  135. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +22 -0
  136. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +13 -0
  137. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +28 -0
  138. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +19 -0
  139. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +27 -0
  140. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +31 -0
  141. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +49 -0
  142. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +37 -0
  143. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +30 -0
  144. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +127 -0
  145. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +40 -0
  146. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +12 -0
  147. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +18 -0
  148. package/lib/colorjs.io/colorjs.io/src/to.js +26 -0
  149. package/lib/colorjs.io/colorjs.io/src/toGamut.js +310 -0
  150. package/lib/colorjs.io/colorjs.io/src/util.js +254 -0
  151. package/lib/colorjs.io/colorjs.io/src/variations.js +14 -0
  152. package/lib/colorjs.io/colorjs.io/types/index.d.cts +4 -0
  153. package/lib/colorjs.io/colorjs.io/types/index.d.ts +42 -0
  154. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +13 -0
  155. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +12 -0
  156. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +7 -0
  157. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +7 -0
  158. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +3 -0
  159. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +160 -0
  160. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +5 -0
  161. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +5 -0
  162. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +5 -0
  163. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +5 -0
  164. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +5 -0
  165. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +5 -0
  166. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +11 -0
  167. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +12 -0
  168. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +2 -0
  169. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +11 -0
  170. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +5 -0
  171. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +9 -0
  172. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +5 -0
  173. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +5 -0
  174. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +5 -0
  175. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +5 -0
  176. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +14 -0
  177. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +12 -0
  178. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +17 -0
  179. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +8 -0
  180. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +3 -0
  181. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +4 -0
  182. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +7 -0
  183. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +4 -0
  184. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +52 -0
  185. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +8 -0
  186. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +1 -0
  187. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +63 -0
  188. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +125 -0
  189. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +77 -0
  190. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +2 -0
  191. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +10 -0
  192. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +9 -0
  193. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +16 -0
  194. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +10 -0
  195. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +13 -0
  196. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +18 -0
  197. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +14 -0
  198. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +1 -0
  199. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +69 -0
  200. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +143 -0
  201. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +3 -0
  202. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +3 -0
  203. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +3 -0
  204. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +3 -0
  205. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +3 -0
  206. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +3 -0
  207. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +3 -0
  208. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +3 -0
  209. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +3 -0
  210. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +3 -0
  211. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +9 -0
  212. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +29 -0
  213. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +4 -0
  214. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +3 -0
  215. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +3 -0
  216. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +3 -0
  217. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +3 -0
  218. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +3 -0
  219. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +3 -0
  220. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +3 -0
  221. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +3 -0
  222. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +3 -0
  223. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +3 -0
  224. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +3 -0
  225. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +3 -0
  226. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +3 -0
  227. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +3 -0
  228. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +3 -0
  229. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +3 -0
  230. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +3 -0
  231. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +3 -0
  232. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +3 -0
  233. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +3 -0
  234. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +3 -0
  235. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +3 -0
  236. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +14 -0
  237. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +45 -0
  238. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +58 -0
  239. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +5 -0
  240. package/lib/colorjs.io/dist/color-fn.cjs +5437 -0
  241. package/lib/colorjs.io/dist/color-fn.cjs.map +1 -0
  242. package/lib/colorjs.io/dist/color-fn.legacy.cjs +7048 -0
  243. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +1 -0
  244. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +2 -0
  245. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +1 -0
  246. package/lib/colorjs.io/dist/color-fn.min.cjs +2 -0
  247. package/lib/colorjs.io/dist/color-fn.min.cjs.map +1 -0
  248. package/lib/colorjs.io/dist/color.cjs +5759 -0
  249. package/lib/colorjs.io/dist/color.cjs.map +1 -0
  250. package/lib/colorjs.io/dist/color.global.js +5760 -0
  251. package/lib/colorjs.io/dist/color.global.js.map +1 -0
  252. package/lib/colorjs.io/dist/color.global.legacy.js +7400 -0
  253. package/lib/colorjs.io/dist/color.global.legacy.js.map +1 -0
  254. package/lib/colorjs.io/dist/color.global.legacy.min.js +2 -0
  255. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +1 -0
  256. package/lib/colorjs.io/dist/color.global.min.js +2 -0
  257. package/lib/colorjs.io/dist/color.global.min.js.map +1 -0
  258. package/lib/colorjs.io/dist/color.js +5755 -0
  259. package/lib/colorjs.io/dist/color.js.map +1 -0
  260. package/lib/colorjs.io/dist/color.legacy.cjs +7399 -0
  261. package/lib/colorjs.io/dist/color.legacy.cjs.map +1 -0
  262. package/lib/colorjs.io/dist/color.legacy.js +7395 -0
  263. package/lib/colorjs.io/dist/color.legacy.js.map +1 -0
  264. package/lib/colorjs.io/dist/color.legacy.min.cjs +2 -0
  265. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +1 -0
  266. package/lib/colorjs.io/dist/color.legacy.min.js +2 -0
  267. package/lib/colorjs.io/dist/color.legacy.min.js.map +1 -0
  268. package/lib/colorjs.io/dist/color.min.cjs +2 -0
  269. package/lib/colorjs.io/dist/color.min.cjs.map +1 -0
  270. package/lib/colorjs.io/dist/color.min.js +2 -0
  271. package/lib/colorjs.io/dist/color.min.js.map +1 -0
  272. package/lib/colorjs.io/package.json +113 -0
  273. package/lib/colorjs.io/src/CATs.js +131 -0
  274. package/lib/colorjs.io/src/adapt.js +62 -0
  275. package/lib/colorjs.io/src/angles.js +44 -0
  276. package/lib/colorjs.io/src/chromaticity.js +33 -0
  277. package/lib/colorjs.io/src/clone.js +7 -0
  278. package/lib/colorjs.io/src/color.js +201 -0
  279. package/lib/colorjs.io/src/contrast/APCA.js +102 -0
  280. package/lib/colorjs.io/src/contrast/Lstar.js +17 -0
  281. package/lib/colorjs.io/src/contrast/Michelson.js +22 -0
  282. package/lib/colorjs.io/src/contrast/WCAG21.js +20 -0
  283. package/lib/colorjs.io/src/contrast/Weber.js +27 -0
  284. package/lib/colorjs.io/src/contrast/deltaPhi.js +25 -0
  285. package/lib/colorjs.io/src/contrast/index.js +6 -0
  286. package/lib/colorjs.io/src/contrast.js +28 -0
  287. package/lib/colorjs.io/src/defaults.js +12 -0
  288. package/lib/colorjs.io/src/deltaE/deltaE2000.js +179 -0
  289. package/lib/colorjs.io/src/deltaE/deltaE76.js +7 -0
  290. package/lib/colorjs.io/src/deltaE/deltaECMC.js +114 -0
  291. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +51 -0
  292. package/lib/colorjs.io/src/deltaE/deltaEITP.js +24 -0
  293. package/lib/colorjs.io/src/deltaE/deltaEJz.js +43 -0
  294. package/lib/colorjs.io/src/deltaE/deltaEOK.js +19 -0
  295. package/lib/colorjs.io/src/deltaE/index.js +27 -0
  296. package/lib/colorjs.io/src/deltaE.js +19 -0
  297. package/lib/colorjs.io/src/display.js +83 -0
  298. package/lib/colorjs.io/src/distance.js +21 -0
  299. package/lib/colorjs.io/src/equals.js +10 -0
  300. package/lib/colorjs.io/src/get.js +11 -0
  301. package/lib/colorjs.io/src/getAll.js +20 -0
  302. package/lib/colorjs.io/src/getColor.js +36 -0
  303. package/lib/colorjs.io/src/hooks.js +37 -0
  304. package/lib/colorjs.io/src/inGamut.js +25 -0
  305. package/lib/colorjs.io/src/index-fn.js +28 -0
  306. package/lib/colorjs.io/src/index.js +38 -0
  307. package/lib/colorjs.io/src/interpolation.js +222 -0
  308. package/lib/colorjs.io/src/keywords.js +158 -0
  309. package/lib/colorjs.io/src/luminance.js +27 -0
  310. package/lib/colorjs.io/src/multiply-matrices.js +44 -0
  311. package/lib/colorjs.io/src/parse.js +198 -0
  312. package/lib/colorjs.io/src/rgbspace.js +64 -0
  313. package/lib/colorjs.io/src/serialize.js +86 -0
  314. package/lib/colorjs.io/src/set.js +33 -0
  315. package/lib/colorjs.io/src/setAll.js +12 -0
  316. package/lib/colorjs.io/src/space-accessors.js +86 -0
  317. package/lib/colorjs.io/src/space.js +440 -0
  318. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +28 -0
  319. package/lib/colorjs.io/src/spaces/a98rgb.js +11 -0
  320. package/lib/colorjs.io/src/spaces/acescc.js +76 -0
  321. package/lib/colorjs.io/src/spaces/acescg.js +54 -0
  322. package/lib/colorjs.io/src/spaces/cam16.js +362 -0
  323. package/lib/colorjs.io/src/spaces/hct.js +157 -0
  324. package/lib/colorjs.io/src/spaces/hpluv.js +130 -0
  325. package/lib/colorjs.io/src/spaces/hsl.js +91 -0
  326. package/lib/colorjs.io/src/spaces/hsluv.js +162 -0
  327. package/lib/colorjs.io/src/spaces/hsv.js +65 -0
  328. package/lib/colorjs.io/src/spaces/hwb.js +58 -0
  329. package/lib/colorjs.io/src/spaces/ictcp.js +133 -0
  330. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +7 -0
  331. package/lib/colorjs.io/src/spaces/index-fn.js +29 -0
  332. package/lib/colorjs.io/src/spaces/index.js +8 -0
  333. package/lib/colorjs.io/src/spaces/jzazbz.js +118 -0
  334. package/lib/colorjs.io/src/spaces/jzczhz.js +53 -0
  335. package/lib/colorjs.io/src/spaces/lab-d65.js +74 -0
  336. package/lib/colorjs.io/src/spaces/lab.js +74 -0
  337. package/lib/colorjs.io/src/spaces/lch.js +67 -0
  338. package/lib/colorjs.io/src/spaces/lchuv.js +68 -0
  339. package/lib/colorjs.io/src/spaces/luv.js +85 -0
  340. package/lib/colorjs.io/src/spaces/oklab.js +74 -0
  341. package/lib/colorjs.io/src/spaces/oklch.js +68 -0
  342. package/lib/colorjs.io/src/spaces/p3-linear.js +22 -0
  343. package/lib/colorjs.io/src/spaces/p3.js +13 -0
  344. package/lib/colorjs.io/src/spaces/prophoto-linear.js +28 -0
  345. package/lib/colorjs.io/src/spaces/prophoto.js +19 -0
  346. package/lib/colorjs.io/src/spaces/rec2020-linear.js +27 -0
  347. package/lib/colorjs.io/src/spaces/rec2020.js +31 -0
  348. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +49 -0
  349. package/lib/colorjs.io/src/spaces/rec2100-pq.js +37 -0
  350. package/lib/colorjs.io/src/spaces/srgb-linear.js +30 -0
  351. package/lib/colorjs.io/src/spaces/srgb.js +127 -0
  352. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +40 -0
  353. package/lib/colorjs.io/src/spaces/xyz-d50.js +12 -0
  354. package/lib/colorjs.io/src/spaces/xyz-d65.js +18 -0
  355. package/lib/colorjs.io/src/to.js +26 -0
  356. package/lib/colorjs.io/src/toGamut.js +310 -0
  357. package/lib/colorjs.io/src/util.js +254 -0
  358. package/lib/colorjs.io/src/variations.js +14 -0
  359. package/lib/colorjs.io/types/index.d.cts +4 -0
  360. package/lib/colorjs.io/types/index.d.ts +42 -0
  361. package/lib/colorjs.io/types/src/CATs.d.ts +13 -0
  362. package/lib/colorjs.io/types/src/adapt.d.ts +12 -0
  363. package/lib/colorjs.io/types/src/angles.d.ts +7 -0
  364. package/lib/colorjs.io/types/src/chromaticity.d.ts +7 -0
  365. package/lib/colorjs.io/types/src/clone.d.ts +3 -0
  366. package/lib/colorjs.io/types/src/color.d.ts +160 -0
  367. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +5 -0
  368. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +5 -0
  369. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +5 -0
  370. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +5 -0
  371. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +5 -0
  372. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +5 -0
  373. package/lib/colorjs.io/types/src/contrast/index.d.ts +11 -0
  374. package/lib/colorjs.io/types/src/contrast.d.ts +12 -0
  375. package/lib/colorjs.io/types/src/defaults.d.ts +2 -0
  376. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +11 -0
  377. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +5 -0
  378. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +9 -0
  379. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +5 -0
  380. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +5 -0
  381. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +5 -0
  382. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +5 -0
  383. package/lib/colorjs.io/types/src/deltaE/index.d.ts +14 -0
  384. package/lib/colorjs.io/types/src/deltaE.d.ts +12 -0
  385. package/lib/colorjs.io/types/src/display.d.ts +17 -0
  386. package/lib/colorjs.io/types/src/distance.d.ts +8 -0
  387. package/lib/colorjs.io/types/src/equals.d.ts +3 -0
  388. package/lib/colorjs.io/types/src/get.d.ts +4 -0
  389. package/lib/colorjs.io/types/src/getAll.d.ts +7 -0
  390. package/lib/colorjs.io/types/src/getColor.d.ts +4 -0
  391. package/lib/colorjs.io/types/src/hooks.d.ts +52 -0
  392. package/lib/colorjs.io/types/src/inGamut.d.ts +8 -0
  393. package/lib/colorjs.io/types/src/index-fn.d.cts +1 -0
  394. package/lib/colorjs.io/types/src/index-fn.d.ts +63 -0
  395. package/lib/colorjs.io/types/src/index.d.ts +125 -0
  396. package/lib/colorjs.io/types/src/interpolation.d.ts +77 -0
  397. package/lib/colorjs.io/types/src/keywords.d.ts +2 -0
  398. package/lib/colorjs.io/types/src/luminance.d.ts +10 -0
  399. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +9 -0
  400. package/lib/colorjs.io/types/src/parse.d.ts +16 -0
  401. package/lib/colorjs.io/types/src/rgbspace.d.ts +10 -0
  402. package/lib/colorjs.io/types/src/serialize.d.ts +13 -0
  403. package/lib/colorjs.io/types/src/set.d.ts +18 -0
  404. package/lib/colorjs.io/types/src/setAll.d.ts +14 -0
  405. package/lib/colorjs.io/types/src/space-accessors.d.ts +1 -0
  406. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +69 -0
  407. package/lib/colorjs.io/types/src/space.d.ts +143 -0
  408. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +3 -0
  409. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +3 -0
  410. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +3 -0
  411. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +3 -0
  412. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +3 -0
  413. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +3 -0
  414. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +3 -0
  415. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +3 -0
  416. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +3 -0
  417. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +3 -0
  418. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +9 -0
  419. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +29 -0
  420. package/lib/colorjs.io/types/src/spaces/index.d.ts +4 -0
  421. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +3 -0
  422. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +3 -0
  423. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +3 -0
  424. package/lib/colorjs.io/types/src/spaces/lab.d.ts +3 -0
  425. package/lib/colorjs.io/types/src/spaces/lch.d.ts +3 -0
  426. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +3 -0
  427. package/lib/colorjs.io/types/src/spaces/luv.d.ts +3 -0
  428. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +3 -0
  429. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +3 -0
  430. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +3 -0
  431. package/lib/colorjs.io/types/src/spaces/p3.d.ts +3 -0
  432. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +3 -0
  433. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +3 -0
  434. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +3 -0
  435. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +3 -0
  436. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +3 -0
  437. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +3 -0
  438. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +3 -0
  439. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +3 -0
  440. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +3 -0
  441. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +3 -0
  442. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +3 -0
  443. package/lib/colorjs.io/types/src/to.d.ts +14 -0
  444. package/lib/colorjs.io/types/src/toGamut.d.ts +45 -0
  445. package/lib/colorjs.io/types/src/util.d.ts +58 -0
  446. package/lib/colorjs.io/types/src/variations.d.ts +5 -0
  447. package/logo.svg +159 -0
  448. package/package.json +41 -0
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # Color.js Web Components
2
+
3
+ These are some highly experimental color-related web components.
4
+ Use at your own risk, the API can change at any point.
5
+
6
+ ## Usage
7
+
8
+ To include all components at once:
9
+
10
+ ```html
11
+ <script src="https://colorjs.io/elements/index.js"></script>
12
+ ```
13
+
14
+ To cherry-pick individual components, follow the instructions within the component’s page, but it generally looks like this:
15
+
16
+ ```html
17
+ <script src="https://colorjs.io/elements/COMPONENT_NAME/COMPONENT_NAME.js"></script>
18
+ ```
19
+
20
+ or if using a bundler:
21
+
22
+ ```js
23
+ import "color-elements";
24
+ ```
25
+
26
+ Then just start using it!
27
+
28
+ ## Components
29
+
30
+ - [`<css-color>`](./css-color/)
31
+ - [`<color-swatch>`](./color-swatch/)
32
+ - [`<color-gamut>`](./color-gamut/)
33
+ - [`<color-slider>`](./color-slider/)
@@ -0,0 +1,90 @@
1
+ import { exec } from 'child_process';
2
+ import { writeFileSync, readFileSync } from "fs";
3
+ import config from "./copy-config.json" with { type: "json" };
4
+
5
+ const TEMP_REPO = "_build/.colorjs.io";
6
+
7
+ // Cleanup past attempts
8
+ exec(`rm -rf ${ TEMP_REPO }`);
9
+
10
+ // Copy files from source repo
11
+ let commands = [
12
+ `git clone ${ config.source } ${ TEMP_REPO }`,
13
+ ...config.paths.map(path => {
14
+ let [current_path, new_path] = Array.isArray(path) ? path : [path, path];
15
+
16
+ return `rm -rf ./${new_path} && cp -r ${TEMP_REPO}/${ current_path } ./${ new_path }`;
17
+ }),
18
+ ];
19
+
20
+ await new Promise(resolve => {
21
+ exec(commands.join(" && "), (err, stdout, stderr) => {
22
+ // Cleanup
23
+ exec(`rm -rf ${ TEMP_REPO }`);
24
+
25
+ if (err) {
26
+ console.error(err);
27
+ process.exit(1);
28
+ }
29
+ else {
30
+ console.log(stdout);
31
+ resolve();
32
+ }
33
+ });
34
+ });
35
+
36
+ // Make sure copied paths are in .gitignore
37
+ let gitignore = readFileSync(".gitignore", "utf8").split("\n");
38
+ let paths_added_to_gitignore = [];
39
+ let index;
40
+
41
+ for (let path of config.paths) {
42
+ let [current_path, new_path] = Array.isArray(path) ? path : [path, path];
43
+ let i = gitignore.indexOf(new_path);
44
+ if (i > -1) {
45
+ index = i;
46
+ }
47
+ else { // not found
48
+ gitignore.push(new_path);
49
+ paths_added_to_gitignore.push(new_path);
50
+ }
51
+ }
52
+
53
+ if (paths_added_to_gitignore.length > 0) {
54
+ writeFileSync(".gitignore", gitignore.join("\n"));
55
+ console.log("Added paths to .gitignore: " + paths_added_to_gitignore.join(", "));
56
+ }
57
+
58
+ let source_package_json = JSON.parse(readFileSync(`${ TEMP_REPO }/package.json`, "utf8"));
59
+ let package_json = JSON.parse(readFileSync(`package.json`, "utf8"));
60
+
61
+ // Copy npm scripts
62
+ let scripts_copied = [];
63
+
64
+ for (let script of config.scripts) {
65
+ if (source_package_json.scripts[script] && package_json.scripts[script] !== source_package_json.scripts[script]) {
66
+ package_json.scripts[script] = source_package_json.scripts[script];
67
+ scripts_copied.push(script);
68
+ }
69
+ }
70
+
71
+ if (scripts_copied.length > 0) {
72
+ console.warn("Copying npm scripts: " + scripts_copied.join(", "));
73
+ writeFileSync("package.json", JSON.stringify(package_json, null, 2));
74
+ }
75
+
76
+ // Install missing packages
77
+ if (source_package_json.devDependencies) {
78
+ let missing_packages = [];
79
+
80
+ for (let name of config.packages) {
81
+ if (source_package_json.devDependencies[name] && !package_json.devDependencies?.[name]) {
82
+ missing_packages.push(name);
83
+ }
84
+ }
85
+
86
+ if (missing_packages.length) {
87
+ console.warn(`Installing packages: ${ missing_packages.join(", ") }`);
88
+ exec(`npm install -D ${ missing_packages.join(" ") }`);
89
+ }
90
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "source": "https://github.com/color-js/color.js",
3
+ "paths": [
4
+ "_includes/partials",
5
+ "_includes/page.njk",
6
+ "_includes/plain.njk",
7
+ "_data/eleventyComputed.js",
8
+ ["_build/eleventy.js", "_build/eleventy-original.js"],
9
+ "_build/filters.js"
10
+ ],
11
+ "scripts": [
12
+ "build:html",
13
+ "watch:html"
14
+ ],
15
+ "packages": [
16
+ "@11ty/eleventy"
17
+ ]
18
+ }
@@ -0,0 +1,16 @@
1
+ import configOriginal from "./eleventy-original.js";
2
+
3
+ let data = {
4
+ "permalink": "{{ page.filePathStem | replace('README', '') | replace('index', '') }}/index.html",
5
+ "body_classes": "cn-ignore"
6
+ };
7
+
8
+ export default config => {
9
+ let ret = configOriginal(config);
10
+
11
+ for (let prop in data) {
12
+ config.addGlobalData(prop, data[prop]);
13
+ }
14
+
15
+ return ret;
16
+ };
@@ -0,0 +1,29 @@
1
+ export default {
2
+ // Extract default title from content
3
+ foo (data) {
4
+ // if (data.title) {
5
+ // return data.title;
6
+ // }
7
+
8
+ // let ext = data.page.inputPath.split(".").pop();
9
+
10
+ // // Title must appear in first 1000 chars
11
+ // let content = data.page.rawInput.slice(0, 1000);
12
+ // let ret;
13
+
14
+ // if (ext === "md") {
15
+ // // First heading
16
+ // ret = content.match(/^#+\s+(.*)/m)?.[1];
17
+ // }
18
+ // else if (ext === "njk") {
19
+ // // First level 1 heading
20
+ // ret = content.match(/<h1>(.*)<\/h1>/)?.[1];
21
+ // }
22
+
23
+ // if (ret) {
24
+ // ret = ret.replace(/&lt;/g, "<").replace(/&gt;/g, ">");
25
+ // }
26
+
27
+ // return ret;
28
+ },
29
+ };
package/_headers ADDED
@@ -0,0 +1,2 @@
1
+ /*
2
+ Access-Control-Allow-Origin: *
package/_redirects ADDED
@@ -0,0 +1,2 @@
1
+ node_modules/* lib/:splat 200
2
+ assets/* https://colorjs.io/assets/:splat 200
@@ -0,0 +1 @@
1
+ @import url("https://colorjs.io/assets/css/style.css");
@@ -0,0 +1,15 @@
1
+ import "https://colorjs.io/assets/js/index.js";
2
+
3
+ import "https://colorjs.io/assets/js//prism.js";
4
+ // import "https://blissfuljs.com/bliss.shy.js";
5
+ // import "https://live.prismjs.com/src/prism-live.mjs?load=javascript";
6
+ // import "https://colorjs.io/notebook/color-notebook.js";
7
+ import "https://colorjs.io/assets/js/colors.js";
8
+ import { styleCallouts } from "https://colorjs.io/assets/js/enhance.js";
9
+
10
+ styleCallouts();
11
+
12
+ let root = document.documentElement;
13
+ document.addEventListener("scroll", evt => {
14
+ root.style.setProperty("--scrolltop", root.scrollTop);
15
+ }, {passive: true});
@@ -0,0 +1,75 @@
1
+ <script src="color-gamut.js" type="module"></script>
2
+ # &lt;color-gamut>
3
+
4
+ Gamut indicator. Used internally by `<css-color>`
5
+
6
+ ## Usage
7
+
8
+ Static (only read once):
9
+ ```html
10
+ <color-gamut>red</color-gamut>
11
+ ```
12
+
13
+ Produces <color-gamut>red</color-gamut>
14
+
15
+ Dynamic:
16
+ ```js
17
+ colorGamutElement.color = colorValue;
18
+ ```
19
+
20
+ ## Demo
21
+ <style>
22
+ #params {
23
+ background: linear-gradient(to right, var(--start-color), var(--end-color)) no-repeat top / 100% 1em;
24
+ padding-top: 1.5em;
25
+ }
26
+
27
+ #colors_container_h {
28
+ display: flex;
29
+ height: 1em;
30
+ margin-bottom: 1em;
31
+
32
+ color-gamut {
33
+ flex: 1;
34
+ border-radius: 0;
35
+
36
+ &::part(label) {
37
+ display: none;
38
+ }
39
+ }
40
+ }
41
+ </style>
42
+ <form id=params>
43
+ <code>oklch(<input type=number id=l value=50>% <input type=number id=min_c value=30>&ndash;<input type=number id=max_c value=40>% <input type=number id=h value=50>)</code>
44
+ <p><label>Chroma increments: <input type=number id=c_step value="0.2" min="0">%</label>
45
+ </form>
46
+
47
+ <script type=module>
48
+ params.addEventListener("input", e => {
49
+ let c_range = {min: Number(min_c.value), max: Number(max_c.value)};
50
+ let step = Number(c_step.value);
51
+ let colors = [];
52
+ let start = `oklch(${l.value}% ${c_range.min.toLocaleString("en")}% ${h.value})`;
53
+ let end = `oklch(${l.value}% ${c_range.max.toLocaleString("en")}% ${h.value})`;
54
+
55
+ params.style.setProperty("--start-color", start);
56
+ params.style.setProperty("--end-color", end);
57
+
58
+ for (let c = c_range.min; c<= c_range.max; c+=step) {
59
+ colors.push(`oklch(${l.value}% ${c.toLocaleString("en")}% ${h.value})`);
60
+ }
61
+
62
+ let html = colors.map(color => `
63
+ <color-gamut title="${color}">${color}</color-gamut>`).join("\n");
64
+ colors_container_h.innerHTML = html;
65
+ colors_container.innerHTML = html;
66
+ });
67
+ params.dispatchEvent(new Event("input"));
68
+ </script>
69
+
70
+ No label:
71
+
72
+ <div id=colors_container_h></div>
73
+
74
+ Default display:
75
+ <div id=colors_container></div>
@@ -0,0 +1,172 @@
1
+ import Color from "../common/color.js";
2
+
3
+ let styleURL = new URL("./style.css", import.meta.url);
4
+
5
+ export default class ColorGamut extends HTMLElement {
6
+ #label;
7
+
8
+ constructor () {
9
+ super();
10
+ this.attachShadow({mode: "open"});
11
+ this.shadowRoot.innerHTML = `
12
+ <style>@import url("${ styleURL }")</style>
13
+ <span id="label" part="label"></span>
14
+ `;
15
+
16
+ this.gamuts = this.gamuts ?? this.getAttribute("gamuts") ?? this.constructor.defaultGamuts;
17
+ }
18
+
19
+ connectedCallback () {
20
+ this.#initialize();
21
+ this.#render();
22
+ }
23
+
24
+ #initialized;
25
+ #initialize () {
26
+ if (this.#initialized) {
27
+ return;
28
+ }
29
+
30
+ this.#initialized = true;
31
+
32
+ let textContent = this.textContent;
33
+
34
+ if (textContent) {
35
+ this.color ??= this.textContent;
36
+ }
37
+ }
38
+
39
+ #render () {
40
+ if (!this.isConnected) {
41
+ return;
42
+ }
43
+
44
+ if (!this.#label) {
45
+ this.#label = this.shadowRoot.querySelector("#label");
46
+ }
47
+
48
+ this.#updateGamut();
49
+ }
50
+
51
+ #gamut;
52
+ get gamut () {
53
+ return this.#gamut?.id;
54
+ }
55
+
56
+ get gamutLabel () {
57
+ return this.#gamut?.label ?? "";
58
+ }
59
+
60
+ #gamuts;
61
+ get gamuts () {
62
+ return this.#gamuts;
63
+ }
64
+
65
+ set gamuts (gamuts) {
66
+
67
+ this.#gamuts = this.constructor.parseGamuts(gamuts);
68
+ }
69
+
70
+ #updateGamut () {
71
+ if (!this.#color) {
72
+ this.#setGamut();
73
+ return;
74
+ }
75
+
76
+ let gamut = this.gamuts.find(gamut => gamut.id === "none" || this.#color.inGamut(gamut.id));
77
+ this.#setGamut(gamut);
78
+ }
79
+
80
+ #setGamut (gamut) {
81
+ let oldGamut = this.#gamut;
82
+
83
+ if (gamut === oldGamut) {
84
+ return;
85
+ }
86
+
87
+ this.#gamut = gamut;
88
+ this.#label.textContent = this.#gamut?.label ?? "";
89
+
90
+ if (!gamut) {
91
+ this.removeAttribute("gamut");
92
+ this.removeAttribute("level");
93
+ this.style.removeProperty("--gamut-level");
94
+
95
+ return;
96
+ }
97
+
98
+ this.setAttribute("gamut", gamut.id);
99
+ this.setAttribute("level", gamut.level);
100
+ this.style.setProperty("--gamut-level", gamut.level);
101
+
102
+ this.dispatchEvent(new CustomEvent("gamutchange", {
103
+ detail: {oldGamut, gamut},
104
+ bubbles: true,
105
+ }));
106
+ }
107
+
108
+ #color;
109
+ get color () {
110
+ return this.#color;
111
+ }
112
+
113
+ set color (color) {
114
+ this.#color = Color.get(color);
115
+ this.#render();
116
+ }
117
+
118
+ static observedAttributes = ["gamuts"];
119
+
120
+ attributeChangedCallback (name, oldValue, newValue) {
121
+ if (!name && this.hasAttribute("gamuts") || name === "gamuts") {
122
+ newValue ??= this.getAttribute("gamuts");
123
+
124
+ if (oldValue !== newValue) {
125
+ this.gamuts = this.constructor.parseGamuts(newValue ?? this.constructor.defaultGamuts);
126
+ this.#render();
127
+ }
128
+ }
129
+ }
130
+
131
+ static defaultGamuts = ["srgb", "p3", "rec2020", "prophoto"];
132
+
133
+ static parseGamuts (gamuts) {
134
+ if (!gamuts) {
135
+ return [];
136
+ }
137
+
138
+ if (typeof gamuts === "string") {
139
+ gamuts = gamuts.trim().split(/\s*,\s*/);
140
+ }
141
+ else if (!Array.isArray(gamuts) && typeof gamuts === "object") {
142
+ // Object
143
+ return Object.entries(gamuts).map(([id, label]) => {id, label});
144
+ }
145
+
146
+ let ret = gamuts.map((gamut, level) => {
147
+ if (gamut?.id && "label" in gamut) {
148
+ // Already in the correct format
149
+ return gamut;
150
+ }
151
+
152
+ gamut = gamut.trim().split(/\s*:\s*/);
153
+ let id = gamut[0];
154
+ let label = gamut[1] ?? Color.spaces[gamut]?.name ?? id;
155
+ return {id, label, level};
156
+ });
157
+
158
+ if (!ret.find(gamut => gamut.id === "none")) {
159
+ ret.push({
160
+ id: "none",
161
+ get label () {
162
+ return ret[this.level - 1].label + "+";
163
+ },
164
+ level: ret.length,
165
+ });
166
+ }
167
+
168
+ return ret;
169
+ }
170
+ }
171
+
172
+ customElements.define("color-gamut", ColorGamut);
@@ -0,0 +1,32 @@
1
+ :host {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ border-radius: .2em;
6
+ color: white;
7
+ background: var(--gamut-color, var(--color-neutral-60, hsl(220 10% 60%)));
8
+ font-weight: bold;
9
+ padding-inline: .4em;
10
+ line-height: 1.4;
11
+ }
12
+
13
+ :host([level="0"]) {
14
+ --gamut-color: var(--color-green, yellowgreen);
15
+ }
16
+
17
+ :host([level="1"]) {
18
+ color: black;
19
+ --gamut-color: var(--color-yellow, gold);
20
+ }
21
+
22
+ :host([level="2"]) {
23
+ --gamut-color: var(--color-orange, orange);
24
+ }
25
+
26
+ :host([level="3"]) {
27
+ --gamut-color: var(--color-red, red);
28
+ }
29
+
30
+ :host([gamut="none"]) {
31
+ --gamut-color: var(--color-red-dark, #b00);
32
+ }
@@ -0,0 +1,84 @@
1
+ # `&lt;color-slider>`
2
+ <script src="color-slider.js" type="module"></script>
3
+
4
+ Creates a slider with a gradient background, primarily intended for color picking.
5
+
6
+ ## Installation
7
+
8
+ The quick and dirty way is straight from the CDN (kindly provided by [Netlify](https://www.netlify.com/)):
9
+
10
+ ```html
11
+ <script src="https://colorjs.io/elements/color-slider/color-slider.js" type="module"></script>
12
+ ```
13
+
14
+ You can also install it via npm.
15
+ There is no separate package currently, you just install the whole `colorjs.io` package:
16
+
17
+ ```bash
18
+ npm install colorjs.io
19
+ ```
20
+
21
+ Then, you use the `colorjs.io/elements` import:
22
+
23
+ ```js
24
+ import {ColorSlider} from "colorjs.io/elements";
25
+ ```
26
+
27
+ ## Usage
28
+
29
+ There are many ways to use this component, depending on what you need.
30
+ E.g. if all you need is styling sliders with arbitrary gradients you don’t even need a component,
31
+ you can just use the CSS file and a few classes and CSS variables.
32
+
33
+ The actual component does a lot more:
34
+ - It takes care of applying the right `min` and `max` values to the slider
35
+ - It automatically generates the start and end colors,
36
+ - It provides a `color` property with the actual color value.
37
+ - It can provide an editable tooltip as a tooltip that both shows and edits the current value
38
+
39
+ <script src="./color-slider.js" type="module"></script>
40
+ <style>@import url("style.css");</style>
41
+
42
+ ### Zero hassle, little control
43
+
44
+ You get the most value out of this component when using it to control a single component:
45
+
46
+ ```html
47
+ <color-slider space="oklch" component="h" colorvalue="oklch(50 50% 180)"></color-slider>
48
+ ```
49
+
50
+ This will automatically use the whole reference range of that component in the specified color space,
51
+ and use the current value of the component as the starting value (unless `value` is also specified).
52
+ If you don’t want to show the whole range you can also specify `min` and `max` attributes.
53
+
54
+ ```html
55
+ <color-slider space="oklch" component="l" colorvalue="red" min=".3" max=".95"></color-slider>
56
+ ```
57
+
58
+ ### Minimal hassle, more control
59
+
60
+ If your use case does not involve interpolating across a single component, or you already have the colors you want to plot from and to, you can also do that:
61
+
62
+ ```html
63
+ <color-slider space="oklch" colormin="gold" colormax="oklch(65% 0.15 210)"></color-slider>
64
+ ```
65
+
66
+ ### Styling-only usage
67
+
68
+ If you just want the styling and are fine dealing with the lower level details on your own, you *can* just use the CSS file:
69
+
70
+ ```css
71
+ @import url("https://colorjs.io/elements/color-slider/style.css");
72
+ ```
73
+
74
+ Then use a `color-slider` class on your slider element, and the following CSS variables:
75
+
76
+ - `--start-color`: the start color of the gradient
77
+ - `--end-color`: the end color of the gradient
78
+ - `--color-space`: the color space of the gradient (default: `oklch`)
79
+ - `--intermediate-colors`: _(optional)_ any intermediate colors.
80
+
81
+ OR:
82
+ - `--gradient` if you want to override the whole gradient.
83
+
84
+
@@ -0,0 +1,79 @@
1
+ /*
2
+ <label v-for="(meta, i) in coord_meta" class="color-slider-label">
3
+ {{ meta.name }} ({{ meta.min }}-{{ meta.max }})
4
+ <input class="color-slider" type="range" v-model.number="coords[i]" :style="`--stops: ${ slider_steps[i] }`" :min="meta.min" :max="meta.max" :step="meta.step" />
5
+ <input type="number" v-model.number="coords[i]" class="autosize" :style="`--percentage: ${coords[i] / (meta.max - meta.min) }`" :min="meta.min" :max="meta.max" :step="meta.step" />
6
+ </label>
7
+
8
+ <label class="color-slider-label">Alpha (0-100)
9
+ <input class="color-slider" type="range" v-model.number="alpha"
10
+ :style="`--stops: ${ slider_steps[coord_meta.length] }`" />
11
+ <input type="number" class="autosize" v-model.number="alpha" :style="`--percentage: ${alpha / 100}`" max="100" />
12
+ </label>*/
13
+ import defineAttributes from "../common/attributes.js";
14
+ import Color from "../common/color.js";
15
+
16
+ export default class ColorSlider extends HTMLElement {
17
+ _props = {};
18
+
19
+ constructor () {
20
+ super();
21
+ this.attachShadow({mode: "open"});
22
+ this.shadowRoot.innerHTML = `
23
+ <style>@import url("${ styleURL }")</style>
24
+ <label v-for="(meta, i) in coord_meta" class="color-slider-label">
25
+ {{ meta.name }} ({{ meta.min }}-{{ meta.max }})
26
+ <input class="color-slider" type="range" v-model.number="coords[i]" :style="`--stops: ${ slider_steps[i] }`" :min="meta.min" :max="meta.max" :step="meta.step" />
27
+ <input type="number" :style="`--percentage: ${coords[i] / (meta.max - meta.min) }`" :min="meta.min" :max="meta.max" :step="meta.step" />
28
+ </label>
29
+ `;
30
+ }
31
+
32
+
33
+
34
+ attributeChangedCallback (name, value, oldValue) {
35
+ if (name in this.constructor.attributes) {
36
+ this[name] = value;
37
+ }
38
+ }
39
+
40
+ static get observedAttributes() {
41
+ return Object.keys(this.attributes);
42
+ }
43
+
44
+ static attributes = {
45
+ space: {
46
+ type: String,
47
+ default: "oklch",
48
+ },
49
+ component: {
50
+ type: String,
51
+ default: "h",
52
+ },
53
+ value: {
54
+ type: Number,
55
+ default: "oklch(0.5 0 180)",
56
+ },
57
+ min: {
58
+ type: Number,
59
+ },
60
+ max: {
61
+ type: Number,
62
+ },
63
+ step: {
64
+ type: Number,
65
+ },
66
+ colorvalue: {
67
+ type: Color,
68
+ },
69
+ colormin: {
70
+ type: Color,
71
+ },
72
+ colormax: {
73
+ type: Color,
74
+ },
75
+ }
76
+ }
77
+
78
+ defineAttributes(ColorSlider);
79
+ customElements.define("color-slider", ColorSlider);