Skip to content

Commit b9b3949

Browse files
committed
feat(colorarea): remove modifiers from the API [SWC-1264]
1 parent 857bd63 commit b9b3949

File tree

10 files changed

+69
-142
lines changed

10 files changed

+69
-142
lines changed

.changeset/weak-colts-divide.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
"@spectrum-css/assetlist": major
66
"@spectrum-css/avatar": major
77
"@spectrum-css/badge": major
8+
"@spectrum-css/colorarea": major
89
"@spectrum-css/miller": major
9-
"@spectrum-css/well": major
1010
"@spectrum-css/page": major
11+
"@spectrum-css/well": major
1112
---
1213

1314
This update removes `--mod-*` custom property hooks per SWC-1264, see also the RFC for extensible styling. In addition, this update cleans up any component-level custom properties that did not rely on the CSS cascade to define the styles; this was done to reduce the number of custom properties that are defined at the component level and trim down the size of the CSS we are shipping to consumers.

components/colorarea/dist/metadata.json

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,19 @@
88
".spectrum-ColorArea-slider",
99
".spectrum-ColorArea.is-disabled",
1010
".spectrum-ColorArea.is-disabled .spectrum-ColorArea-gradient",
11-
".spectrum-ColorArea.is-focused",
12-
".spectrum-ColorHandle-color"
13-
],
14-
"modifiers": [
15-
"--mod-colorarea-border-color",
16-
"--mod-colorarea-border-radius",
17-
"--mod-colorarea-border-width",
18-
"--mod-colorarea-disabled-background-color",
19-
"--mod-colorarea-height",
20-
"--mod-colorarea-min-height",
21-
"--mod-colorarea-min-width",
22-
"--mod-colorarea-width"
11+
".spectrum-ColorArea.is-focused"
2312
],
13+
"modifiers": [],
2414
"component": [
2515
"--spectrum-color-area-border-opacity",
2616
"--spectrum-color-area-border-rounding",
2717
"--spectrum-color-area-border-width",
2818
"--spectrum-color-area-height",
2919
"--spectrum-color-area-minimum-height",
3020
"--spectrum-color-area-minimum-width",
31-
"--spectrum-color-area-width",
32-
"--spectrum-colorarea-border-color",
33-
"--spectrum-colorarea-border-color-rgb",
34-
"--spectrum-colorarea-border-radius",
35-
"--spectrum-colorarea-border-width",
36-
"--spectrum-colorarea-disabled-background-color",
37-
"--spectrum-colorarea-height",
38-
"--spectrum-colorarea-min-height",
39-
"--spectrum-colorarea-min-width",
40-
"--spectrum-colorarea-width"
41-
],
42-
"global": [
43-
"--spectrum-disabled-background-color",
44-
"--spectrum-gray-1000-rgb"
21+
"--spectrum-color-area-width"
4522
],
23+
"global": ["--spectrum-disabled-background-color", "--spectrum-gray-1000"],
4624
"passthroughs": [],
47-
"high-contrast": [
48-
"--highcontrast-colorarea-border-color",
49-
"--highcontrast-colorarea-border-color-disabled",
50-
"--highcontrast-colorarea-fill-color-disabled"
51-
]
25+
"high-contrast": []
5226
}

components/colorarea/index.css

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,16 @@
1212
*/
1313

1414
.spectrum-ColorArea {
15-
--spectrum-colorarea-border-radius: var(--spectrum-color-area-border-rounding);
16-
17-
/* @TODO: leveraging the rgb token in this case to achieve the desired border color implementation as rgb + opacity are required by the `rgba` function. */
18-
--spectrum-colorarea-border-color-rgb: var(--spectrum-gray-1000-rgb);
19-
--spectrum-colorarea-border-color: rgb(var(--spectrum-colorarea-border-color-rgb), var(--spectrum-color-area-border-opacity));
20-
--spectrum-colorarea-border-width: var(--spectrum-color-area-border-width);
21-
--spectrum-colorarea-disabled-background-color: var(--spectrum-disabled-background-color);
22-
--spectrum-colorarea-height: var(--spectrum-color-area-height);
23-
--spectrum-colorarea-width: var(--spectrum-color-area-width);
24-
--spectrum-colorarea-min-width: var(--spectrum-color-area-minimum-width);
25-
--spectrum-colorarea-min-height: var(--spectrum-color-area-minimum-height);
26-
2715
position: relative;
2816
display: inline-block;
2917
cursor: default;
30-
min-inline-size: var(--mod-colorarea-min-width, var(--spectrum-colorarea-min-width));
31-
min-block-size: var(--mod-colorarea-min-height, var(--spectrum-colorarea-min-height));
32-
inline-size: var(--mod-colorarea-width, var(--spectrum-colorarea-width));
33-
block-size: var(--mod-colorarea-height, var(--spectrum-colorarea-height));
18+
min-inline-size: var(--spectrum-color-area-minimum-width);
19+
min-block-size: var(--spectrum-color-area-minimum-height);
20+
inline-size: var(--spectrum-color-area-width);
21+
block-size: var(--spectrum-color-area-height);
3422
box-sizing: border-box;
35-
border-radius: var(--mod-colorarea-border-radius, var(--spectrum-colorarea-border-radius));
36-
border: var(--mod-colorarea-border-width, var(--spectrum-colorarea-border-width)) solid var(--highcontrast-colorarea-border-color, var(--mod-colorarea-border-color, var(--spectrum-colorarea-border-color)));
23+
border-radius: var(--spectrum-color-area-border-rounding);
24+
border: var(--spectrum-color-area-border-width) solid color-mix(in sRGB, var(--spectrum-gray-1000) calc(var(--spectrum-color-area-border-opacity) * 100%), transparent);
3725

3826
touch-action: none; /* Disable touch scrolling on touch devices to allow for color picking */
3927
user-select: none;
@@ -44,8 +32,8 @@
4432

4533
&.is-disabled {
4634
pointer-events: none;
47-
background: var(--highcontrast-colorarea-fill-color-disabled, var(--mod-colorarea-disabled-background-color, var(--spectrum-colorarea-disabled-background-color)));
48-
border: var(--mod-colorarea-border-width, var(--spectrum-colorarea-border-width)) solid var(--highcontrast-colorarea-border-color-disabled);
35+
background: var(--spectrum-disabled-background-color);
36+
border-color: transparent;
4937

5038
.spectrum-ColorArea-gradient {
5139
display: none;
@@ -54,7 +42,7 @@
5442
}
5543

5644
.spectrum-ColorArea-handle {
57-
transform: translate(calc(var(--mod-colorarea-width, var(--spectrum-colorarea-width)) - var(--spectrum-colorarea-border-width)), 0);
45+
transform: translate(calc(var(--spectrum-color-area-width) - var(--spectrum-color-area-border-width)), 0);
5846
inset-block-start: 0;
5947

6048
&:dir(rtl) {
@@ -67,7 +55,7 @@
6755
block-size: 100%;
6856

6957
/* calc used here to properly calculate the `border-radius` for the gradient such that it aligns with the `border-radius` of the enclosing border */
70-
border-radius: calc(var(--mod-colorarea-border-radius, var(--spectrum-colorarea-border-radius)) - var(--mod-colorarea-border-width, var(--spectrum-colorarea-border-width)));
58+
border-radius: calc(var(--spectrum-color-area-border-rounding) - var(--spectrum-color-area-border-width));
7159
}
7260

7361
.spectrum-ColorArea-slider {
@@ -84,18 +72,11 @@
8472

8573
/* Windows High Contrast Mode */
8674
@media (forced-colors: active) {
87-
.spectrum-ColorArea {
88-
--highcontrast-colorarea-border-color-disabled: GrayText;
89-
--highcontrast-colorarea-border-color: Canvas;
90-
--highcontrast-colorarea-fill-color-disabled: Canvas;
91-
92-
&.is-disabled {
93-
forced-color-adjust: none;
94-
}
75+
.spectrum-ColorArea.is-disabled {
76+
background: Canvas;
9577
}
9678

97-
.spectrum-ColorArea-gradient,
98-
.spectrum-ColorHandle-color {
79+
.spectrum-ColorArea-gradient {
9980
forced-color-adjust: none;
10081
}
10182
}

components/colorarea/stories/template.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ export const Template = ({
2626
...customClasses.reduce((a, c) => ({ ...a, [c]: true }), {}),
2727
})}
2828
style=${styleMap({
29-
"--mod-colorarea-height": customHeight,
30-
"--mod-colorarea-width": customWidth,
29+
"--spectrum-color-area-height": customHeight,
30+
"--spectrum-color-area-width": customWidth,
3131
...customStyles,
3232
})}
3333
@focusin=${function() {
@@ -49,7 +49,7 @@ export const Template = ({
4949
customClasses: [`${rootClass}-handle`],
5050
customStyles: {
5151
"--spectrum-picked-color": selectedColor,
52-
"transform": customWidth ? "translate(var(--mod-colorarea-width), 0)" : undefined,
52+
"transform": customWidth ? "translate(var(--spectrum-color-area-width), 0)" : undefined,
5353
},
5454
}, context)}
5555
<input

components/colorhandle/dist/metadata.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,5 @@
4747
"--spectrum-white"
4848
],
4949
"passthroughs": ["--mod-opacity-checkerboard-position"],
50-
"high-contrast": [
51-
"--highcontrast-colorhandle-border-color-disabled",
52-
"--highcontrast-colorhandle-fill-color-disabled"
53-
]
50+
"high-contrast": []
5451
}

components/colorhandle/index.css

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,6 @@
1111
* governing permissions and limitations under the License.
1212
*/
1313

14-
@media (forced-colors: active) {
15-
.spectrum-ColorHandle {
16-
forced-color-adjust: none;
17-
18-
&.is-disabled {
19-
--highcontrast-colorhandle-border-color-disabled: GrayText;
20-
--highcontrast-colorhandle-fill-color-disabled: Canvas;
21-
}
22-
}
23-
}
24-
2514
.spectrum-ColorHandle {
2615
/* outer border as box shadow on the colorhandle */
2716
/* TODO replace --spectrum-black-rgb with color-handle-outer-border-color when supported by RGBA */
@@ -82,8 +71,8 @@
8271

8372
&.is-disabled {
8473
pointer-events: none;
85-
border-color: var(--highcontrast-colorhandle-border-color-disabled, var(--mod-colorhandle-border-color-disabled, var(--spectrum-disabled-content-color)));
86-
background: var(--highcontrast-colorhandle-fill-color-disabled, var(--mod-colorhandle-fill-color-disabled, var(--spectrum-disabled-background-color)));
74+
border-color: var(--mod-colorhandle-border-color-disabled, var(--spectrum-disabled-content-color));
75+
background: var(--mod-colorhandle-fill-color-disabled, var(--spectrum-disabled-background-color));
8776
box-shadow: none;
8877

8978
.spectrum-ColorHandle-inner {
@@ -99,3 +88,14 @@
9988
box-shadow: inset 0 0 0 var(--mod-colorhandle-inner-border-width, var(--spectrum-color-handle-inner-border-width)) var(--mod-colorhandle-inner-border-color, var(--spectrum-colorhandle-inner-border-color));
10089
background-color: var(--spectrum-picked-color);
10190
}
91+
92+
@media (forced-colors: active) {
93+
.spectrum-ColorHandle {
94+
forced-color-adjust: none;
95+
96+
&.is-disabled {
97+
border-color: GrayText;
98+
background: Canvas;
99+
}
100+
}
101+
}

components/colorwheel/dist/metadata.json

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,16 @@
1919
".spectrum-ColorWheel:after",
2020
".spectrum-ColorWheel:before"
2121
],
22-
"modifiers": [
23-
"--mod-colorwheel-block-size",
24-
"--mod-colorwheel-border-color",
25-
"--mod-colorwheel-colorarea-container-size",
26-
"--mod-colorwheel-fill-color-disabled",
27-
"--mod-colorwheel-inline-size",
28-
"--mod-colorwheel-min-inline-size",
29-
"--mod-colorwheel-path",
30-
"--mod-colorwheel-track-width"
31-
],
22+
"modifiers": ["--mod-colorwheel-track-width"],
3223
"component": [
3324
"--spectrum-color-wheel-border-opacity",
3425
"--spectrum-color-wheel-minimum-width",
3526
"--spectrum-color-wheel-width",
36-
"--spectrum-colorwheel-block-size",
3727
"--spectrum-colorwheel-border-color",
3828
"--spectrum-colorwheel-border-color-rgb",
3929
"--spectrum-colorwheel-border-opacity",
40-
"--spectrum-colorwheel-border-width",
4130
"--spectrum-colorwheel-colorarea-container-size",
42-
"--spectrum-colorwheel-fill-color-disabled",
43-
"--spectrum-colorwheel-inline-size",
44-
"--spectrum-colorwheel-min-inline-size",
45-
"--spectrum-colorwheel-path",
46-
"--spectrum-colorwheel-track-width"
31+
"--spectrum-colorwheel-path"
4732
],
4833
"global": [
4934
"--spectrum-border-width-100",
@@ -52,8 +37,5 @@
5237
"--spectrum-gray-1000-rgb"
5338
],
5439
"passthroughs": [],
55-
"high-contrast": [
56-
"--highcontrast-colorwheel-border-color-disabled",
57-
"--highcontrast-colorwheel-fill-color-disabled"
58-
]
40+
"high-contrast": []
5941
}

0 commit comments

Comments
 (0)