color-elements 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/README.md +30 -15
  2. package/_build/copy-config.json +1 -1
  3. package/_build/eleventy.js +7 -2
  4. package/_build/filters-extra.js +1 -1
  5. package/_includes/component.njk +9 -1
  6. package/_includes/partials/_nav-links.njk +11 -4
  7. package/_redirects +8 -1
  8. package/assets/css/style.css +78 -1
  9. package/assets/js/index.js +6 -6
  10. package/data/components.json +12 -0
  11. package/debug.html +447 -0
  12. package/index.js +5 -1
  13. package/package.json +2 -1
  14. package/src/channel-picker/README.md +103 -0
  15. package/src/channel-picker/channel-picker.css +31 -0
  16. package/src/channel-picker/channel-picker.js +168 -0
  17. package/src/channel-picker/channel-picker.webp +0 -0
  18. package/src/channel-slider/README.md +50 -8
  19. package/src/channel-slider/channel-slider.css +47 -5
  20. package/src/channel-slider/channel-slider.js +74 -39
  21. package/src/channel-slider/channel-slider.webp +0 -0
  22. package/src/color-chart/README.md +129 -0
  23. package/src/color-chart/color-chart-global.css +97 -0
  24. package/src/color-chart/color-chart.css +112 -0
  25. package/src/color-chart/color-chart.js +441 -0
  26. package/src/color-chart/color-chart.webp +0 -0
  27. package/src/color-inline/README.md +42 -1
  28. package/src/color-inline/color-inline.css +11 -4
  29. package/src/color-inline/color-inline.js +56 -50
  30. package/src/color-inline/color-inline.webp +0 -0
  31. package/src/color-picker/README.md +107 -5
  32. package/src/color-picker/color-picker.css +21 -6
  33. package/src/color-picker/color-picker.js +147 -60
  34. package/src/color-picker/color-picker.webp +0 -0
  35. package/src/color-scale/README.md +75 -0
  36. package/src/color-scale/color-scale.css +40 -0
  37. package/src/color-scale/color-scale.js +164 -0
  38. package/src/color-scale/color-scale.webp +0 -0
  39. package/src/color-slider/README.md +31 -4
  40. package/src/color-slider/color-slider.css +17 -7
  41. package/src/color-slider/color-slider.js +80 -38
  42. package/src/color-slider/color-slider.webp +0 -0
  43. package/src/color-swatch/README.md +265 -6
  44. package/src/color-swatch/color-swatch.css +162 -27
  45. package/src/color-swatch/color-swatch.js +191 -217
  46. package/src/color-swatch/color-swatch.webp +0 -0
  47. package/src/common/color-element.js +86 -0
  48. package/src/common/dom.js +1 -1
  49. package/src/common/util.js +12 -99
  50. package/src/gamut-badge/README.md +145 -0
  51. package/src/gamut-badge/gamut-badge.css +78 -0
  52. package/src/gamut-badge/gamut-badge.js +121 -0
  53. package/src/gamut-badge/gamut-badge.webp +0 -0
  54. package/src/index.js.njk +1 -1
  55. package/src/space-picker/README.md +121 -0
  56. package/src/space-picker/space-picker.css +23 -0
  57. package/src/space-picker/space-picker.js +213 -0
  58. package/src/space-picker/space-picker.webp +0 -0
  59. package/_data/components.json +0 -8
  60. package/lib/README.md +0 -4
  61. package/lib/colorjs.io/LICENSE +0 -21
  62. package/lib/colorjs.io/README.json +0 -3
  63. package/lib/colorjs.io/README.md +0 -257
  64. package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
  65. package/lib/colorjs.io/colorjs.io/README.json +0 -3
  66. package/lib/colorjs.io/colorjs.io/README.md +0 -257
  67. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
  68. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
  69. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  70. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  71. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  72. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  73. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
  74. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  75. package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
  76. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
  77. package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
  78. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
  79. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
  80. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
  81. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
  82. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  83. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
  84. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
  85. package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
  86. package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
  87. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
  88. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
  89. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
  90. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
  91. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
  92. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  93. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
  94. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
  95. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
  96. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
  97. package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
  98. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
  99. package/lib/colorjs.io/colorjs.io/package.json +0 -113
  100. package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
  101. package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
  102. package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
  103. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
  104. package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
  105. package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
  106. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
  107. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
  108. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
  109. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
  110. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
  111. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
  112. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
  113. package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
  114. package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
  115. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  116. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
  117. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  118. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  119. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  120. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  121. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  122. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
  123. package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
  124. package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
  125. package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
  126. package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
  127. package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
  128. package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
  129. package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
  130. package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
  131. package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
  132. package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
  133. package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
  134. package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
  135. package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
  136. package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
  137. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
  138. package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
  139. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
  140. package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
  141. package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
  142. package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
  143. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
  144. package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
  145. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  146. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
  147. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
  148. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
  149. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
  150. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
  151. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
  152. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
  153. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
  154. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
  155. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
  156. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
  157. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  158. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
  159. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
  160. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
  161. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
  162. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
  163. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
  164. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
  165. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
  166. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
  167. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
  168. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
  169. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
  170. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
  171. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  172. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
  173. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  174. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
  175. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  176. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  177. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
  178. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
  179. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  180. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
  181. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
  182. package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
  183. package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
  184. package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
  185. package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
  186. package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
  187. package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
  188. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
  189. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
  190. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
  191. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
  192. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
  193. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
  194. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  195. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  196. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  197. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  198. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  199. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  200. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
  201. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
  202. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
  203. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  204. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  205. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  206. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  207. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  208. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  209. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  210. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  211. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
  212. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
  213. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
  214. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
  215. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
  216. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
  217. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
  218. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
  219. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
  220. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
  221. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
  222. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
  223. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
  224. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
  225. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
  226. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  227. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
  228. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
  229. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
  230. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
  231. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
  232. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
  233. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  234. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
  235. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  236. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  237. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  238. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  239. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  240. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  241. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  242. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  243. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  244. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  245. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  246. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  247. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
  248. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  249. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  250. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  251. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  252. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  253. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  254. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  255. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  256. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  257. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  258. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  259. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  260. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  261. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  262. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  263. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  264. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  265. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  266. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  267. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  268. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  269. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  270. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
  271. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
  272. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
  273. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
  274. package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
  275. package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
  276. package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  277. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  278. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  279. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  280. package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
  281. package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  282. package/lib/colorjs.io/dist/color.cjs +0 -5759
  283. package/lib/colorjs.io/dist/color.cjs.map +0 -1
  284. package/lib/colorjs.io/dist/color.global.js +0 -5760
  285. package/lib/colorjs.io/dist/color.global.js.map +0 -1
  286. package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
  287. package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
  288. package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
  289. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  290. package/lib/colorjs.io/dist/color.global.min.js +0 -2
  291. package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
  292. package/lib/colorjs.io/dist/color.js +0 -5755
  293. package/lib/colorjs.io/dist/color.js.map +0 -1
  294. package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
  295. package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
  296. package/lib/colorjs.io/dist/color.legacy.js +0 -7395
  297. package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
  298. package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
  299. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  300. package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
  301. package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
  302. package/lib/colorjs.io/dist/color.min.cjs +0 -2
  303. package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
  304. package/lib/colorjs.io/dist/color.min.js +0 -2
  305. package/lib/colorjs.io/dist/color.min.js.map +0 -1
  306. package/lib/colorjs.io/package.json +0 -113
  307. package/lib/colorjs.io/src/CATs.js +0 -131
  308. package/lib/colorjs.io/src/adapt.js +0 -62
  309. package/lib/colorjs.io/src/angles.js +0 -44
  310. package/lib/colorjs.io/src/chromaticity.js +0 -33
  311. package/lib/colorjs.io/src/clone.js +0 -7
  312. package/lib/colorjs.io/src/color.js +0 -201
  313. package/lib/colorjs.io/src/contrast/APCA.js +0 -102
  314. package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
  315. package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
  316. package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
  317. package/lib/colorjs.io/src/contrast/Weber.js +0 -27
  318. package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
  319. package/lib/colorjs.io/src/contrast/index.js +0 -6
  320. package/lib/colorjs.io/src/contrast.js +0 -28
  321. package/lib/colorjs.io/src/defaults.js +0 -12
  322. package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  323. package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
  324. package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  325. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  326. package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  327. package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  328. package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  329. package/lib/colorjs.io/src/deltaE/index.js +0 -27
  330. package/lib/colorjs.io/src/deltaE.js +0 -19
  331. package/lib/colorjs.io/src/display.js +0 -83
  332. package/lib/colorjs.io/src/distance.js +0 -21
  333. package/lib/colorjs.io/src/equals.js +0 -10
  334. package/lib/colorjs.io/src/get.js +0 -11
  335. package/lib/colorjs.io/src/getAll.js +0 -20
  336. package/lib/colorjs.io/src/getColor.js +0 -36
  337. package/lib/colorjs.io/src/hooks.js +0 -37
  338. package/lib/colorjs.io/src/inGamut.js +0 -25
  339. package/lib/colorjs.io/src/index-fn.js +0 -28
  340. package/lib/colorjs.io/src/index.js +0 -38
  341. package/lib/colorjs.io/src/interpolation.js +0 -222
  342. package/lib/colorjs.io/src/keywords.js +0 -158
  343. package/lib/colorjs.io/src/luminance.js +0 -27
  344. package/lib/colorjs.io/src/multiply-matrices.js +0 -44
  345. package/lib/colorjs.io/src/parse.js +0 -198
  346. package/lib/colorjs.io/src/rgbspace.js +0 -64
  347. package/lib/colorjs.io/src/serialize.js +0 -86
  348. package/lib/colorjs.io/src/set.js +0 -33
  349. package/lib/colorjs.io/src/setAll.js +0 -12
  350. package/lib/colorjs.io/src/space-accessors.js +0 -86
  351. package/lib/colorjs.io/src/space.js +0 -440
  352. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  353. package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
  354. package/lib/colorjs.io/src/spaces/acescc.js +0 -76
  355. package/lib/colorjs.io/src/spaces/acescg.js +0 -54
  356. package/lib/colorjs.io/src/spaces/cam16.js +0 -362
  357. package/lib/colorjs.io/src/spaces/hct.js +0 -157
  358. package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
  359. package/lib/colorjs.io/src/spaces/hsl.js +0 -91
  360. package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
  361. package/lib/colorjs.io/src/spaces/hsv.js +0 -65
  362. package/lib/colorjs.io/src/spaces/hwb.js +0 -58
  363. package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
  364. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  365. package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
  366. package/lib/colorjs.io/src/spaces/index.js +0 -8
  367. package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
  368. package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
  369. package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
  370. package/lib/colorjs.io/src/spaces/lab.js +0 -74
  371. package/lib/colorjs.io/src/spaces/lch.js +0 -67
  372. package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
  373. package/lib/colorjs.io/src/spaces/luv.js +0 -85
  374. package/lib/colorjs.io/src/spaces/oklab.js +0 -74
  375. package/lib/colorjs.io/src/spaces/oklch.js +0 -68
  376. package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
  377. package/lib/colorjs.io/src/spaces/p3.js +0 -13
  378. package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  379. package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
  380. package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  381. package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
  382. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  383. package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  384. package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
  385. package/lib/colorjs.io/src/spaces/srgb.js +0 -127
  386. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  387. package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
  388. package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
  389. package/lib/colorjs.io/src/to.js +0 -26
  390. package/lib/colorjs.io/src/toGamut.js +0 -310
  391. package/lib/colorjs.io/src/util.js +0 -254
  392. package/lib/colorjs.io/src/variations.js +0 -14
  393. package/lib/colorjs.io/types/index.d.cts +0 -4
  394. package/lib/colorjs.io/types/index.d.ts +0 -42
  395. package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
  396. package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
  397. package/lib/colorjs.io/types/src/angles.d.ts +0 -7
  398. package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
  399. package/lib/colorjs.io/types/src/clone.d.ts +0 -3
  400. package/lib/colorjs.io/types/src/color.d.ts +0 -160
  401. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  402. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  403. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  404. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  405. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  406. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  407. package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
  408. package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
  409. package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
  410. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  411. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  412. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  413. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  414. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  415. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  416. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  417. package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  418. package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
  419. package/lib/colorjs.io/types/src/display.d.ts +0 -17
  420. package/lib/colorjs.io/types/src/distance.d.ts +0 -8
  421. package/lib/colorjs.io/types/src/equals.d.ts +0 -3
  422. package/lib/colorjs.io/types/src/get.d.ts +0 -4
  423. package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
  424. package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
  425. package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
  426. package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
  427. package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
  428. package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
  429. package/lib/colorjs.io/types/src/index.d.ts +0 -125
  430. package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
  431. package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
  432. package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
  433. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  434. package/lib/colorjs.io/types/src/parse.d.ts +0 -16
  435. package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
  436. package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
  437. package/lib/colorjs.io/types/src/set.d.ts +0 -18
  438. package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
  439. package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
  440. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  441. package/lib/colorjs.io/types/src/space.d.ts +0 -143
  442. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  443. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  444. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  445. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  446. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  447. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  448. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  449. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  450. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  451. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  452. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  453. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  454. package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
  455. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  456. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  457. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  458. package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  459. package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  460. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  461. package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  462. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  463. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  464. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  465. package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  466. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  467. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  468. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  469. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  470. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  471. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  472. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  473. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  474. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  475. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  476. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  477. package/lib/colorjs.io/types/src/to.d.ts +0 -14
  478. package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
  479. package/lib/colorjs.io/types/src/util.d.ts +0 -58
  480. package/lib/colorjs.io/types/src/variations.d.ts +0 -5
  481. package/src/color-gamut/README.md +0 -75
  482. package/src/color-gamut/color-gamut.css +0 -32
  483. package/src/color-gamut/color-gamut.js +0 -172
  484. package/src/common/color.js +0 -12
@@ -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,198 @@
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: fit-content;
13
15
  margin: .3em;
16
+ border-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
+ }
22
62
  }
23
63
 
24
- #wrapper {
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
+ }
92
+ }
93
+
94
+ [part="details"] {
25
95
  display: flex;
26
96
  flex-flow: inherit;
27
97
  gap: inherit;
28
98
 
29
99
  &.static {
30
- gap: .4em;
100
+ &:is(:host([size="large"]) *) {
101
+ background: white;
102
+ }
31
103
  }
32
104
 
33
105
  &:not(:host([size="large"]) *) {
34
106
  align-items: baseline;
35
107
  }
36
- }
37
108
 
38
- [part="color-wrapper"] {
39
- position: relative;
40
- display: flex;
41
- gap: .2em;
109
+ @container color-swatch (width <= 5rem) {
110
+ font-size: 80%;
111
+ }
42
112
 
43
- &:not(.static *) {
44
- #gamut {
113
+ @container style(--details-style: compact) {
114
+ --_border-color: var(--border-color, color-mix(in oklab, buttonborder 20%, oklab(none none none / 0%)));
115
+ --_pointer-height: var(--pointer-height, .5em);
116
+ --_transition-duration: var(--transition-duration, 400ms);
117
+ --_details-popup-width: var(--details-popup-width, max-content);
118
+
119
+ position: absolute;
120
+ left: 50%;
121
+ z-index: 2;
122
+ translate: -50% 0;
123
+ bottom: 100%;
124
+ margin-bottom: calc(var(--_pointer-height) * .8);
125
+ width: var(--_details-popup-width);
126
+ background: canvas;
127
+ border: 1px solid var(--_border-color);
128
+ padding: .6em 1em;
129
+ border-radius: .2rem;
130
+ box-shadow: 0 .05em 1em -.7em black;
131
+ transition: var(--_transition-duration) allow-discrete;
132
+ transition-property: all, display;
133
+ transition-delay: 0s, var(--_transition-duration);
134
+ transform-origin: 50% calc(100% + var(--_pointer-height));
135
+
136
+ &[popover] {
137
+ /* Make the triangle pointer visible */
138
+ overflow: visible;
139
+
140
+ /* Bring the popover back on the screen */
141
+ position: fixed;
142
+ inset: unset;
143
+
144
+ /* And position it relative to the parent swatch */
145
+ left: var(--_popover-left);
146
+ top: var(--_popover-top);
147
+ translate: -50% -100%;
148
+ }
149
+
150
+ /* Triangle pointer */
151
+ &::before {
152
+ content: "";
45
153
  position: absolute;
46
- inset: .3em;
47
- inset-inline-start: auto;
154
+ top: 100%;
155
+ left: 50%;
156
+ translate: -50% -50%;
157
+ aspect-ratio: 1;
158
+ height: calc(var(--_pointer-height) * sqrt(2));
159
+ background: inherit;
160
+ border: inherit;
161
+ rotate: -45deg;
162
+ clip-path: polygon(0 0, 0 100%, 100% 100%);
48
163
  }
49
- }
50
164
 
51
- ::slotted(input) {
52
- padding-inline-end: 2em;
165
+ &:not(:is(:host(:hover), :host(:focus-within), :host(:active), :host(:target), :host([open])) *),
166
+ &:is(:host([open=false]) *) {
167
+ display: none;
168
+ opacity: 0;
169
+ scale: 0;
170
+ }
53
171
  }
54
172
  }
55
173
 
174
+ [part="color"] {
175
+ display: flex;
176
+ gap: .2em;
177
+ }
178
+
56
179
  slot:not([name]) {
57
- white-space: nowrap;
180
+ &::slotted(input) {
181
+ display: flex;
182
+ box-sizing: border-box;
183
+ min-width: 10ch;
184
+ font: inherit;
185
+ }
186
+
187
+ &:is(:host([size="large"]) *)::slotted(input) {
188
+ width: 100%;
189
+ }
58
190
  }
59
191
 
60
- ::slotted(input) {
61
- font: inherit;
192
+ [part="color-wrapper"],
193
+ slot[name=swatch]::slotted(*),
194
+ #swatch {
195
+ border-radius: inherit;
62
196
  }
63
197
 
64
198
  slot[name=swatch]::slotted(*),
@@ -74,22 +208,23 @@ slot[name=swatch]::slotted(*),
74
208
  flex: 1;
75
209
  background:
76
210
  linear-gradient(var(--color) 0 100%),
77
- var(--_transparency);
78
- border-radius: .2rem;
211
+ var(--_transparency-grid);
79
212
 
80
213
  &:is(:host([size="large"]) *) {
81
- max-inline-size: 15em;
82
- min-block-size: 6em;
214
+ min-block-size: 3em;
83
215
  }
84
216
 
85
217
  &:not(:host([size="large"]) *) {
86
218
  display: flex;
87
219
  min-inline-size: 2em;
220
+ min-block-size: 1em;
88
221
  font-size: 65%;
89
222
  flex: 1;
90
223
  }
91
224
  }
92
225
 
93
- :host([swatch="none"]) #swatch {
94
- display: none;
95
- }
226
+ slot[name=swatch-content] {
227
+ /* See https://lea.verou.me/blog/2024/contrast-color/ */
228
+ --l: clamp(0, (var(--l-threshold, 0.7) / l - 1) * infinity, 1);
229
+ color: oklch(from var(--color) var(--l) 0 h);
230
+ }