Skip to content

Commit 0e43d2d

Browse files
committed
feat(actionbar): new s2 migration
1 parent 19fe479 commit 0e43d2d

File tree

4 files changed

+100
-81
lines changed

4 files changed

+100
-81
lines changed

.changeset/deep-sloths-fetch.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
"@spectrum-css/actionbar": major
3+
---
4+
5+
### Actionbar S2 Migration
6+
7+
Action bar now has some updated colors, corner radius, icons and outline has been removed. The default and emphasized variant now have a light and dark mode theme.
8+
9+
#### New tokens
10+
11+
`--spectrum-actionbar-emphasized-actionbutton-label-color`
12+
`--spectrum-actionbar-emphasized-icon-color`
13+
`--spectrum-actionbar-minimum-width`
14+
`--spectrum-actionbar-spacing-label-to-actiongroup`
15+
`--spectrum-actionbar-spacing-action-group-edge`
16+
17+
#### New mods
18+
19+
`--mod-actionbar-minimum-width`
20+
`--mod-actionbar-spacing-action-group-edge`
21+
`--mod-actionbar-spacing-label-to-actiongroup`

components/actionbar/dist/metadata.json

+23-28
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
".spectrum-ActionBar .spectrum-FieldLabel:lang(ko)",
1111
".spectrum-ActionBar .spectrum-FieldLabel:lang(zh)",
1212
".spectrum-ActionBar--emphasized .spectrum-ActionBar-popover",
13+
".spectrum-ActionBar--emphasized .spectrum-ActionGroup .spectrum-ActionButton .spectrum-ActionButton-icon",
14+
".spectrum-ActionBar--emphasized .spectrum-ActionGroup .spectrum-ActionButton .spectrum-ActionButton-label",
15+
".spectrum-ActionBar--emphasized .spectrum-CloseButton .spectrum-Icon",
1316
".spectrum-ActionBar--emphasized .spectrum-FieldLabel",
1417
".spectrum-ActionBar--fixed",
1518
".spectrum-ActionBar--flexible .spectrum-ActionBar-popover",
@@ -28,66 +31,58 @@
2831
"--mod-actionbar-item-counter-font-size",
2932
"--mod-actionbar-item-counter-line-height",
3033
"--mod-actionbar-item-counter-line-height-cjk",
34+
"--mod-actionbar-minimum-width",
3135
"--mod-actionbar-popover-background-color",
3236
"--mod-actionbar-popover-border-color",
3337
"--mod-actionbar-shadow-blur",
3438
"--mod-actionbar-shadow-color",
3539
"--mod-actionbar-shadow-horizontal",
3640
"--mod-actionbar-shadow-vertical",
37-
"--mod-actionbar-spacing-action-group-end",
38-
"--mod-actionbar-spacing-action-group-top",
39-
"--mod-actionbar-spacing-close-button-end",
40-
"--mod-actionbar-spacing-close-button-start",
41-
"--mod-actionbar-spacing-close-button-top",
42-
"--mod-actionbar-spacing-item-counter-end",
43-
"--mod-actionbar-spacing-item-counter-top",
41+
"--mod-actionbar-spacing-action-group-edge",
42+
"--mod-actionbar-spacing-label-to-actiongroup",
4443
"--mod-actionbar-spacing-outer-edge"
4544
],
4645
"component": [
46+
"--spectrum-action-bar-border-color",
47+
"--spectrum-action-bar-edge-to-content-area",
4748
"--spectrum-action-bar-height",
48-
"--spectrum-action-bar-top-to-item-counter",
49+
"--spectrum-action-bar-label-to-action-group-area",
50+
"--spectrum-action-bar-minimum-width",
4951
"--spectrum-actionbar-corner-radius",
52+
"--spectrum-actionbar-emphasized-actionbutton-label-color",
5053
"--spectrum-actionbar-emphasized-background-color",
54+
"--spectrum-actionbar-emphasized-icon-color",
5155
"--spectrum-actionbar-emphasized-item-counter-color",
5256
"--spectrum-actionbar-height",
5357
"--spectrum-actionbar-item-counter-color",
5458
"--spectrum-actionbar-item-counter-font-size",
5559
"--spectrum-actionbar-item-counter-line-height",
5660
"--spectrum-actionbar-item-counter-line-height-cjk",
61+
"--spectrum-actionbar-minimum-width",
5762
"--spectrum-actionbar-popover-background-color",
5863
"--spectrum-actionbar-popover-border-color",
5964
"--spectrum-actionbar-shadow-blur",
6065
"--spectrum-actionbar-shadow-color",
6166
"--spectrum-actionbar-shadow-horizontal",
6267
"--spectrum-actionbar-shadow-vertical",
63-
"--spectrum-actionbar-spacing-action-group-end",
64-
"--spectrum-actionbar-spacing-action-group-top",
65-
"--spectrum-actionbar-spacing-close-button-end",
66-
"--spectrum-actionbar-spacing-close-button-start",
67-
"--spectrum-actionbar-spacing-close-button-top",
68-
"--spectrum-actionbar-spacing-item-counter-end",
69-
"--spectrum-actionbar-spacing-item-counter-top",
68+
"--spectrum-actionbar-spacing-action-group-edge",
69+
"--spectrum-actionbar-spacing-label-to-actiongroup",
7070
"--spectrum-actionbar-spacing-outer-edge"
7171
],
7272
"global": [
73+
"--spectrum-background-elevated-color",
7374
"--spectrum-cjk-line-height-100",
74-
"--spectrum-corner-radius-100",
75-
"--spectrum-drop-shadow-blur",
76-
"--spectrum-drop-shadow-color",
77-
"--spectrum-drop-shadow-x",
78-
"--spectrum-drop-shadow-y",
75+
"--spectrum-corner-radius-medium-size-extra-large",
76+
"--spectrum-drop-shadow-elevated-blur",
77+
"--spectrum-drop-shadow-elevated-color",
78+
"--spectrum-drop-shadow-elevated-x",
79+
"--spectrum-drop-shadow-elevated-y",
7980
"--spectrum-font-size-100",
8081
"--spectrum-gray-25",
81-
"--spectrum-gray-400",
82-
"--spectrum-informative-background-color-default",
8382
"--spectrum-line-height-100",
8483
"--spectrum-neutral-content-color-default",
85-
"--spectrum-spacing-100",
86-
"--spectrum-spacing-300",
87-
"--spectrum-spacing-400",
88-
"--spectrum-spacing-75",
89-
"--spectrum-white"
84+
"--spectrum-spacing-300"
9085
],
91-
"passthroughs": [],
86+
"passthroughs": ["--mod-actionbutton-label-color"],
9287
"high-contrast": ["--highcontrast-actionbar-popover-border-color"]
9388
}

components/actionbar/index.css

+42-48
Original file line numberDiff line numberDiff line change
@@ -12,42 +12,32 @@
1212
*/
1313

1414
.spectrum-ActionBar {
15-
--spectrum-actionbar-popover-background-color: var(--spectrum-gray-25);
16-
--spectrum-actionbar-popover-border-color: var(--spectrum-gray-400);
17-
15+
/* Layout */
1816
--spectrum-actionbar-height: var(--spectrum-action-bar-height);
19-
--spectrum-actionbar-corner-radius: var(--spectrum-corner-radius-100);
17+
--spectrum-actionbar-minimum-width: var(--spectrum-action-bar-minimum-width);
18+
--spectrum-actionbar-corner-radius: var(--spectrum-corner-radius-medium-size-extra-large);
19+
--spectrum-actionbar-spacing-label-to-actiongroup: var(--spectrum-action-bar-label-to-action-group-area);
20+
--spectrum-actionbar-spacing-action-group-edge: var(--spectrum-action-bar-edge-to-content-area);
2021

2122
/* item counter field label */
2223
--spectrum-actionbar-item-counter-font-size: var(--spectrum-font-size-100);
2324
--spectrum-actionbar-item-counter-line-height: var(--spectrum-line-height-100);
2425
--spectrum-actionbar-item-counter-color: var(--spectrum-neutral-content-color-default);
2526

2627
/* emphasized variation colors */
27-
--spectrum-actionbar-emphasized-background-color: var(--spectrum-informative-background-color-default);
28-
--spectrum-actionbar-emphasized-item-counter-color: var(--spectrum-white);
28+
--spectrum-actionbar-emphasized-background-color: var(--spectrum-neutral-content-color-default);
29+
--spectrum-actionbar-emphasized-item-counter-color: var(--spectrum-gray-25);
30+
--spectrum-actionbar-emphasized-actionbutton-label-color: var(--spectrum-gray-25);
31+
--spectrum-actionbar-emphasized-icon-color: var(--spectrum-gray-25);
2932

3033
/* spacing of action bar bottom and horizontal outer edge */
3134
--spectrum-actionbar-spacing-outer-edge: var(--spectrum-spacing-300);
3235

33-
/* spacing of close button */
34-
--spectrum-actionbar-spacing-close-button-top: var(--spectrum-spacing-100);
35-
--spectrum-actionbar-spacing-close-button-start: var(--spectrum-spacing-100);
36-
--spectrum-actionbar-spacing-close-button-end: var(--spectrum-spacing-75);
37-
38-
/* spacing of item counter field label */
39-
--spectrum-actionbar-spacing-item-counter-top: var(--spectrum-action-bar-top-to-item-counter);
40-
--spectrum-actionbar-spacing-item-counter-end: var(--spectrum-spacing-400);
41-
42-
/* spacing of action group */
43-
--spectrum-actionbar-spacing-action-group-top: var(--spectrum-spacing-100);
44-
--spectrum-actionbar-spacing-action-group-end: var(--spectrum-spacing-100);
45-
4636
/* drop shadow */
47-
--spectrum-actionbar-shadow-horizontal: var(--spectrum-drop-shadow-x);
48-
--spectrum-actionbar-shadow-vertical: var(--spectrum-drop-shadow-y);
49-
--spectrum-actionbar-shadow-blur: var(--spectrum-drop-shadow-blur);
50-
--spectrum-actionbar-shadow-color: var(--spectrum-drop-shadow-color);
37+
--spectrum-actionbar-shadow-horizontal: var(--spectrum-drop-shadow-elevated-x);
38+
--spectrum-actionbar-shadow-vertical: var(--spectrum-drop-shadow-elevated-y);
39+
--spectrum-actionbar-shadow-blur: var(--spectrum-drop-shadow-elevated-blur);
40+
--spectrum-actionbar-shadow-color: var(--spectrum-drop-shadow-elevated-color);
5141

5242
/* cjk language support for item counter */
5343
&:lang(ja),
@@ -57,17 +47,6 @@
5747
}
5848
}
5949

60-
/* windows high contrast mode */
61-
@media (forced-colors: active) {
62-
.spectrum-ActionBar {
63-
--highcontrast-actionbar-popover-border-color: CanvasText;
64-
}
65-
66-
.spectrum-ActionBar--emphasized .spectrum-ActionBar-popover {
67-
--highcontrast-actionbar-popover-border-color: CanvasText;
68-
}
69-
}
70-
7150
/* ActionBar is outer wrapper with nested popover component within */
7251
.spectrum-ActionBar {
7352
/* creates horizontal spacing to edge */
@@ -94,11 +73,11 @@
9473
.spectrum-ActionBar-popover {
9574
/* popover is ActionBar height */
9675
block-size: var(--mod-actionbar-height, var(--spectrum-actionbar-height));
76+
min-inline-size: var(--mod-actionbar-minimum-width, var(--spectrum-actionbar-minimum-width));
9777
box-sizing: border-box;
9878
inline-size: 100%;
9979
margin: auto;
100-
padding-block-start: 0;
101-
padding-block-end: 0;
80+
padding-inline: var(--mod-actionbar-spacing-action-group-edge, var(--spectrum-actionbar-spacing-action-group-edge));
10281

10382
/* Be relative so our width can be restricted */
10483
position: relative;
@@ -115,24 +94,17 @@
11594
/* inner layout of content items */
11695
display: flex;
11796
flex-direction: row;
97+
align-items: center;
98+
gap: var(--mod-actionbar-spacing-label-to-actiongroup, var(--spectrum-actionbar-spacing-label-to-actiongroup)); /* space between label and action group */
11899
}
119100

120101
/* close button */
121102
.spectrum-CloseButton {
122-
margin-inline-start: var(--mod-actionbar-spacing-close-button-start, var(--spectrum-actionbar-spacing-close-button-start));
123-
margin-inline-end: var(--mod-actionbar-spacing-close-button-end, var(--spectrum-actionbar-spacing-close-button-end));
124-
margin-block-start: var(--mod-actionbar-spacing-close-button-top, var(--spectrum-actionbar-spacing-close-button-top));
125103
flex-shrink: 0;
126104
}
127105

128106
/* item counter */
129107
.spectrum-FieldLabel {
130-
margin-inline-end: var(--mod-actionbar-spacing-item-counter-end, var(--spectrum-actionbar-spacing-item-counter-end));
131-
margin-block-start: var(--mod-actionbar-spacing-item-counter-top, var(--spectrum-actionbar-spacing-item-counter-top));
132-
133-
/* neutralize padding for correct spacing within ActionBar */
134-
padding: 0;
135-
136108
font-size: var(--mod-actionbar-item-counter-font-size, var(--spectrum-actionbar-item-counter-font-size));
137109
color: var(--mod-actionbar-item-counter-color, var(--spectrum-actionbar-item-counter-color));
138110
line-height: var(--mod-actionbar-item-counter-line-height, var(--spectrum-actionbar-item-counter-line-height));
@@ -147,9 +119,6 @@
147119

148120
/* action group */
149121
.spectrum-ActionGroup {
150-
margin-inline-end: var(--mod-actionbar-spacing-action-group-end, var(--spectrum-actionbar-spacing-action-group-end));
151-
margin-block-start: var(--mod-actionbar-spacing-action-group-top, var(--spectrum-actionbar-spacing-action-group-top));
152-
153122
/* align to end by default */
154123
margin-inline-start: auto;
155124
}
@@ -168,6 +137,20 @@
168137
.spectrum-FieldLabel {
169138
color: var(--mod-actionbar-emphasized-item-counter-color, var(--spectrum-actionbar-emphasized-item-counter-color));
170139
}
140+
141+
.spectrum-ActionGroup .spectrum-ActionButton {
142+
.spectrum-ActionButton-label {
143+
--mod-actionbutton-label-color: var(--spectrum-actionbar-emphasized-actionbutton-label-color);
144+
}
145+
146+
.spectrum-ActionButton-icon {
147+
color: var(--spectrum-actionbar-emphasized-icon-color);
148+
}
149+
}
150+
151+
.spectrum-CloseButton .spectrum-Icon {
152+
color: var(--spectrum-actionbar-emphasized-icon-color);
153+
}
171154
}
172155

173156
.spectrum-ActionBar--sticky {
@@ -184,3 +167,14 @@
184167
.spectrum-ActionBar--flexible .spectrum-ActionBar-popover {
185168
inline-size: auto;
186169
}
170+
171+
/* windows high contrast mode */
172+
@media (forced-colors: active) {
173+
.spectrum-ActionBar {
174+
--highcontrast-actionbar-popover-border-color: CanvasText;
175+
}
176+
177+
.spectrum-ActionBar--emphasized .spectrum-ActionBar-popover {
178+
--highcontrast-actionbar-popover-border-color: CanvasText;
179+
}
180+
}

components/actionbar/stories/template.js

+14-5
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,20 @@ export const Template = ({
4040
customClasses: [`${rootClass}-popover`],
4141
isOpen,
4242
content: [
43-
CloseButton({
44-
label: "Clear selection",
45-
staticColor: isEmphasized ? "white" : undefined,
46-
}, context),
47-
FieldLabel({ size: "s", label: "2 Selected" }, context),
43+
Container({
44+
withBorder: false,
45+
wrapperStyles: {
46+
"column-gap": "0",
47+
"align-items": "center",
48+
},
49+
content: [
50+
CloseButton({
51+
label: "Clear selection",
52+
staticColor: isEmphasized ? "white" : undefined,
53+
}, context),
54+
FieldLabel({ size: "s", label: "2 Selected" }, context),
55+
]
56+
}),
4857
ActionGroup({
4958
size: "m",
5059
areQuiet: true,

0 commit comments

Comments
 (0)