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.
- 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 +11 -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/debug.html +447 -0
- package/index.js +5 -1
- package/package.json +2 -1
- 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 +97 -0
- package/src/color-chart/color-chart.css +112 -0
- package/src/color-chart/color-chart.js +441 -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 +40 -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 +162 -27
- package/src/color-swatch/color-swatch.js +191 -217
- package/src/color-swatch/color-swatch.webp +0 -0
- package/src/common/color-element.js +86 -0
- package/src/common/dom.js +1 -1
- package/src/common/util.js +12 -99
- 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
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import ColorElement from "../common/color-element.js";
|
|
2
|
+
import "../color-swatch/color-swatch.js";
|
|
3
|
+
|
|
4
|
+
const Self = class ColorScale extends ColorElement {
|
|
5
|
+
static tagName = "color-scale";
|
|
6
|
+
static url = import.meta.url;
|
|
7
|
+
static dependencies = new Set(["color-swatch"]);
|
|
8
|
+
static shadowStyle = true;
|
|
9
|
+
static shadowTemplate = `
|
|
10
|
+
<div id=swatches></div>
|
|
11
|
+
<slot></slot>`;
|
|
12
|
+
|
|
13
|
+
constructor () {
|
|
14
|
+
super();
|
|
15
|
+
|
|
16
|
+
this._el = {
|
|
17
|
+
slot: this.shadowRoot.querySelector("slot"),
|
|
18
|
+
swatches: this.shadowRoot.getElementById("swatches"),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
connectedCallback () {
|
|
23
|
+
super.connectedCallback?.();
|
|
24
|
+
this._el.swatches.addEventListener("colorchange", this, {capture: true});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
disconnectedCallback () {
|
|
28
|
+
this.#swatches = [];
|
|
29
|
+
this._el.swatches.removeEventListener("colorchange", this, {capture: true});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
handleEvent (event) {
|
|
33
|
+
this.dispatchEvent(new event.constructor(event.type, {...event}));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
propChangedCallback ({name, prop, detail: change}) {
|
|
37
|
+
if (name === "computedColors") {
|
|
38
|
+
// Re-render swatches
|
|
39
|
+
this.render();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#swatches = [];
|
|
44
|
+
|
|
45
|
+
render () {
|
|
46
|
+
let colors = this.computedColors;
|
|
47
|
+
|
|
48
|
+
if (!colors) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
let colorCount = colors.length;
|
|
53
|
+
|
|
54
|
+
let i = 0;
|
|
55
|
+
let newSwatches = [];
|
|
56
|
+
for (let {name, color} of colors) {
|
|
57
|
+
let swatch = this.#swatches[i] = this._el.swatches.children[i];
|
|
58
|
+
|
|
59
|
+
if (!swatch) {
|
|
60
|
+
this.#swatches[i] = swatch = document.createElement("color-swatch");
|
|
61
|
+
swatch.setAttribute("size", "large");
|
|
62
|
+
swatch.setAttribute("part", "color-swatch");
|
|
63
|
+
swatch.setAttribute("exportparts", "swatch, info, gamut");
|
|
64
|
+
newSwatches.push(swatch);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
swatch.color = color;
|
|
68
|
+
swatch.label = name;
|
|
69
|
+
if (this.info) {
|
|
70
|
+
swatch.info = this.info;
|
|
71
|
+
}
|
|
72
|
+
i++;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (newSwatches.length > 0) {
|
|
76
|
+
this._el.swatches.append(...newSwatches);
|
|
77
|
+
}
|
|
78
|
+
else if (colorCount < this._el.swatches.children.length) {
|
|
79
|
+
// Remove but keep them around in this.#swatches
|
|
80
|
+
[...this._el.swatches.children].slice(colorCount).forEach(child => child.remove());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static props = {
|
|
85
|
+
colors: {
|
|
86
|
+
type: {
|
|
87
|
+
is: Object,
|
|
88
|
+
// Support overriding the Color object
|
|
89
|
+
get values () {
|
|
90
|
+
return ColorScale.Color;
|
|
91
|
+
},
|
|
92
|
+
defaultKey: (v, i) => v,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
space: {
|
|
96
|
+
default: "oklch",
|
|
97
|
+
parse (value) {
|
|
98
|
+
let ColorSpace = ColorScale.Color.Space;
|
|
99
|
+
if (value instanceof ColorSpace || value === null || value === undefined) {
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
value += "";
|
|
104
|
+
|
|
105
|
+
return ColorSpace.get(value);
|
|
106
|
+
},
|
|
107
|
+
stringify (value) {
|
|
108
|
+
return value?.id;
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
steps: {
|
|
112
|
+
type: Number,
|
|
113
|
+
default: 0,
|
|
114
|
+
},
|
|
115
|
+
computedColors: {
|
|
116
|
+
get () {
|
|
117
|
+
if (!this.colors) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
let colors = Object.entries(this.colors).map(([name, color]) => ({name, color}));
|
|
122
|
+
|
|
123
|
+
if (this.steps > 0) {
|
|
124
|
+
// Insert intermediate steps
|
|
125
|
+
let tessellated = [];
|
|
126
|
+
|
|
127
|
+
for (let i = 1; i < colors.length; i++) {
|
|
128
|
+
let start = colors[i - 1];
|
|
129
|
+
let end = colors[i];
|
|
130
|
+
let steps = ColorScale.Color.steps(start.color, end.color, { space: this.space, steps: this.steps + 2 });
|
|
131
|
+
|
|
132
|
+
steps.shift();
|
|
133
|
+
steps.pop();
|
|
134
|
+
steps = steps.map(color => ({name: color + "", color}));
|
|
135
|
+
|
|
136
|
+
tessellated.push(start, ...steps);
|
|
137
|
+
|
|
138
|
+
if (i === colors.length - 1) {
|
|
139
|
+
// Only add the last color at the end
|
|
140
|
+
// In all other iterations, it’s the same as the start of the next pair
|
|
141
|
+
tessellated.push(end);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
colors = tessellated;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return colors;
|
|
149
|
+
},
|
|
150
|
+
additionalDependencies: ["info"],
|
|
151
|
+
},
|
|
152
|
+
info: {},
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
static events = {
|
|
156
|
+
colorschange: {
|
|
157
|
+
propchange: "computedColors",
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
Self.define();
|
|
163
|
+
|
|
164
|
+
export default Self;
|
|
Binary file
|
|
@@ -6,7 +6,7 @@ Creates a slider with a gradient background, primarily intended for color pickin
|
|
|
6
6
|
|
|
7
7
|
There are many ways to use this component, depending on what you need.
|
|
8
8
|
E.g. if all you need is styling sliders with arbitrary gradients you don’t even need a component,
|
|
9
|
-
you can just [use the CSS file](#css-only) and a few classes and CSS variables to style regular HTML sliders.
|
|
9
|
+
you can just [use the CSS file](#css-only-usage) and a few classes and CSS variables to style regular HTML sliders.
|
|
10
10
|
|
|
11
11
|
The actual component does a lot more:
|
|
12
12
|
- It provides a `color` property with the actual color value
|
|
@@ -142,13 +142,20 @@ Then use a `color-slider` class on your slider element, and use [CSS variables](
|
|
|
142
142
|
|
|
143
143
|
## Reference
|
|
144
144
|
|
|
145
|
+
### Slots
|
|
146
|
+
|
|
147
|
+
| Name | Description |
|
|
148
|
+
|------|-------------|
|
|
149
|
+
| _(default)_ | Content placed after the color slider. |
|
|
150
|
+
| `tooltip` | An element used as a tooltip. |
|
|
151
|
+
|
|
145
152
|
### Attributes & Properties
|
|
146
153
|
|
|
147
154
|
| Attribute | Property | Property type | Default value | Description |
|
|
148
155
|
|-----------|----------|---------------|---------------|-------------|
|
|
149
156
|
| `space` | `space` | `ColorSpace` | `string` | `oklch` | The color space to use for interpolation. |
|
|
150
|
-
| `color` | `color` | `Color` | `string` | `oklch(50 50% 180)` | The current color value. |
|
|
151
|
-
| `stops` | `stops` | `String` | `Array<Color>` | - | Comma-separated list of color stops |
|
|
157
|
+
| `color` | `color` | `Color` | `string` | `oklch(50% 50% 180)` | The current color value. |
|
|
158
|
+
| `stops` | `stops` | `String` | `Array<Color>` | - | Comma-separated list of color stops. |
|
|
152
159
|
| `min` | `min` | `number` | 0 | The minimum value for the slider. |
|
|
153
160
|
| `max` | `max` | `number` | 1 | The maximum value for the slider. |
|
|
154
161
|
| `step` | `step` | `number` | Computed automatically based on `this.min` and `this.max`. | The granularity that the slider's current value must adhere to. |
|
|
@@ -163,7 +170,11 @@ If you’re only using the CSS file, you should set these yourself.
|
|
|
163
170
|
|----------|---------------|-------------|
|
|
164
171
|
| `--slider-color-stops` | `<color>#` | Comma-separated list of color stops. |
|
|
165
172
|
| `--color-space` | `<ident>` | The color space to use for interpolation. |
|
|
166
|
-
| `--hue-interpolation` | `[shorter` | `longer` | `increasing` | `decreasing] hue` | The
|
|
173
|
+
| `--hue-interpolation` | `[shorter` | `longer` | `increasing` | `decreasing] hue` | The hue interpolation method to use. |
|
|
174
|
+
| `--transparency-grid` | `<image>` | Gradient used as a background for transparent parts of the slider. |
|
|
175
|
+
| `--transparency-cell-size` | `<length>` | The size of the cells of the transparency gradient. |
|
|
176
|
+
| `--transparcency-background` | `<color>` | The background color of the transparency gradient. |
|
|
177
|
+
| `--transparency-darkness` | `<percentage>` | The opacity of the black color used for dark parts of the transparency gradient. |
|
|
167
178
|
| `--slider-gradient` | `<image>` | The gradient to use as the background. |
|
|
168
179
|
| `--slider-height` | `<length>` | Height of the slider track. |
|
|
169
180
|
| `--slider-thumb-width` | `<length>` | Width of the slider thumb. |
|
|
@@ -179,6 +190,15 @@ If you’re only using the CSS file, you should set these yourself.
|
|
|
179
190
|
| `--tooltip-pointer-height` | `<length>` | Height of the tooltip pointer triangle. |
|
|
180
191
|
| `--tooltip-pointer-angle` | `<angle>` | Angle of the tooltip pointer triangle. |
|
|
181
192
|
|
|
193
|
+
### Getters
|
|
194
|
+
|
|
195
|
+
These properties are read-only.
|
|
196
|
+
|
|
197
|
+
| Property | Type | Description |
|
|
198
|
+
|----------|------|-------------|
|
|
199
|
+
| `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. |
|
|
200
|
+
|
|
201
|
+
|
|
182
202
|
### Events
|
|
183
203
|
|
|
184
204
|
| Name | Description |
|
|
@@ -188,6 +208,13 @@ If you’re only using the CSS file, you should set these yourself.
|
|
|
188
208
|
| `valuechange` | Fired when the value changes for any reason, and once during initialization. |
|
|
189
209
|
| `colorchange` | Fired when the color changes for any reason, and once during initialization. |
|
|
190
210
|
|
|
211
|
+
### Parts
|
|
212
|
+
|
|
213
|
+
| Name | Description |
|
|
214
|
+
|------|-------------|
|
|
215
|
+
| `slider` | The internal `<input type="range">` element. |
|
|
216
|
+
| `spinner` | The default `tooltip` slot content (an `<input type="number">` element). Please note that if an element is slotted in the `tooltip` slot, this will not match anyhing. |
|
|
217
|
+
|
|
191
218
|
## Planned features
|
|
192
219
|
|
|
193
220
|
- Discrete scales & steps
|
|
@@ -5,7 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
.color-slider,
|
|
7
7
|
.slider-tooltip {
|
|
8
|
-
--transparency
|
|
8
|
+
--transparency-cell-size: 1.5em;
|
|
9
|
+
--_transparency-cell-size: var(--transparency-cell-size, .5em);
|
|
10
|
+
--_transparency-background: var(--transparency-background, transparent);
|
|
11
|
+
--_transparency-darkness: var(--transparency-darkness, 5%);
|
|
12
|
+
--_transparency-grid: var(--transparency-grid,
|
|
13
|
+
repeating-conic-gradient(transparent 0 25%, rgb(0 0 0 / var(--_transparency-darkness)) 0 50%)
|
|
14
|
+
0 0 / calc(2 * var(--_transparency-cell-size)) calc(2 * var(--_transparency-cell-size))
|
|
15
|
+
content-box border-box var(--_transparency-background)
|
|
16
|
+
);
|
|
9
17
|
|
|
10
18
|
--_slider-color-stops: var(--slider-color-stops, transparent 0% 100%);
|
|
11
19
|
--_slider-gradient: var(--slider-gradient, linear-gradient(to right var(--in-space, ), var(--_slider-color-stops)));
|
|
@@ -36,7 +44,7 @@
|
|
|
36
44
|
width: 100%;
|
|
37
45
|
-moz-appearance: none;
|
|
38
46
|
-webkit-appearance: none;
|
|
39
|
-
background: var(--_slider-gradient), var(--
|
|
47
|
+
background: var(--_slider-gradient), var(--_transparency-grid);
|
|
40
48
|
background-origin: border-box;
|
|
41
49
|
background-clip: border-box;
|
|
42
50
|
height: var(--_slider-height);
|
|
@@ -66,11 +74,6 @@
|
|
|
66
74
|
transition: 200ms, 0s background;
|
|
67
75
|
}
|
|
68
76
|
|
|
69
|
-
&::-webkit-slider-thumb:active {
|
|
70
|
-
border: var(--_slider-thumb-border-active);
|
|
71
|
-
scale: var(--_slider-thumb-scale-active);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
77
|
&::-moz-range-thumb:active {
|
|
75
78
|
border: var(--_slider-thumb-border-active);
|
|
76
79
|
scale: var(--_slider-thumb-scale-active);
|
|
@@ -81,6 +84,13 @@
|
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
|
|
87
|
+
/* For some reason, the &::-webkit-slider-thumb:active rule (previously used inside the above rule) doesn't work 🤷♂️ */
|
|
88
|
+
/* DO NOT MOVE IT BACK! :) */
|
|
89
|
+
.color-slider::-webkit-slider-thumb:active {
|
|
90
|
+
border: var(--_slider-thumb-border-active);
|
|
91
|
+
scale: var(--_slider-thumb-scale-active);
|
|
92
|
+
}
|
|
93
|
+
|
|
84
94
|
.slider-tooltip {
|
|
85
95
|
position: absolute;
|
|
86
96
|
left: clamp(-20%,
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import Color from "../common/color.js";
|
|
3
|
-
import NudeElement from "../../node_modules/nude-element/src/Element.js";
|
|
1
|
+
import ColorElement from "../common/color-element.js";
|
|
4
2
|
import { getStep } from "../common/util.js";
|
|
5
3
|
|
|
6
4
|
let supports = {
|
|
@@ -8,23 +6,19 @@ let supports = {
|
|
|
8
6
|
fieldSizing: CSS?.supports("field-sizing", "content"),
|
|
9
7
|
};
|
|
10
8
|
|
|
11
|
-
const Self = class ColorSlider extends
|
|
12
|
-
static postConstruct = [];
|
|
9
|
+
const Self = class ColorSlider extends ColorElement {
|
|
13
10
|
static tagName = "color-slider";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let styleURL = new URL(`./${this.constructor.tagName}.css`, import.meta.url);
|
|
20
|
-
this.shadowRoot.innerHTML = `
|
|
21
|
-
<style>@import url("${ styleURL }")</style>
|
|
22
|
-
<input type="range" class="color-slider" part="slider" min="0" max="1" step="0.01" part="slider" />
|
|
11
|
+
static url = import.meta.url;
|
|
12
|
+
static shadowStyle = true;
|
|
13
|
+
static shadowTemplate = `
|
|
14
|
+
<input type="range" class="color-slider" part="slider" min="0" max="1" step="0.01" />
|
|
23
15
|
<slot name="tooltip" class="slider-tooltip">
|
|
24
16
|
<input type="number" part="spinner" min="0" max="1" step="0.01" />
|
|
25
17
|
</slot>
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
<slot></slot>`;
|
|
19
|
+
|
|
20
|
+
constructor () {
|
|
21
|
+
super();
|
|
28
22
|
|
|
29
23
|
this._el = {
|
|
30
24
|
slider: this.shadowRoot.querySelector(".color-slider"),
|
|
@@ -32,14 +26,14 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
32
26
|
};
|
|
33
27
|
}
|
|
34
28
|
|
|
35
|
-
connectedCallback() {
|
|
29
|
+
connectedCallback () {
|
|
36
30
|
super.connectedCallback?.();
|
|
37
31
|
|
|
38
32
|
this._el.slider.addEventListener("input", this);
|
|
39
33
|
this._el.spinner.addEventListener("input", this);
|
|
40
34
|
}
|
|
41
35
|
|
|
42
|
-
disconnectedCallback() {
|
|
36
|
+
disconnectedCallback () {
|
|
43
37
|
this._el.slider.removeEventListener("input", this);
|
|
44
38
|
this._el.spinner.removeEventListener("input", this);
|
|
45
39
|
}
|
|
@@ -63,8 +57,17 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
63
57
|
if (["min", "max", "step", "value", "defaultValue"].includes(name)) {
|
|
64
58
|
prop.applyChange(this._el.slider, change);
|
|
65
59
|
|
|
66
|
-
let
|
|
67
|
-
|
|
60
|
+
let value = change.value;
|
|
61
|
+
if (this.tooltip === "progress") {
|
|
62
|
+
if (name === "value" || name === "defaultValue") {
|
|
63
|
+
value = +(this.progress * 100).toPrecision(4);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// Spinner values when tooltip is "progress"
|
|
67
|
+
value = ({ min: 1, max: 100, step: 1 })[name];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
prop.applyChange(this._el.spinner, {...change, value: +(+value).toPrecision(4)});
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
if (name === "stops") {
|
|
@@ -72,7 +75,27 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
72
75
|
let stops = this.stops;
|
|
73
76
|
let supported = stops.every(color => CSS.supports("color", color));
|
|
74
77
|
|
|
75
|
-
|
|
78
|
+
// CSS does not support (yet?) a raw hue interpolation,
|
|
79
|
+
// so we need to fake it with tessellateStops() in cases of polar space and far-apart stops.
|
|
80
|
+
let farApart = false;
|
|
81
|
+
let space = this.space;
|
|
82
|
+
if (space.isPolar) {
|
|
83
|
+
for (let i = 1; i < stops.length; i++) {
|
|
84
|
+
// Even though space is polar, color stops might be in non-polar spaces
|
|
85
|
+
let first = stops[i - 1].to(space);
|
|
86
|
+
let second = stops[i].to(space);
|
|
87
|
+
|
|
88
|
+
let firstHue = first.get("h");
|
|
89
|
+
let secondHue = second.get("h");
|
|
90
|
+
|
|
91
|
+
if (Math.abs(firstHue - secondHue) >= 180) {
|
|
92
|
+
farApart = true;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (!supported || farApart) {
|
|
76
99
|
stops = this.tessellateStops({ steps: 3 });
|
|
77
100
|
}
|
|
78
101
|
|
|
@@ -99,21 +122,36 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
99
122
|
this.style.setProperty("--color", displayedColor);
|
|
100
123
|
}
|
|
101
124
|
}
|
|
102
|
-
else if (name === "value") {
|
|
125
|
+
else if (name === "value" || name === "min" || name === "max") {
|
|
103
126
|
this.style.setProperty("--progress", this.progress);
|
|
104
127
|
|
|
105
|
-
if (!supports.fieldSizing) {
|
|
128
|
+
if (name === "value" && !supports.fieldSizing) {
|
|
106
129
|
let valueStr = this.value + "";
|
|
107
130
|
this._el.spinner.style.setProperty("--value-length", valueStr.length);
|
|
108
131
|
}
|
|
109
132
|
}
|
|
133
|
+
else if (name === "tooltip") {
|
|
134
|
+
if (change.value !== undefined) {
|
|
135
|
+
let values = this;
|
|
136
|
+
if (change.value === "progress") {
|
|
137
|
+
values = {
|
|
138
|
+
min: 1, max: 100, step: 1,
|
|
139
|
+
value: +(this.progress * 100).toPrecision(4),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
["min", "max", "step", "value"].forEach(name => {
|
|
144
|
+
this._el.spinner[name] = values[name];
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
110
148
|
}
|
|
111
149
|
|
|
112
150
|
tessellateStops (options = {}) {
|
|
113
151
|
let stops = this.stops;
|
|
114
152
|
let tessellated = [];
|
|
115
153
|
|
|
116
|
-
for (let i=1; i<stops.length; i++) {
|
|
154
|
+
for (let i = 1; i < stops.length; i++) {
|
|
117
155
|
let start = stops[i - 1];
|
|
118
156
|
let end = stops[i];
|
|
119
157
|
let steps = start.steps(end, { space: this.space, ...options });
|
|
@@ -183,11 +221,13 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
183
221
|
},
|
|
184
222
|
},
|
|
185
223
|
stops: {
|
|
186
|
-
type:
|
|
187
|
-
|
|
188
|
-
|
|
224
|
+
type: {
|
|
225
|
+
is: Array,
|
|
226
|
+
get values () {
|
|
227
|
+
return Self.Color;
|
|
228
|
+
},
|
|
189
229
|
},
|
|
190
|
-
default: el => []
|
|
230
|
+
default: el => [],
|
|
191
231
|
},
|
|
192
232
|
defaultValue: {
|
|
193
233
|
type: Number,
|
|
@@ -209,13 +249,13 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
209
249
|
return this.stops[0]?.space ?? "oklab";
|
|
210
250
|
},
|
|
211
251
|
parse (value) {
|
|
212
|
-
if (value instanceof Color.Space || value === null || value === undefined) {
|
|
252
|
+
if (value instanceof Self.Color.Space || value === null || value === undefined) {
|
|
213
253
|
return value;
|
|
214
254
|
}
|
|
215
255
|
|
|
216
256
|
value += "";
|
|
217
257
|
|
|
218
|
-
return Color.Space.get(value);
|
|
258
|
+
return Self.Color.Space.get(value);
|
|
219
259
|
},
|
|
220
260
|
stringify (value) {
|
|
221
261
|
return value?.id;
|
|
@@ -223,7 +263,9 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
223
263
|
},
|
|
224
264
|
|
|
225
265
|
color: {
|
|
226
|
-
type
|
|
266
|
+
get type () {
|
|
267
|
+
return Self.Color;
|
|
268
|
+
},
|
|
227
269
|
get () {
|
|
228
270
|
return this.colorAt(this.value);
|
|
229
271
|
},
|
|
@@ -234,10 +276,10 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
234
276
|
let stops = this.stops;
|
|
235
277
|
let scales = [];
|
|
236
278
|
|
|
237
|
-
for (let i=1; i<stops.length; i++) {
|
|
279
|
+
for (let i = 1; i < stops.length; i++) {
|
|
238
280
|
let start = stops[i - 1];
|
|
239
281
|
let end = stops[i];
|
|
240
|
-
let range = start.range(end, { space: this.space
|
|
282
|
+
let range = start.range(end, { space: this.space });
|
|
241
283
|
scales.push(range);
|
|
242
284
|
}
|
|
243
285
|
|
|
@@ -255,7 +297,7 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
255
297
|
change: {
|
|
256
298
|
from () {
|
|
257
299
|
return this._el.slider;
|
|
258
|
-
}
|
|
300
|
+
},
|
|
259
301
|
},
|
|
260
302
|
valuechange: {
|
|
261
303
|
propchange: "value",
|
|
@@ -266,13 +308,13 @@ const Self = class ColorSlider extends NudeElement {
|
|
|
266
308
|
};
|
|
267
309
|
|
|
268
310
|
static formAssociated = {
|
|
269
|
-
|
|
311
|
+
like: el => el._el.slider,
|
|
270
312
|
role: "slider",
|
|
271
313
|
valueProp: "value",
|
|
272
314
|
changeEvent: "valuechange",
|
|
273
315
|
};
|
|
274
|
-
}
|
|
316
|
+
};
|
|
275
317
|
|
|
276
|
-
|
|
318
|
+
Self.define();
|
|
277
319
|
|
|
278
|
-
export default Self;
|
|
320
|
+
export default Self;
|
|
Binary file
|