Skip to content

Commit 3a2e81f

Browse files
rise-erpeldingcastastrophe
authored andcommitted
feat(colorloupe): migrate to s2 drop-shadow tokens (#3301)
1 parent 6041ce6 commit 3a2e81f

File tree

3 files changed

+57
-18
lines changed

3 files changed

+57
-18
lines changed

.changeset/strange-glasses-allow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@spectrum-css/colorloupe": major
3+
---
4+
5+
Migrates color loupe to Spectrum 2 tokens. Color loupe now uses the new drop shadow tokens `--spectrum-drop-shadow-elevated-x`, `--spectrum-drop-shadow-elevated-y`, `--spectrum-drop-shadow-elevated-blur`, and `--spectrum-drop-shadow-elevated-color` rather than specific color loupe tokens.

components/colorloupe/dist/metadata.json

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,35 @@
2626
],
2727
"component": [
2828
"--spectrum-color-loupe-bottom-to-color-handle",
29-
"--spectrum-color-loupe-drop-shadow-blur",
30-
"--spectrum-color-loupe-drop-shadow-color",
31-
"--spectrum-color-loupe-drop-shadow-y",
3229
"--spectrum-color-loupe-height",
3330
"--spectrum-color-loupe-inner-border",
3431
"--spectrum-color-loupe-inner-border-width",
3532
"--spectrum-color-loupe-outer-border",
3633
"--spectrum-color-loupe-outer-border-width",
3734
"--spectrum-color-loupe-width",
38-
"--spectrum-colorloupe-checkerboard-fill"
35+
"--spectrum-colorloupe-animation-distance",
36+
"--spectrum-colorloupe-checkerboard-dark-color",
37+
"--spectrum-colorloupe-checkerboard-fill",
38+
"--spectrum-colorloupe-checkerboard-light-color",
39+
"--spectrum-colorloupe-drop-shadow-blur",
40+
"--spectrum-colorloupe-drop-shadow-color",
41+
"--spectrum-colorloupe-drop-shadow-x",
42+
"--spectrum-colorloupe-drop-shadow-y",
43+
"--spectrum-colorloupe-height",
44+
"--spectrum-colorloupe-inner-border-color",
45+
"--spectrum-colorloupe-inner-border-width",
46+
"--spectrum-colorloupe-offset",
47+
"--spectrum-colorloupe-outer-border-color",
48+
"--spectrum-colorloupe-outer-border-width",
49+
"--spectrum-colorloupe-width"
3950
],
4051
"global": [
4152
"--spectrum-color-handle-outer-border-width",
4253
"--spectrum-color-handle-size",
43-
"--spectrum-drop-shadow-x",
54+
"--spectrum-drop-shadow-elevated-blur",
55+
"--spectrum-drop-shadow-elevated-color",
56+
"--spectrum-drop-shadow-elevated-x",
57+
"--spectrum-drop-shadow-elevated-y",
4458
"--spectrum-opacity-checkerboard-square-dark",
4559
"--spectrum-opacity-checkerboard-square-light",
4660
"--spectrum-picked-color"

components/colorloupe/index.css

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,44 @@
1212
*/
1313

1414
.spectrum-ColorLoupe {
15-
inline-size: var(--spectrum-color-loupe-width);
16-
block-size: var(--spectrum-color-loupe-height);
15+
--spectrum-colorloupe-width: var(--spectrum-color-loupe-width);
16+
--spectrum-colorloupe-height: var(--spectrum-color-loupe-height);
17+
18+
--spectrum-colorloupe-offset: var(--spectrum-color-loupe-bottom-to-color-handle);
19+
--spectrum-colorloupe-animation-distance: 8px; /* TODO: replace with forthcoming animation token */
20+
21+
--spectrum-colorloupe-drop-shadow-x: var(--spectrum-drop-shadow-elevated-x);
22+
--spectrum-colorloupe-drop-shadow-y: var(--spectrum-drop-shadow-elevated-y);
23+
--spectrum-colorloupe-drop-shadow-blur: var(--spectrum-drop-shadow-elevated-blur);
24+
--spectrum-colorloupe-drop-shadow-color: var(--spectrum-drop-shadow-elevated-color);
25+
26+
--spectrum-colorloupe-outer-border-width: var(--spectrum-color-loupe-outer-border-width);
27+
--spectrum-colorloupe-inner-border-width: var(--spectrum-color-loupe-inner-border-width);
28+
--spectrum-colorloupe-outer-border-color: var(--spectrum-color-loupe-outer-border);
29+
--spectrum-colorloupe-inner-border-color: var(--spectrum-color-loupe-inner-border);
30+
31+
--spectrum-colorloupe-checkerboard-dark-color: var(--spectrum-opacity-checkerboard-square-dark);
32+
--spectrum-colorloupe-checkerboard-light-color: var(--spectrum-opacity-checkerboard-square-light);
33+
34+
inline-size: var(--spectrum-colorloupe-width);
35+
block-size: var(--spectrum-colorloupe-height);
1736

1837
position: absolute;
19-
transform: translate(0, var(--mod-colorloupe-animation-distance, 8px));
38+
transform: translate(0, var(--mod-colorloupe-animation-distance, var(--spectrum-colorloupe-animation-distance)));
2039
opacity: 0;
2140
transform-origin: bottom center;
22-
inset-block-end: calc(var(--spectrum-color-handle-size) - var(--spectrum-color-handle-outer-border-width) + var(--mod-colorloupe-offset, var(--spectrum-color-loupe-bottom-to-color-handle)));
23-
inset-inline-end: calc(50% - var(--spectrum-color-loupe-width) / 2);
41+
inset-block-end: calc((var(--spectrum-color-handle-size) - var(--spectrum-color-handle-outer-border-width)) + var(--mod-colorloupe-offset, var(--spectrum-colorloupe-offset)));
42+
inset-inline-end: calc(50% - (var(--spectrum-colorloupe-width) / 2));
2443

2544
transition:
2645
transform 100ms ease-in-out,
2746
opacity 125ms ease-in-out;
2847
pointer-events: none;
2948

30-
filter: drop-shadow(var(--mod-colorloupe-drop-shadow-x, var(--spectrum-drop-shadow-x)) var(--mod-colorloupe-drop-shadow-y, var(--spectrum-color-loupe-drop-shadow-y)) var(--mod-colorloupe-drop-shadow-blur, var(--spectrum-color-loupe-drop-shadow-blur)) var(--mod-colorloupe-drop-shadow-color, var(--spectrum-color-loupe-drop-shadow-color)));
49+
filter: drop-shadow(var(--mod-colorloupe-drop-shadow-x, var(--spectrum-colorloupe-drop-shadow-x)) var(--mod-colorloupe-drop-shadow-y, var(--spectrum-colorloupe-drop-shadow-y)) var(--mod-colorloupe-drop-shadow-blur, var(--spectrum-colorloupe-drop-shadow-blur)) var(--mod-colorloupe-drop-shadow-color, var(--spectrum-colorloupe-drop-shadow-color)));
3150

3251
&:dir(rtl) {
33-
inset-inline-end: calc(50% - (var(--spectrum-color-loupe-width) / 2) - 1px);
52+
inset-inline-end: calc(50% - (var(--spectrum-colorloupe-width) / 2) - 1px);
3453
}
3554

3655
&.is-open {
@@ -44,26 +63,27 @@
4463
}
4564

4665
.spectrum-ColorLoupe-inner-border {
66+
/* Undefined variable allows custom stylesheet or JS to pass the value to this element */
4767
fill: var(--spectrum-picked-color);
48-
stroke: var(--mod-colorloupe-inner-border-color, var(--spectrum-color-loupe-inner-border));
49-
stroke-width: var(--mod-colorloupe-inner-border-width, var(--spectrum-color-loupe-inner-border-width));
68+
stroke: var(--mod-colorloupe-inner-border-color, var(--spectrum-colorloupe-inner-border-color));
69+
stroke-width: var(--mod-colorloupe-inner-border-width, var(--spectrum-colorloupe-inner-border-width));
5070
}
5171

5272
.spectrum-ColorLoupe-outer-border {
5373
fill: none;
54-
stroke: var(--highcontrast-colorloupe-outer-border-color, var(--mod-colorloupe-outer-border-color, var(--spectrum-color-loupe-outer-border)));
55-
stroke-width: calc(var(--mod-colorloupe-outer-border-width, var(--spectrum-color-loupe-outer-border-width)) + 2px);
74+
stroke: var(--highcontrast-colorloupe-outer-border-color, var(--mod-colorloupe-outer-border-color, var(--spectrum-colorloupe-outer-border-color)));
75+
stroke-width: calc(var(--mod-colorloupe-outer-border-width, var(--spectrum-colorloupe-outer-border-width)) + 2px);
5676
}
5777

5878
/* The checkerboard classes use opacity checkerboard tokens for dark and light color.
5979
The opacity-checkerboard-square-size token is not able to be used witin the SVG pattern and instead colorloupe docs are using two different patterns toggled by --spectrum-colorloupe-checkerboard-fill */
6080

6181
.spectrum-ColorLoupe-checkerboard-pattern {
62-
fill: var(--spectrum-opacity-checkerboard-square-dark);
82+
fill: var(--spectrum-colorloupe-checkerboard-dark-color);
6383
}
6484

6585
.spectrum-ColorLoupe-checkerboard-background {
66-
fill: var(--spectrum-opacity-checkerboard-square-light);
86+
fill: var(--spectrum-colorloupe-checkerboard-light-color);
6787
}
6888

6989
.spectrum-ColorLoupe-checkerboard-fill {

0 commit comments

Comments
 (0)