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.
- package/README.md +30 -15
- package/_build/copy-config.json +1 -1
- package/_build/eleventy.js +7 -2
- package/_build/filters-extra.js +1 -1
- package/_includes/component.njk +9 -1
- package/_includes/partials/_nav-links.njk +12 -4
- package/_redirects +8 -1
- package/assets/css/style.css +78 -1
- package/assets/js/index.js +6 -6
- package/data/components.json +12 -0
- package/index.js +5 -1
- package/package.json +9 -3
- package/src/channel-picker/README.md +103 -0
- package/src/channel-picker/channel-picker.css +31 -0
- package/src/channel-picker/channel-picker.js +168 -0
- package/src/channel-picker/channel-picker.webp +0 -0
- package/src/channel-slider/README.md +50 -8
- package/src/channel-slider/channel-slider.css +47 -5
- package/src/channel-slider/channel-slider.js +74 -39
- package/src/channel-slider/channel-slider.webp +0 -0
- package/src/color-chart/README.md +129 -0
- package/src/color-chart/color-chart-global.css +101 -0
- package/src/color-chart/color-chart.css +112 -0
- package/src/color-chart/color-chart.js +439 -0
- package/src/color-chart/color-chart.webp +0 -0
- package/src/color-inline/README.md +42 -1
- package/src/color-inline/color-inline.css +11 -4
- package/src/color-inline/color-inline.js +56 -50
- package/src/color-inline/color-inline.webp +0 -0
- package/src/color-picker/README.md +107 -5
- package/src/color-picker/color-picker.css +21 -6
- package/src/color-picker/color-picker.js +147 -60
- package/src/color-picker/color-picker.webp +0 -0
- package/src/color-scale/README.md +75 -0
- package/src/color-scale/color-scale.css +35 -0
- package/src/color-scale/color-scale.js +164 -0
- package/src/color-scale/color-scale.webp +0 -0
- package/src/color-slider/README.md +31 -4
- package/src/color-slider/color-slider.css +17 -7
- package/src/color-slider/color-slider.js +80 -38
- package/src/color-slider/color-slider.webp +0 -0
- package/src/color-swatch/README.md +265 -6
- package/src/color-swatch/color-swatch.css +171 -27
- package/src/color-swatch/color-swatch.js +193 -217
- package/src/color-swatch/color-swatch.webp +0 -0
- package/src/common/color-element.js +140 -0
- package/src/common/dom.js +1 -1
- package/src/common/util.js +62 -84
- package/src/gamut-badge/README.md +145 -0
- package/src/gamut-badge/gamut-badge.css +78 -0
- package/src/gamut-badge/gamut-badge.js +121 -0
- package/src/gamut-badge/gamut-badge.webp +0 -0
- package/src/index.js.njk +1 -1
- package/src/space-picker/README.md +121 -0
- package/src/space-picker/space-picker.css +23 -0
- package/src/space-picker/space-picker.js +213 -0
- package/src/space-picker/space-picker.webp +0 -0
- package/_data/components.json +0 -8
- package/lib/README.md +0 -4
- package/lib/colorjs.io/LICENSE +0 -21
- package/lib/colorjs.io/README.json +0 -3
- package/lib/colorjs.io/README.md +0 -257
- package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
- package/lib/colorjs.io/colorjs.io/README.json +0 -3
- package/lib/colorjs.io/colorjs.io/README.md +0 -257
- package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
- package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
- package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
- package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
- package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/package.json +0 -113
- package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
- package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
- package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
- package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
- package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
- package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
- package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
- package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
- package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
- package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
- package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
- package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
- package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
- package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
- package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
- package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
- package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
- package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
- package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
- package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
- package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
- package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
- package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
- package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
- package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
- package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
- package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
- package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
- package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
- package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
- package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
- package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
- package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
- package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
- package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
- package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
- package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
- package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
- package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
- package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
- package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
- package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
- package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
- package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
- package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
- package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
- package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
- package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
- package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
- package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
- package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
- package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
- package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
- package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
- package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
- package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
- package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
- package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
- package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
- package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
- package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
- package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
- package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
- package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
- package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
- package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
- package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
- package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
- package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
- package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
- package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
- package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
- package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
- package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
- package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
- package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
- package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
- package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
- package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
- package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
- package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
- package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
- package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
- package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
- package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
- package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
- package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
- package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
- package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
- package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
- package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
- package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
- package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
- package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
- package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
- package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
- package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
- package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
- package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
- package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
- package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
- package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
- package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
- package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
- package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
- package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
- package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
- package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
- package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
- package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.cjs +0 -5759
- package/lib/colorjs.io/dist/color.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.global.js +0 -5760
- package/lib/colorjs.io/dist/color.global.js.map +0 -1
- package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
- package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
- package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
- package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
- package/lib/colorjs.io/dist/color.global.min.js +0 -2
- package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
- package/lib/colorjs.io/dist/color.js +0 -5755
- package/lib/colorjs.io/dist/color.js.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
- package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.js +0 -7395
- package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
- package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
- package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
- package/lib/colorjs.io/dist/color.min.cjs +0 -2
- package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.min.js +0 -2
- package/lib/colorjs.io/dist/color.min.js.map +0 -1
- package/lib/colorjs.io/package.json +0 -113
- package/lib/colorjs.io/src/CATs.js +0 -131
- package/lib/colorjs.io/src/adapt.js +0 -62
- package/lib/colorjs.io/src/angles.js +0 -44
- package/lib/colorjs.io/src/chromaticity.js +0 -33
- package/lib/colorjs.io/src/clone.js +0 -7
- package/lib/colorjs.io/src/color.js +0 -201
- package/lib/colorjs.io/src/contrast/APCA.js +0 -102
- package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
- package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
- package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
- package/lib/colorjs.io/src/contrast/Weber.js +0 -27
- package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
- package/lib/colorjs.io/src/contrast/index.js +0 -6
- package/lib/colorjs.io/src/contrast.js +0 -28
- package/lib/colorjs.io/src/defaults.js +0 -12
- package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
- package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
- package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
- package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
- package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
- package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
- package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
- package/lib/colorjs.io/src/deltaE/index.js +0 -27
- package/lib/colorjs.io/src/deltaE.js +0 -19
- package/lib/colorjs.io/src/display.js +0 -83
- package/lib/colorjs.io/src/distance.js +0 -21
- package/lib/colorjs.io/src/equals.js +0 -10
- package/lib/colorjs.io/src/get.js +0 -11
- package/lib/colorjs.io/src/getAll.js +0 -20
- package/lib/colorjs.io/src/getColor.js +0 -36
- package/lib/colorjs.io/src/hooks.js +0 -37
- package/lib/colorjs.io/src/inGamut.js +0 -25
- package/lib/colorjs.io/src/index-fn.js +0 -28
- package/lib/colorjs.io/src/index.js +0 -38
- package/lib/colorjs.io/src/interpolation.js +0 -222
- package/lib/colorjs.io/src/keywords.js +0 -158
- package/lib/colorjs.io/src/luminance.js +0 -27
- package/lib/colorjs.io/src/multiply-matrices.js +0 -44
- package/lib/colorjs.io/src/parse.js +0 -198
- package/lib/colorjs.io/src/rgbspace.js +0 -64
- package/lib/colorjs.io/src/serialize.js +0 -86
- package/lib/colorjs.io/src/set.js +0 -33
- package/lib/colorjs.io/src/setAll.js +0 -12
- package/lib/colorjs.io/src/space-accessors.js +0 -86
- package/lib/colorjs.io/src/space.js +0 -440
- package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
- package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
- package/lib/colorjs.io/src/spaces/acescc.js +0 -76
- package/lib/colorjs.io/src/spaces/acescg.js +0 -54
- package/lib/colorjs.io/src/spaces/cam16.js +0 -362
- package/lib/colorjs.io/src/spaces/hct.js +0 -157
- package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
- package/lib/colorjs.io/src/spaces/hsl.js +0 -91
- package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
- package/lib/colorjs.io/src/spaces/hsv.js +0 -65
- package/lib/colorjs.io/src/spaces/hwb.js +0 -58
- package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
- package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
- package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
- package/lib/colorjs.io/src/spaces/index.js +0 -8
- package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
- package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
- package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
- package/lib/colorjs.io/src/spaces/lab.js +0 -74
- package/lib/colorjs.io/src/spaces/lch.js +0 -67
- package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
- package/lib/colorjs.io/src/spaces/luv.js +0 -85
- package/lib/colorjs.io/src/spaces/oklab.js +0 -74
- package/lib/colorjs.io/src/spaces/oklch.js +0 -68
- package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
- package/lib/colorjs.io/src/spaces/p3.js +0 -13
- package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
- package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
- package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
- package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
- package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
- package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
- package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
- package/lib/colorjs.io/src/spaces/srgb.js +0 -127
- package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
- package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
- package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
- package/lib/colorjs.io/src/to.js +0 -26
- package/lib/colorjs.io/src/toGamut.js +0 -310
- package/lib/colorjs.io/src/util.js +0 -254
- package/lib/colorjs.io/src/variations.js +0 -14
- package/lib/colorjs.io/types/index.d.cts +0 -4
- package/lib/colorjs.io/types/index.d.ts +0 -42
- package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
- package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
- package/lib/colorjs.io/types/src/angles.d.ts +0 -7
- package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
- package/lib/colorjs.io/types/src/clone.d.ts +0 -3
- package/lib/colorjs.io/types/src/color.d.ts +0 -160
- package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
- package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
- package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
- package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
- package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
- package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
- package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
- package/lib/colorjs.io/types/src/display.d.ts +0 -17
- package/lib/colorjs.io/types/src/distance.d.ts +0 -8
- package/lib/colorjs.io/types/src/equals.d.ts +0 -3
- package/lib/colorjs.io/types/src/get.d.ts +0 -4
- package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
- package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
- package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
- package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
- package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
- package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
- package/lib/colorjs.io/types/src/index.d.ts +0 -125
- package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
- package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
- package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
- package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
- package/lib/colorjs.io/types/src/parse.d.ts +0 -16
- package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
- package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
- package/lib/colorjs.io/types/src/set.d.ts +0 -18
- package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
- package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
- package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
- package/lib/colorjs.io/types/src/space.d.ts +0 -143
- package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
- package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
- package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
- package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
- package/lib/colorjs.io/types/src/to.d.ts +0 -14
- package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
- package/lib/colorjs.io/types/src/util.d.ts +0 -58
- package/lib/colorjs.io/types/src/variations.d.ts +0 -5
- package/src/color-gamut/README.md +0 -75
- package/src/color-gamut/color-gamut.css +0 -32
- package/src/color-gamut/color-gamut.js +0 -172
- package/src/common/color.js +0 -12
|
@@ -6,8 +6,8 @@ A [`<color-slider>`](../color-slider) for a specific channel, intended for color
|
|
|
6
6
|
|
|
7
7
|
This is a higher level component than `<color-slider>` for the cases where you want to control a single channel of a color space.
|
|
8
8
|
It offers many conveniences for these cases:
|
|
9
|
-
- It takes care of applying the right `min` and `
|
|
10
|
-
- It automatically generates the start and end colors
|
|
9
|
+
- It takes care of applying the right `min`, `max`, and `step` values to the slider
|
|
10
|
+
- It automatically generates the start and end colors
|
|
11
11
|
- It can provide an editable tooltip as a tooltip that both shows and edits the current value
|
|
12
12
|
- Already includes a suitable label
|
|
13
13
|
|
|
@@ -19,6 +19,12 @@ Basic example:
|
|
|
19
19
|
<channel-slider space="oklch" channel="h"></channel-slider>
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
+
The alpha channel is also supported:
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<channel-slider space="oklch" channel="alpha"></channel-slider>
|
|
26
|
+
```
|
|
27
|
+
|
|
22
28
|
In most cases you’d also want to set a color to set the other channels and the initial value:
|
|
23
29
|
|
|
24
30
|
```html
|
|
@@ -81,6 +87,7 @@ All attributes are reactive:
|
|
|
81
87
|
<option>l</option>
|
|
82
88
|
<option>c</option>
|
|
83
89
|
<option>h</option>
|
|
90
|
+
<option>alpha</option>
|
|
84
91
|
</select>
|
|
85
92
|
</label>
|
|
86
93
|
|
|
@@ -90,13 +97,13 @@ All attributes are reactive:
|
|
|
90
97
|
<script>
|
|
91
98
|
function fromSlider () {
|
|
92
99
|
space_select.value = dynamic_slider.space.id;
|
|
93
|
-
channel_select.innerHTML = Object.keys(dynamic_slider.space.coords).map(c => `<option>${c}</option>`).join('\n');
|
|
94
|
-
channel_select.value = dynamic_slider.channel;
|
|
100
|
+
channel_select.innerHTML = [...Object.keys(dynamic_slider.space.coords).map(c => `<option>${c}</option>`), "<option>alpha</option>"].join('\n');
|
|
101
|
+
channel_select.value = dynamic_slider.channel || channel_select.options[0].value;
|
|
95
102
|
}
|
|
96
103
|
|
|
97
104
|
function fromSelects () {
|
|
98
105
|
dynamic_slider.space = space_select.value;
|
|
99
|
-
dynamic_slider.channel = channel_select.value;
|
|
106
|
+
dynamic_slider.channel = channel_select.value || channel_select.options[0].value;
|
|
100
107
|
}
|
|
101
108
|
|
|
102
109
|
space_select.oninput = channel_select.oninput = fromSelects;
|
|
@@ -109,6 +116,12 @@ All attributes are reactive:
|
|
|
109
116
|
|
|
110
117
|
## Reference
|
|
111
118
|
|
|
119
|
+
### Slots
|
|
120
|
+
|
|
121
|
+
| Name | Description |
|
|
122
|
+
|------|-------------|
|
|
123
|
+
| _(default)_ | The channel slider's label. |
|
|
124
|
+
|
|
112
125
|
### Attributes & Properties
|
|
113
126
|
|
|
114
127
|
| Attribute | Property | Property type | Default value | Description |
|
|
@@ -117,7 +130,36 @@ All attributes are reactive:
|
|
|
117
130
|
| `channel` | `channel` | `string` | `h` | The component to use for the gradient. |
|
|
118
131
|
| `min` | `min` | `number` | `this.refRange[0]` | The minimum value for the slider. |
|
|
119
132
|
| `max` | `max` | `number` | `this.refRange[1]` | The maximum value for the slider. |
|
|
133
|
+
| `step` | `step` | `number` | Computed automatically based on `this.min` and `this.max`. | The granularity that the slider's current value must adhere to. |
|
|
120
134
|
| `value` | `value` | `number` | `(this.min + this.max) / 2` | The current value of the slider. |
|
|
121
|
-
| `color` | `color` | `Color` | `string` | `oklch(50 50% 180)` | The current color value. |
|
|
122
|
-
|
|
123
|
-
|
|
135
|
+
| `color` | `color` | `Color` | `string` | `oklch(50% 50% 180)` | The current color value. |
|
|
136
|
+
|
|
137
|
+
### Getters
|
|
138
|
+
|
|
139
|
+
These properties are read-only.
|
|
140
|
+
|
|
141
|
+
| Property | Type | Description |
|
|
142
|
+
|----------|------|-------------|
|
|
143
|
+
| `minColor` | `Color` | The color corresponding to the minimum value of the slider. |
|
|
144
|
+
| `maxColor` | `Color` | The color corresponding to the maximum value of the slider. |
|
|
145
|
+
| `stops` | `Array<Color>` | The array of the slider color stops used for rendering. Unsupported color spaces or angular channels (hues) will have more color stops, while other channels may have as little as two: `minColor` and `maxColor`. |
|
|
146
|
+
| `progress` | `number` | The slider value converted to a 0-1 number with `0` corresponding to the min of the range and `1` to the max. |
|
|
147
|
+
| `channelName` | `string` | The name of the channel (e.g. `Hue` or `Alpha`). |
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
### Events
|
|
151
|
+
|
|
152
|
+
| Name | Description |
|
|
153
|
+
|------|-------------|
|
|
154
|
+
| `input` | Fired when the color changes due to user action. |
|
|
155
|
+
| `change` | Fired when the color changes due to user action. |
|
|
156
|
+
| `valuechange` | Fired when the value changes for any reason, and once during initialization. |
|
|
157
|
+
| `colorchange` | Fired when the color changes for any reason, and once during initialization. |
|
|
158
|
+
|
|
159
|
+
### Parts
|
|
160
|
+
|
|
161
|
+
| Name | Description |
|
|
162
|
+
|------|-------------|
|
|
163
|
+
| `color_slider` | The internal `<color-slider>` element. |
|
|
164
|
+
| `slider` | The `slider` part of the internal [`<color-slider>`](../color-slider/#parts) element. |
|
|
165
|
+
| `label` | The internal `<label>` element used as a wrapper around the default slot and the slider. |
|
|
@@ -1,19 +1,61 @@
|
|
|
1
1
|
.color-slider-label {
|
|
2
|
+
--_transition-duration: var(--transition-duration, 200ms);
|
|
3
|
+
|
|
2
4
|
display: grid;
|
|
3
5
|
grid-template-columns: 1fr auto;
|
|
4
6
|
gap: .3em;
|
|
5
|
-
|
|
7
|
+
align-items: center;
|
|
6
8
|
|
|
7
9
|
em {
|
|
8
10
|
opacity: 60%;
|
|
11
|
+
transition: opacity var(--_transition-duration);
|
|
9
12
|
}
|
|
10
|
-
}
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
14
|
+
&:not(:hover, :focus-within) em {
|
|
15
|
+
opacity: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
input[type=number] {
|
|
19
|
+
--_border-color: var(--border-color, color-mix(in oklab, currentcolor calc(var(--_current-color-percent, 30) * 1%), oklab(none none none / 0%)));
|
|
20
|
+
|
|
21
|
+
all: unset;
|
|
15
22
|
|
|
23
|
+
--content-width: calc(var(--value-length) * 1ch);
|
|
24
|
+
width: calc(var(--content-width, 2ch) + 1.2em);
|
|
25
|
+
min-width: calc(2ch + 1.2em);
|
|
26
|
+
box-sizing: content-box;
|
|
27
|
+
padding: .1em .2em;
|
|
28
|
+
border-radius: .2em;
|
|
29
|
+
border: 1px solid var(--_border-color);
|
|
30
|
+
text-align: center;
|
|
31
|
+
font-size: 90%;
|
|
32
|
+
transition: var(--_transition-duration) allow-discrete;
|
|
33
|
+
transition-property: opacity, border-color;
|
|
16
34
|
|
|
35
|
+
&::-webkit-textfield-decoration-container {
|
|
36
|
+
gap: .2em;
|
|
37
|
+
}
|
|
17
38
|
|
|
39
|
+
&:not(:hover, :focus) {
|
|
40
|
+
--_current-color-percent: 10;
|
|
18
41
|
|
|
42
|
+
opacity: 60%;
|
|
43
|
+
border-color: var(--_border-color);
|
|
19
44
|
|
|
45
|
+
&::-webkit-inner-spin-button {
|
|
46
|
+
/* Fade out the spin buttons in Chrome and Safari */
|
|
47
|
+
opacity: .35;
|
|
48
|
+
filter: contrast(2);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@supports (field-sizing: content) {
|
|
53
|
+
field-sizing: content;
|
|
54
|
+
width: auto;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
color-slider {
|
|
60
|
+
grid-column: 1 / -1;
|
|
61
|
+
}
|
|
@@ -1,40 +1,41 @@
|
|
|
1
1
|
import "../color-slider/color-slider.js";
|
|
2
2
|
import * as dom from "../common/dom.js";
|
|
3
|
-
import
|
|
4
|
-
import NudeElement from "../../node_modules/nude-element/src/Element.js";
|
|
3
|
+
import ColorElement from "../common/color-element.js";
|
|
5
4
|
import { getStep } from "../common/util.js";
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
const Self = class ChannelSlider extends ColorElement {
|
|
7
|
+
static tagName = "channel-slider";
|
|
8
|
+
static url = import.meta.url;
|
|
9
|
+
static styles = "./channel-slider.css";
|
|
10
|
+
static shadowTemplate = `
|
|
11
|
+
<label class="color-slider-label" part="label">
|
|
12
|
+
<slot>
|
|
13
|
+
<span id="channel_info" part="channel-info"></span>
|
|
14
|
+
<input type="number" part="spinner" min="0" max="1" step="0.01" id="spinner" />
|
|
15
|
+
</slot>
|
|
16
|
+
<color-slider part="color_slider" exportparts="slider" id="slider"></color-slider>
|
|
17
|
+
</label>`;
|
|
8
18
|
|
|
9
|
-
export default class ChannelSlider extends NudeElement {
|
|
10
19
|
constructor () {
|
|
11
20
|
super();
|
|
12
21
|
|
|
13
|
-
this.attachShadow({mode: "open"});
|
|
14
|
-
let styleURL = new URL(`./${tagName}.css`, import.meta.url);
|
|
15
|
-
this.shadowRoot.innerHTML = `
|
|
16
|
-
<style>@import url("${ styleURL }")</style>
|
|
17
|
-
<label class="color-slider-label" part="label">
|
|
18
|
-
<slot></slot>
|
|
19
|
-
<color-slider part="color_slider" exportparts="slider" id="slider" tooltip></color-slider>
|
|
20
|
-
</label>
|
|
21
|
-
`;
|
|
22
|
-
|
|
23
22
|
this._el = dom.named(this);
|
|
24
23
|
this._el.slot = this.shadowRoot.querySelector("slot");
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
connectedCallback() {
|
|
26
|
+
connectedCallback () {
|
|
28
27
|
super.connectedCallback?.();
|
|
29
28
|
|
|
30
29
|
this._el.slider.addEventListener("input", this);
|
|
30
|
+
this._el.slot.addEventListener("input", this);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
disconnectedCallback() {
|
|
33
|
+
disconnectedCallback () {
|
|
34
34
|
this._el.slider.removeEventListener("input", this);
|
|
35
|
+
this._el.slot.removeEventListener("input", this);
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
handleEvent(event) {
|
|
38
|
+
handleEvent (event) {
|
|
38
39
|
if (event.type === "input") {
|
|
39
40
|
this.value = event.target.value;
|
|
40
41
|
}
|
|
@@ -42,12 +43,14 @@ export default class ChannelSlider extends NudeElement {
|
|
|
42
43
|
|
|
43
44
|
colorAt (value) {
|
|
44
45
|
let color = this.defaultColor.clone();
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
if (this.channel === "alpha") {
|
|
48
|
+
color.alpha = value / 100;
|
|
47
49
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
else if (this.channel in color.space.coords) {
|
|
51
|
+
color.set(this.channel, value);
|
|
50
52
|
}
|
|
53
|
+
|
|
51
54
|
return color;
|
|
52
55
|
}
|
|
53
56
|
|
|
@@ -86,19 +89,30 @@ export default class ChannelSlider extends NudeElement {
|
|
|
86
89
|
propChangedCallback ({name, prop, detail: change}) {
|
|
87
90
|
if (["space", "min", "max", "step", "value", "defaultValue"].includes(name)) {
|
|
88
91
|
prop.applyChange(this._el.slider, change);
|
|
89
|
-
|
|
92
|
+
|
|
93
|
+
if (["min", "max", "step", "value", "defaultValue"].includes(name)) {
|
|
94
|
+
prop.applyChange(this._el.spinner, change);
|
|
95
|
+
|
|
96
|
+
if (name === "value" && this.value !== undefined) {
|
|
97
|
+
this._el.spinner.value = Number(this.value.toPrecision(4));
|
|
98
|
+
|
|
99
|
+
if (!CSS.supports("field-sizing", "content")) {
|
|
100
|
+
let valueStr = this._el.spinner.value;
|
|
101
|
+
this._el.spinner.style.setProperty("--value-length", valueStr.length);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
90
106
|
|
|
91
107
|
if (name === "defaultColor" || name === "space" || name === "channel" || name === "min" || name === "max") {
|
|
92
108
|
this._el.slider.stops = this.stops;
|
|
93
109
|
|
|
94
110
|
if (name === "space" || name === "channel" || name === "min" || name === "max") {
|
|
95
|
-
this._el.
|
|
111
|
+
this._el.channel_info.innerHTML = `${ this.channelName } <em>(${ this.min } – ${ this.max })</em>`;
|
|
96
112
|
}
|
|
97
113
|
}
|
|
98
114
|
}
|
|
99
115
|
|
|
100
|
-
|
|
101
|
-
|
|
102
116
|
get channelName () {
|
|
103
117
|
return this.channelSpec?.name ?? this.channel;
|
|
104
118
|
}
|
|
@@ -107,13 +121,13 @@ export default class ChannelSlider extends NudeElement {
|
|
|
107
121
|
space: {
|
|
108
122
|
default: "oklch",
|
|
109
123
|
parse (value) {
|
|
110
|
-
if (value instanceof Color.Space || value === null || value === undefined) {
|
|
124
|
+
if (value instanceof Self.Color.Space || value === null || value === undefined) {
|
|
111
125
|
return value;
|
|
112
126
|
}
|
|
113
127
|
|
|
114
128
|
value += "";
|
|
115
129
|
|
|
116
|
-
return Color.Space.get(value);
|
|
130
|
+
return Self.Color.Space.get(value);
|
|
117
131
|
},
|
|
118
132
|
stringify (value) {
|
|
119
133
|
return value?.id;
|
|
@@ -140,6 +154,12 @@ export default class ChannelSlider extends NudeElement {
|
|
|
140
154
|
},
|
|
141
155
|
channelSpec: {
|
|
142
156
|
get () {
|
|
157
|
+
if (this.channel === "alpha") {
|
|
158
|
+
return {
|
|
159
|
+
name: "Alpha",
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
143
163
|
let channelSpec = this.space?.coords[this.channel];
|
|
144
164
|
|
|
145
165
|
if (!channelSpec && this.space) {
|
|
@@ -148,7 +168,7 @@ export default class ChannelSlider extends NudeElement {
|
|
|
148
168
|
}
|
|
149
169
|
|
|
150
170
|
return channelSpec;
|
|
151
|
-
}
|
|
171
|
+
},
|
|
152
172
|
},
|
|
153
173
|
refRange: {
|
|
154
174
|
get () {
|
|
@@ -178,7 +198,16 @@ export default class ChannelSlider extends NudeElement {
|
|
|
178
198
|
defaultValue: {
|
|
179
199
|
type: Number,
|
|
180
200
|
default () {
|
|
181
|
-
|
|
201
|
+
if (this.channel === "alpha") {
|
|
202
|
+
return this.defaultColor.alpha * 100;
|
|
203
|
+
}
|
|
204
|
+
else if (this.channel in this.defaultColor.space.coords) {
|
|
205
|
+
return this.defaultColor.get(this.channel);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
let firstChannel = Object.keys(this.defaultColor.space.coords)[0];
|
|
209
|
+
return this.defaultColor.get(firstChannel);
|
|
210
|
+
}
|
|
182
211
|
},
|
|
183
212
|
reflect: {
|
|
184
213
|
from: "value",
|
|
@@ -191,7 +220,9 @@ export default class ChannelSlider extends NudeElement {
|
|
|
191
220
|
},
|
|
192
221
|
|
|
193
222
|
defaultColor: {
|
|
194
|
-
type
|
|
223
|
+
get type () {
|
|
224
|
+
return Self.Color;
|
|
225
|
+
},
|
|
195
226
|
convert (color) {
|
|
196
227
|
return color.to(this.space);
|
|
197
228
|
},
|
|
@@ -199,18 +230,20 @@ export default class ChannelSlider extends NudeElement {
|
|
|
199
230
|
let coords = [];
|
|
200
231
|
for (let channel in this.space.coords) {
|
|
201
232
|
let spec = this.space.coords[channel];
|
|
202
|
-
let range = spec.refRange ?? spec.range;
|
|
233
|
+
let range = spec.refRange ?? spec.range ?? [0, 100];
|
|
203
234
|
coords.push((range[0] + range[1]) / 2);
|
|
204
235
|
}
|
|
205
236
|
|
|
206
|
-
return new Color(this.space, coords);
|
|
237
|
+
return new Self.Color(this.space, coords);
|
|
207
238
|
},
|
|
208
239
|
reflect: {
|
|
209
240
|
from: "color",
|
|
210
241
|
},
|
|
211
242
|
},
|
|
212
243
|
color: {
|
|
213
|
-
type
|
|
244
|
+
get type () {
|
|
245
|
+
return Self.Color;
|
|
246
|
+
},
|
|
214
247
|
get () {
|
|
215
248
|
return this.colorAt(this.value);
|
|
216
249
|
},
|
|
@@ -220,18 +253,18 @@ export default class ChannelSlider extends NudeElement {
|
|
|
220
253
|
this.value = this.defaultValue;
|
|
221
254
|
},
|
|
222
255
|
},
|
|
223
|
-
}
|
|
256
|
+
};
|
|
224
257
|
|
|
225
258
|
static events = {
|
|
226
259
|
change: {
|
|
227
260
|
from () {
|
|
228
261
|
return this._el.slider;
|
|
229
|
-
}
|
|
262
|
+
},
|
|
230
263
|
},
|
|
231
264
|
input: {
|
|
232
265
|
from () {
|
|
233
266
|
return this._el.slider;
|
|
234
|
-
}
|
|
267
|
+
},
|
|
235
268
|
},
|
|
236
269
|
valuechange: {
|
|
237
270
|
propchange: "value",
|
|
@@ -242,11 +275,13 @@ export default class ChannelSlider extends NudeElement {
|
|
|
242
275
|
};
|
|
243
276
|
|
|
244
277
|
static formAssociated = {
|
|
245
|
-
|
|
278
|
+
like: el => el._el.slider,
|
|
246
279
|
role: "slider",
|
|
247
280
|
valueProp: "value",
|
|
248
281
|
changeEvent: "valuechange",
|
|
249
282
|
};
|
|
250
|
-
}
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
Self.define();
|
|
251
286
|
|
|
252
|
-
|
|
287
|
+
export default Self;
|
|
Binary file
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# `<color-chart>`
|
|
2
|
+
|
|
3
|
+
Display lists of colors as a scatterplot or line chart.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Plot any coordinate, in any color space
|
|
8
|
+
|
|
9
|
+
## Examples
|
|
10
|
+
|
|
11
|
+
### Basic usage
|
|
12
|
+
|
|
13
|
+
Plotting a single color scale:
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<color-chart y="oklch.l">
|
|
17
|
+
<color-scale colors="#e3f2fd, #bbdefb, #90caf9, #64b5f6, #42a5f5, #2196f3, #1e88e5, #1976d2, #1565c0, #0d47a1"></color-scale>
|
|
18
|
+
</color-chart>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
By default, the other coordinate would be the index of the color in the list, but you can specify it explicitly:
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<color-chart y="oklch.l">
|
|
25
|
+
<color-scale colors="50: #e3f2fd, 100: #bbdefb, 200: #90caf9, 300: #64b5f6, 400: #42a5f5, 500: #2196f3, 600: #1e88e5, 700: #1976d2, 800: #1565c0, 900: #0d47a1"></color-scale>
|
|
26
|
+
</color-chart>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
You can also specify a whole label, and if it contains a number, the number will become the X coordinate:
|
|
30
|
+
|
|
31
|
+
```html
|
|
32
|
+
<color-chart y="oklch.c">
|
|
33
|
+
<color-scale colors="Red 50: #fef2f2, Red 100: #fee2e2, Red 200: #fecaca, Red 300: #fca5a5, Red 400: #f87171, Red 500: #ef4444, Red 600: #dc2626, Red 700: #b91c1c, Red 800: #991b1b, Red 900: #7f1d1d, Red 950: #450a0a"></color-scale>
|
|
34
|
+
<color-scale colors="Orange 50: #fff7ed, Orange 100: #ffedd5, Orange 200: #fed7aa, Orange 300: #fdba74, Orange 400: #fb923c, Orange 500: #f97316, Orange 600: #ea580c, Orange 700: #c2410c, Orange 800: #9a3412, Orange 900: #7c2d12, Orange 950: #431407"></color-scale>
|
|
35
|
+
<color-scale colors="Yellow 50: #fefce8, Yellow 100: #fef9c3, Yellow 200: #fef08a, Yellow 300: #fde047, Yellow 400: #facc15, Yellow 500: #eab308, Yellow 600: #ca8a04, Yellow 700: #a16207, Yellow 800: #854d0e, Yellow 900: #713f12, Yellow 950: #422006"></color-scale>
|
|
36
|
+
</color-chart>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
_(Colors courtesy of Tailwind)_
|
|
40
|
+
|
|
41
|
+
### Plotting hues { #hues}
|
|
42
|
+
|
|
43
|
+
Hues will be shifted as needed to produce a better result:
|
|
44
|
+
|
|
45
|
+
```html
|
|
46
|
+
<color-chart y="hsl.h">
|
|
47
|
+
<color-scale colors="hsl(5 50% 50%), hsl(355 50% 50%), hsl(10 50% 50%), hsl(-10 50% 50%)"></color-scale>
|
|
48
|
+
</color-chart>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<color-chart y="oklch.h">
|
|
53
|
+
<color-scale colors="05: #2c0110, 10: #41031a, 20: #67082e, 30: #890e3f, 40: #ac1450, 50: #e01d6b, 60: #f2638c, 70: #fb8ea8, 80: #ffb4c5, 90: #ffdce3, 95: #ffeef1"></color-scale>
|
|
54
|
+
<color-scale colors="05 (WA) / 05: #26050c, 10 (WA) / 10: #3e0817, 20 (WA) / 20: #630d29, 30 (WA) / 30: #88123b, 40 (WA) / 40: #ab174e, 50 (WA) / 50: #de1d6a, 60 (WA) / 60: #ee669b, 70 (WA) / 70: #f391b9, 80 (WA) / 80: #f7b8d3, 90 (WA) / 90: #fbdeeb, 95 (WA) / 95: #fdeef5"></color-scale>
|
|
55
|
+
</color-chart>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### The `info` attribute
|
|
59
|
+
|
|
60
|
+
You can use the `info` attribute to show information about the color scale points. Currently, the only type of information supported is color coords (in any color space), but more will be added in the future.
|
|
61
|
+
|
|
62
|
+
The format of this attribute is analogous to the one of [`<color-swatch>`](../color-swatch/#the-info-attribute).
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<color-chart y="oklch.c" info="L: oklch.l, C: oklch.c, H: oklch.h">
|
|
66
|
+
<color-scale colors="50: #eff6ff, 100: #dbeafe, 200: #bfdbfe, 300: #93c5fd, 400: #60a5fa, 500: #3b82f6, 600: #2563eb, 700: #1d4ed8, 800: #1e40af, 900: #1e3a8a, 950: #172554"></color-scale>
|
|
67
|
+
<color-scale colors="50: #ecfeff, 100: #cffafe, 200: #a5f3fc, 300: #67e8f9, 400: #22d3ee, 500: #06b6d4, 600: #0891b2, 700: #0e7490, 800: #155e75, 900: #164e63, 950: #083344"></color-scale>
|
|
68
|
+
<color-scale colors="50: #f0fdfa, 100: #ccfbf1, 200: #99f6e4, 300: #5eead4, 400: #2dd4bf, 500: #14b8a6, 600: #0d9488, 700: #0f766e, 800: #115e59, 900: #134e4a, 950: #042f2e"></color-scale>
|
|
69
|
+
</color-chart>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Reactively changing the Y coordinate:
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<button onclick="this.nextElementSibling.y = 'hwb.w'">
|
|
76
|
+
Switch to “HWB Whiteness”
|
|
77
|
+
</button>
|
|
78
|
+
<color-chart y="oklch.l">
|
|
79
|
+
<color-scale colors="Red 50: #fef2f2, Red 100: #fee2e2, Red 200: #fecaca, Red 300: #fca5a5, Red 400: #f87171, Red 500: #ef4444, Red 600: #dc2626, Red 700: #b91c1c, Red 800: #991b1b, Red 900: #7f1d1d, Red 950: #450a0a"></color-scale>
|
|
80
|
+
<color-scale colors="Orange 50: #fff7ed, Orange 100: #ffedd5, Orange 200: #fed7aa, Orange 300: #fdba74, Orange 400: #fb923c, Orange 500: #f97316, Orange 600: #ea580c, Orange 700: #c2410c, Orange 800: #9a3412, Orange 900: #7c2d12, Orange 950: #431407"></color-scale>
|
|
81
|
+
<color-scale colors="Yellow 50: #fefce8, Yellow 100: #fef9c3, Yellow 200: #fef08a, Yellow 300: #fde047, Yellow 400: #facc15, Yellow 500: #eab308, Yellow 600: #ca8a04, Yellow 700: #a16207, Yellow 800: #854d0e, Yellow 900: #713f12, Yellow 950: #422006"></color-scale>
|
|
82
|
+
</color-chart>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Reactively setting/changing the colors:
|
|
86
|
+
```html
|
|
87
|
+
<label>Colors:
|
|
88
|
+
<select onchange="this.parentNode.nextElementSibling.firstElementChild.colors = this.value">
|
|
89
|
+
<option selected value="">None</option>
|
|
90
|
+
<option value="Yellow 50: #fefce8, Yellow 100: #fef9c3, Yellow 200: #fef08a, Yellow 300: #fde047, Yellow 400: #facc15, Yellow 500: #eab308, Yellow 600: #ca8a04, Yellow 700: #a16207, Yellow 800: #854d0e, Yellow 900: #713f12, Yellow 950: #422006">Yellow</option>
|
|
91
|
+
<option value="Orange 50: #fff7ed, Orange 100: #ffedd5, Orange 200: #fed7aa, Orange 300: #fdba74, Orange 400: #fb923c, Orange 500: #f97316, Orange 600: #ea580c, Orange 700: #c2410c, Orange 800: #9a3412, Orange 900: #7c2d12, Orange 950: #431407">Orange</option>
|
|
92
|
+
<option value="Red 50: #fef2f2, Red 100: #fee2e2, Red 200: #fecaca, Red 300: #fca5a5, Red 400: #f87171, Red 500: #ef4444, Red 600: #dc2626, Red 700: #b91c1c, Red 800: #991b1b, Red 900: #7f1d1d, Red 950: #450a0a">Red</option>
|
|
93
|
+
</select>
|
|
94
|
+
</label>
|
|
95
|
+
<color-chart y="oklch.l">
|
|
96
|
+
<color-scale></color-scale>
|
|
97
|
+
</color-chart>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Reference
|
|
101
|
+
|
|
102
|
+
### Attributes & Properties
|
|
103
|
+
|
|
104
|
+
| Attribute | Property | Property type | Default value | Description |
|
|
105
|
+
|-----------|----------|---------------|---------------|-------------|
|
|
106
|
+
| `x` | `x` | `string` | `null` | The coord to plot on the X axis, if any |
|
|
107
|
+
| `y` | `y` | `string` | `"oklch.l"` | The coord to plot on the Y axis, if any |
|
|
108
|
+
| `info` | `info` | `string` | - | Comma-separated list of coords of the color point to be shown. |
|
|
109
|
+
|
|
110
|
+
### Events
|
|
111
|
+
|
|
112
|
+
| Name | Description |
|
|
113
|
+
|------|-------------|
|
|
114
|
+
|
|
115
|
+
### CSS variables
|
|
116
|
+
|
|
117
|
+
| Name | Type | Description |
|
|
118
|
+
|------|------|-------------|
|
|
119
|
+
| `--color-scale-type` | `discrete` or `normal` | Whether to draw lines between consecutive points. Works on individual color swatches (to prevent drawing a line to the *next* point), entire color scales, or the entire chart. |
|
|
120
|
+
|
|
121
|
+
### Parts
|
|
122
|
+
|
|
123
|
+
| Name | Description |
|
|
124
|
+
|------|-------------|
|
|
125
|
+
| `color-channel` | The default [`<channel-picker>`](../channel-picker/) element, used if the `color-channel` slot has no slotted elements. |
|
|
126
|
+
| `axis` | The axis line |
|
|
127
|
+
| `ticks` | The container of ticks |
|
|
128
|
+
| `tick` | A tick mark |
|
|
129
|
+
| `label` | A label on the axis |
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
@property --chart-width {
|
|
2
|
+
syntax: '<length-percentage>';
|
|
3
|
+
initial-value: 100%;
|
|
4
|
+
inherits: true;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@property --width {
|
|
8
|
+
syntax: "<length>";
|
|
9
|
+
initial-value: 0px;
|
|
10
|
+
inherits: true;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@property --height {
|
|
14
|
+
syntax: "<length>";
|
|
15
|
+
initial-value: 0px;
|
|
16
|
+
inherits: true;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@property --angle {
|
|
20
|
+
syntax: "<angle>";
|
|
21
|
+
initial-value: 0deg;
|
|
22
|
+
inherits: true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
color-chart {
|
|
26
|
+
--_point-size: var(--point-size, .6em);
|
|
27
|
+
--_line-width: var(--line-width, .2em);
|
|
28
|
+
--color-swatch-width: var(--color-swatch-width, var(--_point-size));
|
|
29
|
+
--color-swatch-radius: var(--color-swatch-radius, 50%);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
color-chart > color-scale {
|
|
33
|
+
--extent-x: calc(var(--max-x) - var(--min-x));
|
|
34
|
+
--extent-y: calc(var(--max-y) - var(--min-y));
|
|
35
|
+
|
|
36
|
+
&::part(color-swatch) {
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: calc((1 - (var(--y) - var(--min-y)) / (var(--max-y) - var(--min-y))) * 100cqh);
|
|
39
|
+
left: calc( (var(--x) - var(--min-x)) / (var(--max-x) - var(--min-x)) * 100%);
|
|
40
|
+
width: var(--_point-size);
|
|
41
|
+
aspect-ratio: 1;
|
|
42
|
+
border-radius: 50%;
|
|
43
|
+
background: yellow;
|
|
44
|
+
min-block-size: 0;
|
|
45
|
+
translate: -50% -50%;
|
|
46
|
+
transition: 300ms .01ms;
|
|
47
|
+
transition-property: width, opacity;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&::part(color-swatch):hover {
|
|
51
|
+
/* Cannot use CSS transforms here because that also affects the line */
|
|
52
|
+
--_point-size: calc(var(--point-size, .6em) * 1.5);
|
|
53
|
+
z-index: 1;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Lines */
|
|
57
|
+
@container not style(--color-scale-type: discrete) {
|
|
58
|
+
&::part(color-swatch)::before {
|
|
59
|
+
--delta-x: calc(var(--next-x) - var(--x));
|
|
60
|
+
--delta-y: calc(var(--next-y) - var(--y));
|
|
61
|
+
--delta-y-abs: max(var(--delta-y), -1 * var(--delta-y));
|
|
62
|
+
--delta-y-sign: calc(var(--delta-y) / var(--delta-y-abs));
|
|
63
|
+
|
|
64
|
+
--width: calc( var(--chart-width) * var(--delta-x) / var(--extent-x));
|
|
65
|
+
--height: calc( var(--chart-height) * var(--delta-y-abs) / var(--extent-y));
|
|
66
|
+
--angle: atan2(var(--height), var(--width));
|
|
67
|
+
|
|
68
|
+
content: "";
|
|
69
|
+
position: absolute;
|
|
70
|
+
z-index: 1;
|
|
71
|
+
left: calc(50% - var(--_line-width) / 2);
|
|
72
|
+
top: calc(50% - var(--_line-width) / 2);
|
|
73
|
+
width: calc((var(--width) + var(--_line-width)) / cos(var(--angle)));
|
|
74
|
+
height: var(--_line-width);
|
|
75
|
+
transform-origin: calc(var(--_line-width) / 2) calc(var(--_line-width) / 2);
|
|
76
|
+
/* if delta y is negative, this needs to rotate the other way */
|
|
77
|
+
rotate: calc(-1 * var(--delta-y-sign) * var(--angle));
|
|
78
|
+
background: linear-gradient(to right, var(--color), var(--next-color));
|
|
79
|
+
|
|
80
|
+
/* Don't show points tooltips on hovering the line */
|
|
81
|
+
pointer-events: none;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&::part(info) {}
|
|
86
|
+
|
|
87
|
+
&::part(swatch) {
|
|
88
|
+
min-block-size: 0;
|
|
89
|
+
padding: .2em;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&::part(gamut) {
|
|
93
|
+
font-size: 40%;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
color-chart:has(> color-scale:hover) {
|
|
98
|
+
> color-scale:not(:hover) {
|
|
99
|
+
opacity: .4;
|
|
100
|
+
}
|
|
101
|
+
}
|