Skip to content

Commit 7f48b7c

Browse files
feat(tabs): migrate to spectrum 2 (#4003)
1 parent f920613 commit 7f48b7c

File tree

9 files changed

+373
-559
lines changed

9 files changed

+373
-559
lines changed

.changeset/fresh-kings-slide.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
"@spectrum-css/tabs": major
3+
---
4+
5+
Tab has now been migrated to Spectrum 2. This migration brings with it several major changes:
6+
7+
- Emphasized variant has been removed
8+
- The divider line has been removed and all variants now resemble what was formerly the quiet variant
9+
- Removal of t-shirt sizes (only one size is available)
10+
- Updated high contrast styles
11+
- The focus indicator's size has changed to accommodate the selection indicator inside of the focus outline
12+
13+
Overflow and vertical variants, aside from what applies from the notes above, remain mostly unchanged and currently are not fully supported in S2. One exception: a bug fix was made to allow density variants to be visible in the overflow variant (previously, the overflow variant was identical for both densities).
14+
15+
A full list of added and removed mods can be found below. However, please note the following mod name changes:
16+
17+
- --mod-tabs-divider-size is now --mod-tabs-selection-indicator-thickness
18+
- --mod-tabs-divider-border-radius is now --mod-tabs-selection-indicator-border-radius
19+
20+
Removed mods
21+
22+
- "--mod-tabs-color-hover-emphasized"
23+
- "--mod-tabs-color-key-focus-emphasized"
24+
- "--mod-tabs-color-selected-emphasized"
25+
- "--mod-tabs-divider-background-color"
26+
- "--mod-tabs-divider-border-radius"
27+
- "--mod-tabs-divider-size"
28+
- "--mod-tabs-item-vertical-spacing"
29+
- "--mod-tabs-list-background-direction"
30+
- "--mod-tabs-list-background-direction-vertical"
31+
- "--mod-tabs-list-background-direction-vertical-right"
32+
- "--mod-tabs-selection-indicator-color-emphasized"
33+
- "--mod-tabs-start-to-item-quiet"
34+
35+
Added mods
36+
37+
- "--mod-tabs-color-selected-hover"
38+
- "--mod-tabs-color-selected-key-focus"
39+
- "--mod-tabs-item-border-radius"
40+
- "--mod-tabs-item-horizontal-spacing-compact"
41+
- "--mod-tabs-label-to-selection-indicator"
42+
- "--mod-tabs-label-to-selection-indicator-compact"
43+
- "--mod-tabs-selection-indicator-border-radius"
44+
- "--mod-tabs-selection-indicator-color-disabled"
45+
- "--mod-tabs-selection-indicator-thickness"
46+
- "--mod-tabs-side-to-icon"
47+
- "--mod-tabs-side-to-icon-compact"

.changeset/ripe-toys-invent.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@spectrum-css/tokens": minor
3+
---
4+
5+
Adds custom tokens for Tabs in Spectrum 2. This is intended to be a temporary change until the tokens have been added to the spectrum-tokens package.

components/tabs/dist/metadata.json

Lines changed: 51 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,41 @@
22
"sourceFile": "index.css",
33
"selectors": [
44
".spectrum-Tabs",
5-
".spectrum-Tabs .is-selected:before",
6-
".spectrum-Tabs .is-selected:focus",
7-
".spectrum-Tabs .is-selected:focus-visible",
8-
".spectrum-Tabs .spectrum-Tabs-item .spectrum-Icon",
9-
".spectrum-Tabs .spectrum-Tabs-item .spectrum-Tabs-itemLabel",
5+
".spectrum-Tabs .spectrum-Picker-button",
6+
".spectrum-Tabs .spectrum-Tabs-item.is-selected",
7+
".spectrum-Tabs .spectrum-Tabs-item.is-selected .spectrum-Icon",
8+
".spectrum-Tabs .spectrum-Tabs-item.is-selected.is-disabled .spectrum-Icon",
9+
".spectrum-Tabs .spectrum-Tabs-item.is-selected.is-disabled .spectrum-Tabs-selectionIndicator",
1010
".spectrum-Tabs--horizontal",
1111
".spectrum-Tabs--horizontal .spectrum-Tabs-item",
12-
".spectrum-Tabs--horizontal .spectrum-Tabs-item + :not(.spectrum-Tabs-selectionIndicator)",
1312
".spectrum-Tabs--horizontal .spectrum-Tabs-selectionIndicator",
1413
".spectrum-Tabs--horizontal.spectrum-Tabs--compact",
15-
".spectrum-Tabs--quiet",
16-
".spectrum-Tabs--quiet .spectrum-Tabs-selectionIndicator",
1714
".spectrum-Tabs--vertical",
1815
".spectrum-Tabs--vertical .spectrum-Icon",
1916
".spectrum-Tabs--vertical .spectrum-Tabs-item",
20-
".spectrum-Tabs--vertical .spectrum-Tabs-item:before",
2117
".spectrum-Tabs--vertical .spectrum-Tabs-selectionIndicator",
2218
".spectrum-Tabs--vertical-right",
2319
".spectrum-Tabs--vertical-right .spectrum-Icon",
2420
".spectrum-Tabs--vertical-right .spectrum-Tabs-item",
25-
".spectrum-Tabs--vertical-right .spectrum-Tabs-item:before",
2621
".spectrum-Tabs--vertical-right .spectrum-Tabs-selectionIndicator",
27-
".spectrum-Tabs--vertical-right.spectrum-Tabs--quiet",
28-
".spectrum-Tabs--vertical-right:dir(rtl)",
29-
".spectrum-Tabs--vertical.spectrum-Tabs--quiet",
30-
".spectrum-Tabs--vertical:dir(rtl)",
3122
".spectrum-Tabs-item",
3223
".spectrum-Tabs-item .spectrum-Icon",
3324
".spectrum-Tabs-item .spectrum-Icon + .spectrum-Tabs-itemLabel",
3425
".spectrum-Tabs-item.is-disabled",
3526
".spectrum-Tabs-item.is-disabled .spectrum-Tabs-itemLabel",
27+
".spectrum-Tabs-item.is-disabled .spectrum-Tabs-selectionIndicator",
3628
".spectrum-Tabs-item.is-selected",
29+
".spectrum-Tabs-item.is-selected.is-disabled",
30+
".spectrum-Tabs-item.is-selected:focus-visible",
31+
".spectrum-Tabs-item.is-selected:hover",
3732
".spectrum-Tabs-item:before",
3833
".spectrum-Tabs-item:focus-visible",
3934
".spectrum-Tabs-item:focus-visible:before",
4035
".spectrum-Tabs-item:hover",
4136
".spectrum-Tabs-itemLabel",
4237
".spectrum-Tabs-itemLabel:empty",
4338
".spectrum-Tabs-selectionIndicator",
44-
".spectrum-Tabs.spectrum-Tabs--compact",
45-
".spectrum-Tabs.spectrum-Tabs--compact.spectrum-Tabs--sizeL",
46-
".spectrum-Tabs.spectrum-Tabs--compact.spectrum-Tabs--sizeS",
47-
".spectrum-Tabs.spectrum-Tabs--compact.spectrum-Tabs--sizeXL",
48-
".spectrum-Tabs.spectrum-Tabs--emphasized",
49-
".spectrum-Tabs.spectrum-Tabs--quiet",
50-
".spectrum-Tabs.spectrum-Tabs--sizeL",
51-
".spectrum-Tabs.spectrum-Tabs--sizeS",
52-
".spectrum-Tabs.spectrum-Tabs--sizeXL",
53-
".spectrum-Tabs.spectrum-Tabs--vertical.spectrum-Tabs--compact .spectrum-Tabs-item:before",
54-
"[dir=\"rtl\"] .spectrum-Tabs--vertical",
55-
"[dir=\"rtl\"] .spectrum-Tabs--vertical-right"
39+
".spectrum-Tabs.spectrum-Tabs--compact"
5640
],
5741
"modifiers": [
5842
"--mod-tabs-animation-duration",
@@ -62,14 +46,10 @@
6246
"--mod-tabs-color",
6347
"--mod-tabs-color-disabled",
6448
"--mod-tabs-color-hover",
65-
"--mod-tabs-color-hover-emphasized",
6649
"--mod-tabs-color-key-focus",
67-
"--mod-tabs-color-key-focus-emphasized",
6850
"--mod-tabs-color-selected",
69-
"--mod-tabs-color-selected-emphasized",
70-
"--mod-tabs-divider-background-color",
71-
"--mod-tabs-divider-border-radius",
72-
"--mod-tabs-divider-size",
51+
"--mod-tabs-color-selected-hover",
52+
"--mod-tabs-color-selected-key-focus",
7353
"--mod-tabs-focus-indicator-border-radius",
7454
"--mod-tabs-focus-indicator-color",
7555
"--mod-tabs-focus-indicator-gap",
@@ -80,24 +60,28 @@
8060
"--mod-tabs-font-weight",
8161
"--mod-tabs-icon-size",
8262
"--mod-tabs-icon-to-text",
63+
"--mod-tabs-item-border-radius",
8364
"--mod-tabs-item-height",
8465
"--mod-tabs-item-height-compact",
8566
"--mod-tabs-item-horizontal-spacing",
86-
"--mod-tabs-item-vertical-spacing",
67+
"--mod-tabs-item-horizontal-spacing-compact",
68+
"--mod-tabs-label-to-selection-indicator",
69+
"--mod-tabs-label-to-selection-indicator-compact",
8770
"--mod-tabs-line-height",
88-
"--mod-tabs-list-background-direction",
89-
"--mod-tabs-list-background-direction-vertical",
90-
"--mod-tabs-list-background-direction-vertical-right",
71+
"--mod-tabs-selection-indicator-border-radius",
9172
"--mod-tabs-selection-indicator-color",
92-
"--mod-tabs-selection-indicator-color-emphasized",
73+
"--mod-tabs-selection-indicator-color-disabled",
74+
"--mod-tabs-selection-indicator-thickness",
75+
"--mod-tabs-side-to-icon",
76+
"--mod-tabs-side-to-icon-compact",
9377
"--mod-tabs-start-to-edge",
94-
"--mod-tabs-start-to-item-quiet",
9578
"--mod-tabs-top-to-icon",
9679
"--mod-tabs-top-to-icon-compact",
9780
"--mod-tabs-top-to-text",
9881
"--mod-tabs-top-to-text-compact"
9982
],
10083
"component": [
84+
"--spectrum-tab-selection-indicator-thickness",
10185
"--spectrum-tabs-animation-duration",
10286
"--spectrum-tabs-animation-ease",
10387
"--spectrum-tabs-bottom-to-text",
@@ -106,9 +90,8 @@
10690
"--spectrum-tabs-color-hover",
10791
"--spectrum-tabs-color-key-focus",
10892
"--spectrum-tabs-color-selected",
109-
"--spectrum-tabs-divider-background-color",
110-
"--spectrum-tabs-divider-border-radius",
111-
"--spectrum-tabs-divider-size",
93+
"--spectrum-tabs-color-selected-hover",
94+
"--spectrum-tabs-color-selected-key-focus",
11295
"--spectrum-tabs-focus-indicator-border-radius",
11396
"--spectrum-tabs-focus-indicator-color",
11497
"--spectrum-tabs-focus-indicator-gap",
@@ -119,103 +102,73 @@
119102
"--spectrum-tabs-font-weight",
120103
"--spectrum-tabs-icon-size",
121104
"--spectrum-tabs-icon-to-text",
105+
"--spectrum-tabs-item-border-radius",
122106
"--spectrum-tabs-item-height",
123107
"--spectrum-tabs-item-horizontal-spacing",
124-
"--spectrum-tabs-item-vertical-spacing",
108+
"--spectrum-tabs-label-to-selection-indicator",
125109
"--spectrum-tabs-line-height",
126-
"--spectrum-tabs-list-background-direction",
110+
"--spectrum-tabs-selection-indicator-border-radius",
127111
"--spectrum-tabs-selection-indicator-color",
112+
"--spectrum-tabs-selection-indicator-color-disabled",
113+
"--spectrum-tabs-selection-indicator-thickness",
114+
"--spectrum-tabs-side-to-icon",
128115
"--spectrum-tabs-start-to-edge",
129116
"--spectrum-tabs-top-to-icon",
130117
"--spectrum-tabs-top-to-text"
131118
],
132119
"global": [
133-
"--spectrum-accent-content-color-default",
134-
"--spectrum-accent-content-color-hover",
135-
"--spectrum-accent-content-color-key-focus",
136120
"--spectrum-animation-duration-100",
137121
"--spectrum-animation-ease-in-out",
138-
"--spectrum-border-width-200",
122+
"--spectrum-corner-radius-0",
139123
"--spectrum-corner-radius-100",
124+
"--spectrum-corner-radius-full",
140125
"--spectrum-default-font-style",
126+
"--spectrum-disabled-border-color",
127+
"--spectrum-disabled-content-color",
141128
"--spectrum-focus-indicator-color",
129+
"--spectrum-focus-indicator-gap",
142130
"--spectrum-focus-indicator-thickness",
143131
"--spectrum-font-size-100",
144-
"--spectrum-font-size-200",
145-
"--spectrum-font-size-300",
146-
"--spectrum-font-size-75",
147-
"--spectrum-gray-200",
148-
"--spectrum-gray-500",
149132
"--spectrum-line-height-100",
133+
"--spectrum-neutral-content-color-default",
134+
"--spectrum-neutral-content-color-hover",
135+
"--spectrum-neutral-content-color-key-focus",
150136
"--spectrum-neutral-subdued-content-color-default",
151137
"--spectrum-neutral-subdued-content-color-down",
152138
"--spectrum-neutral-subdued-content-color-hover",
153139
"--spectrum-neutral-subdued-content-color-key-focus",
154140
"--spectrum-regular-font-weight",
155141
"--spectrum-sans-font-family-stack",
156-
"--spectrum-tab-item-bottom-to-text-extra-large",
157-
"--spectrum-tab-item-bottom-to-text-large",
142+
"--spectrum-spacing-200",
143+
"--spectrum-spacing-75",
144+
"--spectrum-tab-item-bottom-to-text-compact-medium",
158145
"--spectrum-tab-item-bottom-to-text-medium",
159-
"--spectrum-tab-item-bottom-to-text-small",
160-
"--spectrum-tab-item-compact-height-extra-large",
161-
"--spectrum-tab-item-compact-height-large",
162146
"--spectrum-tab-item-compact-height-medium",
163-
"--spectrum-tab-item-compact-height-small",
164-
"--spectrum-tab-item-focus-indicator-gap-extra-large",
165-
"--spectrum-tab-item-focus-indicator-gap-large",
166-
"--spectrum-tab-item-focus-indicator-gap-medium",
167-
"--spectrum-tab-item-focus-indicator-gap-small",
168-
"--spectrum-tab-item-height-extra-large",
169-
"--spectrum-tab-item-height-large",
170147
"--spectrum-tab-item-height-medium",
171-
"--spectrum-tab-item-height-small",
172-
"--spectrum-tab-item-start-to-edge-extra-large",
173-
"--spectrum-tab-item-start-to-edge-large",
148+
"--spectrum-tab-item-side-to-workflow-icon-compact-medium",
149+
"--spectrum-tab-item-side-to-workflow-icon-medium",
174150
"--spectrum-tab-item-start-to-edge-medium",
175-
"--spectrum-tab-item-start-to-edge-small",
176-
"--spectrum-tab-item-to-tab-item-horizontal-extra-large",
177-
"--spectrum-tab-item-to-tab-item-horizontal-large",
151+
"--spectrum-tab-item-to-tab-item-compact-horizontal-medium",
178152
"--spectrum-tab-item-to-tab-item-horizontal-medium",
179-
"--spectrum-tab-item-to-tab-item-horizontal-small",
180-
"--spectrum-tab-item-to-tab-item-vertical-extra-large",
181-
"--spectrum-tab-item-to-tab-item-vertical-large",
182-
"--spectrum-tab-item-to-tab-item-vertical-medium",
183-
"--spectrum-tab-item-to-tab-item-vertical-small",
184-
"--spectrum-tab-item-top-to-text-compact-extra-large",
185-
"--spectrum-tab-item-top-to-text-compact-large",
186153
"--spectrum-tab-item-top-to-text-compact-medium",
187-
"--spectrum-tab-item-top-to-text-compact-small",
188-
"--spectrum-tab-item-top-to-text-extra-large",
189-
"--spectrum-tab-item-top-to-text-large",
190154
"--spectrum-tab-item-top-to-text-medium",
191-
"--spectrum-tab-item-top-to-text-small",
192-
"--spectrum-tab-item-top-to-workflow-icon-compact-extra-large",
193-
"--spectrum-tab-item-top-to-workflow-icon-compact-large",
194155
"--spectrum-tab-item-top-to-workflow-icon-compact-medium",
195-
"--spectrum-tab-item-top-to-workflow-icon-compact-small",
196-
"--spectrum-tab-item-top-to-workflow-icon-extra-large",
197-
"--spectrum-tab-item-top-to-workflow-icon-large",
198156
"--spectrum-tab-item-top-to-workflow-icon-medium",
199-
"--spectrum-tab-item-top-to-workflow-icon-small",
200157
"--spectrum-text-to-visual-100",
201-
"--spectrum-text-to-visual-200",
202-
"--spectrum-text-to-visual-300",
203-
"--spectrum-text-to-visual-75",
204-
"--spectrum-workflow-icon-size-100",
205-
"--spectrum-workflow-icon-size-200",
206-
"--spectrum-workflow-icon-size-50",
207-
"--spectrum-workflow-icon-size-75"
158+
"--spectrum-workflow-icon-size-100"
208159
],
209-
"passthroughs": [],
160+
"passthroughs": ["--mod-picker-block-size"],
210161
"high-contrast": [
162+
"--highcontrast-tabs-background-color-selected",
211163
"--highcontrast-tabs-color",
212164
"--highcontrast-tabs-color-disabled",
213165
"--highcontrast-tabs-color-hover",
214166
"--highcontrast-tabs-color-key-focus",
215167
"--highcontrast-tabs-color-selected",
216-
"--highcontrast-tabs-divider-background-color",
217-
"--highcontrast-tabs-focus-indicator-background-color",
168+
"--highcontrast-tabs-color-selected-hover",
169+
"--highcontrast-tabs-color-selected-key-focus",
218170
"--highcontrast-tabs-focus-indicator-color",
219-
"--highcontrast-tabs-selection-indicator-color"
171+
"--highcontrast-tabs-selection-indicator-color",
172+
"--highcontrast-tabs-selection-indicator-color-disabled"
220173
]
221174
}

0 commit comments

Comments
 (0)