Skip to content

Commit 7975641

Browse files
cdransfcastastrophe
authored andcommitted
feat(colorarea): S2 migration (#3388)
* feat(colorarea): s2 migration * feat(colorarea): remove redundant property * feat(colorarea): clarify color + rgb implementation * feat(colorarea): fix gradient border-radius * feat(colorarea): move forced-colors media query * feat(colorarea): update changeset
1 parent 7d5b06b commit 7975641

File tree

3 files changed

+62
-34
lines changed

3 files changed

+62
-34
lines changed

.changeset/spotty-onions-study.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@spectrum-css/colorarea": major
3+
---
4+
5+
# colorarea S2 migration
6+
7+
This change migrates the `colorarea` component to S2. It leverages updated tokens and the `rgba(...)` color function, replacing the existing `TODO` and hardcoded values.

components/colorarea/dist/metadata.json

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,27 @@
2323
"--mod-colorarea-width"
2424
],
2525
"component": [
26+
"--spectrum-color-area-border-opacity",
2627
"--spectrum-color-area-border-rounding",
2728
"--spectrum-color-area-border-width",
2829
"--spectrum-color-area-height",
2930
"--spectrum-color-area-minimum-height",
3031
"--spectrum-color-area-minimum-width",
3132
"--spectrum-color-area-width",
32-
"--spectrum-colorarea-border-color"
33+
"--spectrum-colorarea-border-color",
34+
"--spectrum-colorarea-border-color-rgb",
35+
"--spectrum-colorarea-border-radius",
36+
"--spectrum-colorarea-border-width",
37+
"--spectrum-colorarea-disabled-background-color",
38+
"--spectrum-colorarea-height",
39+
"--spectrum-colorarea-min-height",
40+
"--spectrum-colorarea-min-width",
41+
"--spectrum-colorarea-width"
42+
],
43+
"global": [
44+
"--spectrum-disabled-background-color",
45+
"--spectrum-gray-1000-rgb"
3346
],
34-
"global": ["--spectrum-disabled-background-color"],
3547
"system-theme": [],
3648
"passthroughs": [],
3749
"high-contrast": [

components/colorarea/index.css

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

14-
/* Windows High Contrast Mode */
15-
@media (forced-colors: active) {
16-
.spectrum-ColorArea {
17-
--highcontrast-colorarea-border-color-disabled: GrayText;
18-
--highcontrast-colorarea-border-color: Canvas;
19-
--highcontrast-colorarea-fill-color-disabled: Canvas;
20-
}
21-
22-
.spectrum-ColorArea {
23-
&.is-disabled {
24-
forced-color-adjust: none;
25-
}
26-
}
27-
28-
.spectrum-ColorArea-gradient,
29-
.spectrum-ColorHandle-color {
30-
forced-color-adjust: none;
31-
}
32-
}
33-
3414
.spectrum-ColorArea {
35-
/* TODO replace with token --spectrum-color-area-border-color and --spectrum-color-area-border-opacity using RGBA function */
36-
--spectrum-colorarea-border-color: rgb(0 0 0 / 10%);
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: rgba(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);
3726

3827
position: relative;
3928
display: inline-block;
4029
cursor: default;
4130
user-select: none;
42-
min-inline-size: var(--mod-colorarea-min-width, var(--spectrum-color-area-minimum-width));
43-
min-block-size: var(--mod-colorarea-min-height, var(--spectrum-color-area-minimum-height));
44-
inline-size: var(--mod-colorarea-width, var(--spectrum-color-area-width));
45-
block-size: var(--mod-colorarea-height, var(--spectrum-color-area-height));
31+
min-inline-size: var(--mod-colorarea-min-width, var(--spectrum-colorarea-min-width));
32+
min-block-size: var(--mod-colorarea-min-height, var(--spectrum-colorarea-min-height));
33+
inline-size: var(--mod-colorarea-width, var(--spectrum-colorarea-width));
34+
block-size: var(--mod-colorarea-height, var(--spectrum-colorarea-height));
4635
box-sizing: border-box;
47-
border-radius: var(--mod-colorarea-border-radius, var(--spectrum-color-area-border-rounding));
48-
border: var(--mod-colorarea-border-width, var(--spectrum-color-area-border-width)) solid var(--highcontrast-colorarea-border-color, var(--mod-colorarea-border-color, var(--spectrum-colorarea-border-color)));
36+
border-radius: var(--mod-colorarea-border-radius, var(--spectrum-colorarea-border-radius));
37+
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)));
4938

5039
&.is-focused {
5140
z-index: 2;
5241
}
5342

5443
&.is-disabled {
5544
pointer-events: none;
56-
background: var(--highcontrast-colorarea-fill-color-disabled, var(--mod-colorarea-disabled-background-color, var(--spectrum-disabled-background-color)));
57-
border: var(--mod-colorarea-border-width, var(--spectrum-color-area-border-width)) solid var(--highcontrast-colorarea-border-color-disabled);
45+
background: var(--highcontrast-colorarea-fill-color-disabled, var(--mod-colorarea-disabled-background-color, var(--spectrum-colorarea-disabled-background-color)));
46+
border: var(--mod-colorarea-border-width, var(--spectrum-colorarea-border-width)) solid var(--highcontrast-colorarea-border-color-disabled);
5847

5948
.spectrum-ColorArea-gradient {
6049
display: none;
@@ -63,7 +52,7 @@
6352
}
6453

6554
.spectrum-ColorArea-handle {
66-
transform: translate(calc(var(--mod-colorarea-width, var(--spectrum-color-area-width)) - var(--spectrum-color-area-border-width)), 0);
55+
transform: translate(calc(var(--mod-colorarea-width, var(--spectrum-colorarea-width)) - var(--spectrum-colorarea-border-width)), 0);
6756
inset-block-start: 0;
6857

6958
&:dir(rtl) {
@@ -74,7 +63,9 @@
7463
.spectrum-ColorArea-gradient {
7564
inline-size: 100%;
7665
block-size: 100%;
77-
border-radius: var(--mod-colorarea-border-radius, var(--spectrum-color-area-border-rounding));
66+
67+
/* calc used here to properly calculate the `border-radius` for the gradient such that it aligns with the `border-radius` of the enclosing border */
68+
border-radius: calc(var(--mod-colorarea-border-radius, var(--spectrum-colorarea-border-radius)) - var(--mod-colorarea-border-width, var(--spectrum-colorarea-border-width)));
7869
}
7970

8071
.spectrum-ColorArea-slider {
@@ -88,3 +79,21 @@
8879
margin: 0;
8980
pointer-events: none;
9081
}
82+
83+
/* Windows High Contrast Mode */
84+
@media (forced-colors: active) {
85+
.spectrum-ColorArea {
86+
--highcontrast-colorarea-border-color-disabled: GrayText;
87+
--highcontrast-colorarea-border-color: Canvas;
88+
--highcontrast-colorarea-fill-color-disabled: Canvas;
89+
90+
&.is-disabled {
91+
forced-color-adjust: none;
92+
}
93+
}
94+
95+
.spectrum-ColorArea-gradient,
96+
.spectrum-ColorHandle-color {
97+
forced-color-adjust: none;
98+
}
99+
}

0 commit comments

Comments
 (0)