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
@@ -2,32 +2,221 @@
2
2
 
3
3
  ## Examples
4
4
 
5
- ### Static
5
+ ### Basic usage
6
+
7
+ <table>
8
+ <thead>
9
+ <tr>
10
+ <th></th>
11
+ <th>Default</th>
12
+ <th>Large</th>
13
+ </tr>
14
+ </thead>
15
+ <tbody>
16
+ <tr>
17
+ <th>Static</th>
18
+ <td>
6
19
 
7
20
  ```html
8
21
  <color-swatch>oklch(70% 0.25 138)</color-swatch>
9
22
  ```
23
+ </td>
24
+ <td>
10
25
 
11
26
  ```html
12
27
  <color-swatch size="large">oklch(70% 0.25 138)</color-swatch>
13
28
  ```
14
-
15
- ### Editable
29
+ </td>
30
+ </tr>
31
+ <tr>
32
+ <th>Editable</th>
33
+ <td>
16
34
 
17
35
  ```html
18
36
  <color-swatch>
19
37
  <input value="oklch(70% 0.25 138)" />
20
38
  </color-swatch>
21
39
  ```
40
+ </td>
41
+ <td>
22
42
 
23
43
  ```html
24
44
  <color-swatch size="large">
25
45
  <input value="oklch(70% 0.25 138)" />
26
46
  </color-swatch>
27
47
  ```
48
+ </td>
49
+ </tr>
50
+ </tbody>
51
+ </table>
52
+
53
+ You can use a `--details-style: compact` CSS property to only show the details on user interaction:
54
+
55
+ ```html
56
+ <color-swatch style="--details-style: compact">oklch(70% 0.25 138)</color-swatch>
57
+ <color-swatch size="large" style="--details-style: compact">oklch(70% 0.25 138)</color-swatch>
58
+ ```
59
+
60
+ Warning: This is not keyboard accessible by default.
61
+ To make the element focusable and also show the popup when it is focused, you need to add `tabindex="0"` to your element:
62
+
63
+ ```html
64
+ <color-swatch size="large" style="--details-style: compact" tabindex="0">oklch(70% 0.25 138)</color-swatch>
65
+ ```
66
+
67
+ By default, the popup will be shown when the element is hovered, focused, `:active`, or the target of the URL hash.
68
+ To circumvent user interaction and force the popup to be open use the `open` attribute.
69
+ You can also use `open="false"` to force it to be closed regardless of interaction:
70
+
71
+ ```html
72
+ <div style="--details-style: compact">
73
+ <color-swatch size="large">oklch(70% 0.25 138)</color-swatch>
74
+ <color-swatch size="large" open>oklch(70% 0.25 138)</color-swatch>
75
+ <color-swatch size="large" open="false">oklch(70% 0.25 138)</color-swatch>
76
+ </div>
77
+ ```
78
+
79
+ ### The `value` attribute
80
+
81
+ You can provide the color via the `value` attribute,
82
+ which can be more convenient when you have slotted content.
83
+
84
+ In that case, the content of the element is merely presentational
85
+ (unless it’s an `<input>`).
86
+ If you don’t specify any content, no text will be shown.
87
+
88
+ <table>
89
+ <thead>
90
+ <tr>
91
+ <th>Static</th>
92
+ <th>Editable</th>
93
+ </tr>
94
+ </thead>
95
+ <tbody>
96
+ <tr>
97
+
98
+ <td>
99
+
100
+ ```html
101
+ <color-swatch value="oklch(70% 0.25 138)" size="large">red</color-swatch>
102
+ ```
103
+
104
+ </td>
105
+ <td>
106
+
107
+ ```html
108
+ <color-swatch value="oklch(70% 0.25 138)" size="large">
109
+ <input />
110
+ </color-swatch>
111
+ ```
112
+ </td>
113
+
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+
118
+ You can also use this as a property when creating color swatches dynamically:
119
+
120
+ ```html
121
+ <div id="future_swatch_container"></div>
122
+ <script>
123
+ let swatch = document.createElement("color-swatch");
124
+ swatch.value = "oklch(65% 0.15 210)";
125
+ swatch.setAttribute("size", "large");
126
+ swatch.textContent = "Turquoise";
127
+ future_swatch_container.append(swatch);
128
+ </script>
129
+ ```
130
+
131
+ ### The `label` attribute
132
+
133
+ You can provide the color label via the `label` attribute.
134
+
135
+ <table>
136
+ <thead>
137
+ <tr>
138
+ <th></th>
139
+ <th>Default</th>
140
+ <th>Large</th>
141
+ </tr>
142
+ </thead>
143
+ <tbody>
144
+ <tr>
145
+ <th>Static</th>
146
+ <td>
147
+
148
+ ```html
149
+ <color-swatch label="Turquoise">oklch(65% 0.15 210)</color-swatch>
150
+ ```
151
+ </td>
152
+ <td>
153
+
154
+ ```html
155
+ <color-swatch label="Turquoise" size="large">oklch(65% 0.15 210)</color-swatch>
156
+ ```
157
+ </td>
158
+ </tr>
159
+ <tr>
160
+ <th>Editable</th>
161
+ <td>
162
+
163
+ ```html
164
+ <color-swatch label="Turquoise">
165
+ <input value="oklch(65% 0.15 210)" />
166
+ </color-swatch>
167
+ ```
168
+ </td>
169
+ <td>
170
+
171
+ ```html
172
+ <color-swatch label="Turquoise" size="large">
173
+ <input value="oklch(65% 0.15 210)" />
174
+ </color-swatch>
175
+ ```
176
+ </td>
177
+ </tr>
178
+ </tbody>
179
+ </table>
180
+
181
+ If the attribute's value matches the element's content, no additional text with the label will be shown.
182
+
183
+ ```html
184
+ <color-swatch label="Turquoise" value="oklch(65% 0.15 210)" size="large">Turquoise</color-swatch>
185
+ ```
186
+
187
+ If used as a property and is not defined via the `label` attribute, its value is that of the element text content.
188
+
189
+ ### The `info` attribute
190
+
191
+ You can use the `info` attribute to show information about the color.
192
+ Currently, the only type of information supported is color coords (in any color space), but more will be added in the future.
193
+
194
+ ```html
195
+ <color-swatch info="oklch.l, oklch.c, oklch.h" size="large">
196
+ oklch(70% 0.25 138)
197
+ </color-swatch>
198
+ ```
199
+
200
+ By default, the label for each value will be determined automatically from the type of information (e.g. the full coord name if a coord),
201
+ but you can customize this by adding a label before the description of the data:
202
+
203
+ ```html
204
+ <color-swatch info="L: oklch.l, C: oklch.c, H: oklch.h" size="large">
205
+ oklch(70% 0.25 138)
206
+ </color-swatch>
207
+ ```
208
+
209
+
210
+ The `info` attribute plays quite nicely with the `--details-style: compact` style:
211
+
212
+ ```html
213
+ <color-swatch size="large" info="oklch.l, oklch.c, oklch.h" style="--details-style: compact">oklch(70% 0.25 138)</color-swatch>
214
+ ```
28
215
 
29
216
  ### With slot content
30
217
 
218
+ Before and after:
219
+
31
220
  ```html
32
221
  <color-swatch>
33
222
  <label slot="before" for=c1>Accent color:</label>
@@ -35,9 +224,16 @@
35
224
  </color-swatch>
36
225
  ```
37
226
 
227
+ ```html
228
+ <color-swatch>
229
+ <label slot="before" for=c1>Accent color:</label>
230
+ oklch(70% 0.25 138)
231
+ </color-swatch>
232
+ ```
233
+
38
234
  ```html
39
235
  <color-swatch size="large">
40
- <label slot="before" id=c2>Accent color:</label>
236
+ <label slot="before" for=c2>Accent color:</label>
41
237
  <input value="oklch(70% 0.25 138)" id=c2 />
42
238
  <small slot="after">Tip: Pick a bright medium color.</small>
43
239
  </color-swatch>
@@ -52,6 +248,10 @@ Adding text within the default swatch:
52
248
  </color-swatch>
53
249
  ```
54
250
 
251
+ Note that the text color will automatically switch from black to white to remain readable (using [this technique](https://lea.verou.me/blog/2024/contrast-color/)).
252
+
253
+ ----
254
+
55
255
  Replacing the whole swatch with a custom element:
56
256
 
57
257
  ```html
@@ -61,10 +261,12 @@ Replacing the whole swatch with a custom element:
61
261
  </color-swatch>
62
262
  ```
63
263
 
264
+ <!--
64
265
  ### Bound to CSS property
65
266
 
66
267
  You can automatically bind the color swatch to a CSS property by setting the `property` attribute.
67
- Then you don’t need to provide an initial value, it will be read from the CSS property.
268
+ Then you don’t need to provide an initial value, it will be read from the CSS property,
269
+ and updating the color will update the CSS property.
68
270
 
69
271
  ```html
70
272
  <color-swatch size="large" property="--color-red">
@@ -72,6 +274,10 @@ Then you don’t need to provide an initial value, it will be read from the CSS
72
274
  </color-swatch>
73
275
  ```
74
276
 
277
+ You can use `scope` to select the closest ancestor (via a CSS selector) on which the CSS property will be read from and written to.
278
+ If you don’t, the `<html>` element will be used.
279
+ -->
280
+
75
281
  ### Events
76
282
 
77
283
  ```html
@@ -97,4 +303,57 @@ Then you don’t need to provide an initial value, it will be read from the CSS
97
303
  <input value="oklch(70% 0.25 138)" />
98
304
  </color-swatch>
99
305
  <button onclick='dynamic_editable.color = "oklch(60% 0.15 0)"'>Change color</button>
100
- ```
306
+ ```
307
+
308
+ ## Reference
309
+
310
+ ### Attributes & Properties
311
+
312
+ | Attribute | Property | Property type | Default value | Description |
313
+ |-----------|----------|---------------|---------------|-------------|
314
+ | `color` | `color` | `Color` &#124; `string` | - | The current color value. |
315
+ | `info` | `info` | `string` | - | Comma-separated list of coords of the current color to be shown. |
316
+ | `value` | `value` | `string` | - | The current value of the swatch. |
317
+ | `label` | `label` | `string` | - | The label of the swatch (e.g., color name). Defaults to the element text content. |
318
+ | `size` | - | `large` | - | The size of the swatch. Currently, it is used only to make a large swatch. |
319
+ | `property` | `property` | `string` | - | CSS property to bind to. |
320
+ | `scope` | `scope` | `string` | `:root` | CSS selector to use as the scope for the specified CSS property. |
321
+ | `gamuts` | `gamuts` | `string` | `srgb, p3, rec2020: P3+, prophoto: PP` | Comma-separated list of gamuts to be used by the gamut indicator. |
322
+ | `open` | `open` | | `null` | Force the details popup open or closed. |
323
+
324
+ ### Getters
325
+
326
+ These properties are read-only.
327
+
328
+ | Name | Type | Description |
329
+ |----------|------|-------------|
330
+ | `gamut` | `string` | The id of the current gamut (e.g. `srgb`). |
331
+
332
+ ### CSS variables
333
+
334
+ | Name | Type | Description |
335
+ |----------|---------------|-------------|
336
+ | `--details-style` | `compact` &#124; `normal` (default) | |
337
+ | `--transparency-grid` | `<image>` | Gradient used as a background for transparent parts of the swatch. |
338
+ | `--transparency-cell-size` | `<length>` | The size of the cells of the transparency gradient. |
339
+ | `--transparcency-background` | `<color>` | The background color of the transparency gradient. |
340
+ | `--transparency-darkness` | `<percentage>` | The opacity of the black color used for dark parts of the transparency gradient. |
341
+
342
+ ### Parts
343
+
344
+ | Name | Description |
345
+ |------|-------------|
346
+ | `swatch` | The swatch used to render the color. |
347
+ | `details` | Wrapper around all non-swatch content (color name, info, etc) |
348
+ | `label` | The label of the swatch |
349
+ | `color-wrapper` | Wrapper around the color name itself |
350
+ | `gamut` | Gamut indicator |
351
+ | `info` | Any info generateed by the `info` attribute |
352
+
353
+ ### Events
354
+
355
+ | Name | Description |
356
+ |------|-------------|
357
+ | `valuechange` | Fired when the value changes for any reason, and once during initialization. |
358
+ | `colorchange` | Fired when the color changes for any reason, and once during initialization. |
359
+ | `gamutchange` | Fired when the gamut changes for any reason, and once during initialization. |
@@ -1,64 +1,207 @@
1
1
  :host {
2
2
  --_transparency-cell-size: var(--transparency-cell-size, .5em);
3
- --_transparency-background: var(--transparcency-background, transparent);
3
+ --_transparency-background: var(--transparency-background, transparent);
4
4
  --_transparency-darkness: var(--transparency-darkness, 5%);
5
- --_transparency: var(--transparcency,
5
+ --_transparency-grid: var(--transparency-grid,
6
6
  repeating-conic-gradient(transparent 0 25%, rgb(0 0 0 / var(--_transparency-darkness)) 0 50%)
7
7
  0 0 / calc(2 * var(--_transparency-cell-size)) calc(2 * var(--_transparency-cell-size))
8
8
  content-box border-box var(--_transparency-background)
9
9
  );
10
+
11
+ position: relative;
10
12
  display: inline-flex;
11
13
  gap: .3em;
12
- width: min-content;
14
+ width: var(--color-swatch-width, fit-content);
13
15
  margin: .3em;
16
+ border-radius: var(--color-swatch-radius, .2rem);
14
17
  }
15
18
 
16
19
  :host([size="large"]) {
17
20
  flex-flow: column;
21
+ inline-size: 11em;
22
+ min-block-size: 6em;
23
+ contain: inline-size;
24
+ container-name: color-swatch;
25
+ container-type: inline-size;
26
+ }
27
+
28
+ slot {
29
+ all: inherit;
30
+ display: contents;
18
31
  }
19
32
 
20
33
  #gamut {
21
34
  font-size: 80%;
35
+
36
+ &:is(:host([size="large"]) *) {
37
+ position: absolute;
38
+ top: 0;
39
+ right: 0;
40
+ margin: .5rem;
41
+ }
42
+
43
+ &:not(:host([size="large"]) *) {
44
+ @container style(--details-style: compact) {
45
+ position: absolute;
46
+ font-size: 50%;
47
+ top: 0;
48
+ right: 0;
49
+ margin: .2rem;
50
+ }
51
+
52
+ &:is(.static *) {
53
+ align-self: baseline;
54
+ }
55
+ }
56
+
57
+
58
+
59
+ &[style*="--gamut-level: 0"] {
60
+ display: none;
61
+ }
62
+ }
63
+
64
+ [part="info"] {
65
+ margin: 0;
66
+ display: inline-flex;
67
+ display: none;
68
+ gap: .5em;
69
+
70
+ &:is(:host([size="large"]) &) {
71
+ display: grid;
72
+ grid-template-columns: max-content auto;
73
+ gap: .1em .2em;
74
+ font-size: max(9px, 80%);
75
+ justify-content: start;
76
+
77
+ .coord {
78
+ display: contents;
79
+ }
80
+ }
81
+
82
+ .coord {
83
+ display: flex;
84
+ gap: .2em;
85
+
86
+ dd {
87
+ margin: 0;
88
+ font-weight: bold;
89
+ font-variant-numeric: tabular-nums;
90
+ }
91
+ }
22
92
  }
23
93
 
24
- #wrapper {
94
+ [part="details"] {
25
95
  display: flex;
26
96
  flex-flow: inherit;
27
97
  gap: inherit;
28
98
 
99
+ /* Prevent flex items from overflowing */
100
+ min-inline-size: 0;
101
+
29
102
  &.static {
30
- gap: .4em;
103
+ &:is(:host([size="large"]) *) {
104
+ background: canvas;
105
+ }
31
106
  }
32
107
 
33
108
  &:not(:host([size="large"]) *) {
34
109
  align-items: baseline;
35
110
  }
36
- }
37
111
 
38
- [part="color-wrapper"] {
39
- position: relative;
40
- display: flex;
41
- gap: .2em;
112
+ @container color-swatch (width <= 5rem) {
113
+ font-size: 80%;
114
+ }
115
+
116
+ @container style(--details-style: compact) {
117
+ --_border-color: var(--border-color, color-mix(in oklab, buttonborder 20%, oklab(none none none / 0%)));
118
+ --_pointer-height: var(--pointer-height, .5em);
119
+ --_transition-duration: var(--transition-duration, 400ms);
120
+ --_details-popup-width: var(--details-popup-width, max-content);
42
121
 
43
- &:not(.static *) {
44
- #gamut {
122
+ position: absolute;
123
+ left: 50%;
124
+ z-index: 2;
125
+ translate: -50% 0;
126
+ bottom: 100%;
127
+ margin-bottom: calc(var(--_pointer-height) * .8);
128
+ width: var(--_details-popup-width);
129
+ background: canvas;
130
+ border: 1px solid var(--_border-color);
131
+ padding: .6em 1em;
132
+ border-radius: .2rem;
133
+ box-shadow: 0 .05em 1em -.7em black;
134
+ transition: var(--_transition-duration) allow-discrete;
135
+ transition-property: all, display;
136
+ transition-delay: 0s, var(--_transition-duration);
137
+ transform-origin: 50% calc(100% + var(--_pointer-height));
138
+
139
+ &[popover] {
140
+ /* Make the triangle pointer visible */
141
+ overflow: visible;
142
+
143
+ /* Bring the popover back on the screen */
144
+ position: fixed;
145
+ inset: unset;
146
+
147
+ /* And position it relative to the parent swatch */
148
+ left: var(--_popover-left);
149
+ top: var(--_popover-top);
150
+ translate: -50% -100%;
151
+ }
152
+
153
+ /* Triangle pointer */
154
+ &::before {
155
+ content: "";
45
156
  position: absolute;
46
- inset: .3em;
47
- inset-inline-start: auto;
157
+ top: 100%;
158
+ left: 50%;
159
+ translate: -50% -50%;
160
+ aspect-ratio: 1;
161
+ height: calc(var(--_pointer-height) * sqrt(2));
162
+ background: inherit;
163
+ border: inherit;
164
+ rotate: -45deg;
165
+ clip-path: polygon(0 0, 0 100%, 100% 100%);
48
166
  }
49
- }
50
167
 
51
- ::slotted(input) {
52
- padding-inline-end: 2em;
168
+ &:not(:is(:host(:hover), :host(:focus-within), :host(:active), :host(:target), :host([open])) *),
169
+ &:is(:host([open=false]) *) {
170
+ display: none;
171
+ opacity: 0;
172
+ scale: 0;
173
+ }
53
174
  }
54
175
  }
55
176
 
56
- slot:not([name]) {
177
+ [part="color"] {
178
+ display: flex;
179
+ gap: .2em;
180
+ }
181
+
182
+ [part="label"] {
183
+ overflow: hidden;
57
184
  white-space: nowrap;
185
+ text-overflow: ellipsis;
58
186
  }
59
187
 
60
- ::slotted(input) {
61
- font: inherit;
188
+ slot:not([name]) {
189
+ &::slotted(input) {
190
+ display: flex;
191
+ box-sizing: border-box;
192
+ min-width: 10ch;
193
+ font: inherit;
194
+ }
195
+
196
+ &:is(:host([size="large"]) *)::slotted(input) {
197
+ width: 100%;
198
+ }
199
+ }
200
+
201
+ [part="color-wrapper"],
202
+ slot[name=swatch]::slotted(*),
203
+ #swatch {
204
+ border-radius: inherit;
62
205
  }
63
206
 
64
207
  slot[name=swatch]::slotted(*),
@@ -74,22 +217,23 @@ slot[name=swatch]::slotted(*),
74
217
  flex: 1;
75
218
  background:
76
219
  linear-gradient(var(--color) 0 100%),
77
- var(--_transparency);
78
- border-radius: .2rem;
220
+ var(--_transparency-grid);
79
221
 
80
222
  &:is(:host([size="large"]) *) {
81
- max-inline-size: 15em;
82
- min-block-size: 6em;
223
+ min-block-size: 3em;
83
224
  }
84
225
 
85
226
  &:not(:host([size="large"]) *) {
86
227
  display: flex;
87
228
  min-inline-size: 2em;
229
+ min-block-size: 1em;
88
230
  font-size: 65%;
89
231
  flex: 1;
90
232
  }
91
233
  }
92
234
 
93
- :host([swatch="none"]) #swatch {
94
- display: none;
95
- }
235
+ slot[name=swatch-content] {
236
+ /* See https://lea.verou.me/blog/2024/contrast-color/ */
237
+ --l: clamp(0, (var(--l-threshold, 0.7) / l - 1) * infinity, 1);
238
+ color: oklch(from var(--color) var(--l) 0 h);
239
+ }