Skip to content

Commit 77aa82c

Browse files
authored
feat(breadcrumb)!: spectrum 2 migration (#3395)
Migrates component to Spectrum 2. Includes renaming of variants and new large t-shirt size, changed token usage to match spec, additional storybook options, etc. docs(breadcrumb): new controls for nested and improved nested docs Adds controls so a user is able to display the nested truncated menu, root context, set disabled items, and item text. This also clears up and moves around some of the documentation about the truncated menu and root context. docs(breadcrumb): refactor tests Update VRTs tests file to use new refactored controls and updated s2 variants. More options can now live in the state data. docs(breadcrumb): add hover and focus-visible to tests
1 parent 520a8a4 commit 77aa82c

File tree

8 files changed

+472
-416
lines changed

8 files changed

+472
-416
lines changed

.changeset/fresh-crabs-deliver.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@spectrum-css/breadcrumb": major
3+
---
4+
5+
#### Spectrum 2 Migration
6+
7+
The breadcrumbs component is now updated to use the S2 specs and tokens. This includes updated spacing, heights, colors, font sizes, etc.
8+
9+
There has been a major design change to the variant classes related to density and sizing, to align their terminology better with t-shirt sizes:
10+
11+
- The "compact" variant no longer exists. The `spectrum-Breadcrumbs--compact` class and associated custom properties are removed. The default (medium) breadcrumbs are now sized similar to what was previously called compact.
12+
- There is a new "large" variant, which uses the `spectrum-Breadcrumbs--sizeL` class. This is sized similarly to what was previously the default.
13+
14+
In the multiline variant, the size of the title item can optionally be customized using an additional child heading element that applies one of the
15+
typography component's `spectrum-Heading--size*` classes. The preferred sizes specified in the design spec are small, medium, large (default), and
16+
extra-large. If an additional heading element is not used within the title item, the text will still be sized correctly to the default.

components/breadcrumb/dist/metadata.json

+41-79
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,30 @@
22
"sourceFile": "index.css",
33
"selectors": [
44
".spectrum-Breadcrumbs",
5-
".spectrum-Breadcrumbs--compact",
6-
".spectrum-Breadcrumbs--compact .spectrum-Breadcrumbs-item",
7-
".spectrum-Breadcrumbs--compact .spectrum-Breadcrumbs-item > .spectrum-ActionButton",
8-
".spectrum-Breadcrumbs--compact .spectrum-Breadcrumbs-item:last-of-type",
9-
".spectrum-Breadcrumbs--compact .spectrum-Breadcrumbs-itemLink",
10-
".spectrum-Breadcrumbs--compact .spectrum-Breadcrumbs-itemSeparator",
115
".spectrum-Breadcrumbs--multiline",
12-
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-item",
13-
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-item > .spectrum-ActionButton",
146
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-item:last-of-type",
15-
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-item:last-of-type .spectrum-Breadcrumbs-itemLink",
16-
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-itemLink",
17-
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-itemSeparator",
7+
".spectrum-Breadcrumbs--multiline .spectrum-Breadcrumbs-item:last-of-type > .spectrum-Breadcrumbs-itemLink",
8+
".spectrum-Breadcrumbs--sizeL",
189
".spectrum-Breadcrumbs-item",
1910
".spectrum-Breadcrumbs-item > .spectrum-ActionButton",
2011
".spectrum-Breadcrumbs-item > .spectrum-ActionButton:disabled",
2112
".spectrum-Breadcrumbs-item.is-dragged .spectrum-Breadcrumbs-itemLink:before",
2213
".spectrum-Breadcrumbs-item:first-of-type > .spectrum-ActionButton",
14+
".spectrum-Breadcrumbs-item:first-of-type > .spectrum-Breadcrumbs-itemLink",
2315
".spectrum-Breadcrumbs-item:last-of-type",
2416
".spectrum-Breadcrumbs-item:last-of-type .spectrum-Breadcrumbs-itemLink",
2517
".spectrum-Breadcrumbs-item:last-of-type .spectrum-Breadcrumbs-itemSeparator",
2618
".spectrum-Breadcrumbs-itemLink",
19+
".spectrum-Breadcrumbs-itemLink + .spectrum-Breadcrumbs-itemSeparator",
2720
".spectrum-Breadcrumbs-itemLink.is-disabled",
2821
".spectrum-Breadcrumbs-itemLink:focus-visible:before",
2922
".spectrum-Breadcrumbs-itemLink[aria-disabled=\"true\"]",
3023
".spectrum-Breadcrumbs-itemLink[href]",
24+
".spectrum-Breadcrumbs-itemLink[href]:active",
3125
".spectrum-Breadcrumbs-itemLink[href]:focus-visible",
3226
".spectrum-Breadcrumbs-itemLink[href]:hover",
3327
".spectrum-Breadcrumbs-itemLink[tabindex=\"0\"]",
28+
".spectrum-Breadcrumbs-itemLink[tabindex=\"0\"]:active",
3429
".spectrum-Breadcrumbs-itemLink[tabindex=\"0\"]:focus-visible",
3530
".spectrum-Breadcrumbs-itemLink[tabindex=\"0\"]:hover",
3631
".spectrum-Breadcrumbs-itemSeparator",
@@ -41,41 +36,23 @@
4136
"--mod-breadcrumbs-action-button-color",
4237
"--mod-breadcrumbs-action-button-color-disabled",
4338
"--mod-breadcrumbs-action-button-spacing-block",
44-
"--mod-breadcrumbs-action-button-spacing-block-between-multiline",
45-
"--mod-breadcrumbs-action-button-spacing-block-compact",
46-
"--mod-breadcrumbs-action-button-spacing-block-multiline",
4739
"--mod-breadcrumbs-action-button-spacing-inline",
48-
"--mod-breadcrumbs-action-button-spacing-inline-start",
4940
"--mod-breadcrumbs-block-size",
50-
"--mod-breadcrumbs-block-size-compact",
51-
"--mod-breadcrumbs-block-size-multiline",
5241
"--mod-breadcrumbs-focus-indicator-color",
5342
"--mod-breadcrumbs-focus-indicator-gap",
5443
"--mod-breadcrumbs-focus-indicator-thickness",
5544
"--mod-breadcrumbs-font-family",
56-
"--mod-breadcrumbs-font-family-compact",
57-
"--mod-breadcrumbs-font-family-compact-current",
5845
"--mod-breadcrumbs-font-family-current",
59-
"--mod-breadcrumbs-font-family-multiline",
60-
"--mod-breadcrumbs-font-family-multiline-current",
6146
"--mod-breadcrumbs-font-size",
62-
"--mod-breadcrumbs-font-size-compact",
63-
"--mod-breadcrumbs-font-size-compact-current",
6447
"--mod-breadcrumbs-font-size-current",
65-
"--mod-breadcrumbs-font-size-multiline",
66-
"--mod-breadcrumbs-font-size-multiline-current",
48+
"--mod-breadcrumbs-font-style",
6749
"--mod-breadcrumbs-font-weight",
68-
"--mod-breadcrumbs-font-weight-compact",
69-
"--mod-breadcrumbs-font-weight-compact-current",
7050
"--mod-breadcrumbs-font-weight-current",
71-
"--mod-breadcrumbs-font-weight-multiline",
72-
"--mod-breadcrumbs-font-weight-multiline-current",
7351
"--mod-breadcrumbs-icon-spacing-block",
74-
"--mod-breadcrumbs-icon-spacing-block-between-multiline",
75-
"--mod-breadcrumbs-icon-spacing-block-compact",
76-
"--mod-breadcrumbs-icon-spacing-block-start-multiline",
7752
"--mod-breadcrumbs-inline-end",
7853
"--mod-breadcrumbs-inline-start",
54+
"--mod-breadcrumbs-inline-start-to-truncated-menu",
55+
"--mod-breadcrumbs-item-dragged-background",
7956
"--mod-breadcrumbs-item-link-border-radius",
8057
"--mod-breadcrumbs-line-height",
8158
"--mod-breadcrumbs-separator-color",
@@ -85,108 +62,93 @@
8562
"--mod-breadcrumbs-text-color-disabled",
8663
"--mod-breadcrumbs-text-decoration-gap",
8764
"--mod-breadcrumbs-text-decoration-thickness",
88-
"--mod-breadcrumbs-text-spacing-block-between-multiline",
8965
"--mod-breadcrumbs-text-spacing-block-end",
90-
"--mod-breadcrumbs-text-spacing-block-end-compact",
91-
"--mod-breadcrumbs-text-spacing-block-end-multiline",
9266
"--mod-breadcrumbs-text-spacing-block-start",
93-
"--mod-breadcrumbs-text-spacing-block-start-compact",
94-
"--mod-breadcrumbs-text-spacing-block-start-multiline"
67+
"--mod-breadcrumbs-title-spacing-block-end",
68+
"--mod-breadcrumbs-title-spacing-block-start",
69+
"--mod-heading-margin-end",
70+
"--mod-heading-margin-start"
9571
],
9672
"component": [
9773
"--spectrum-breadcrumbs-action-button-color",
9874
"--spectrum-breadcrumbs-action-button-color-disabled",
9975
"--spectrum-breadcrumbs-action-button-spacing-block",
100-
"--spectrum-breadcrumbs-action-button-spacing-block-between-multiline",
101-
"--spectrum-breadcrumbs-action-button-spacing-block-compact",
102-
"--spectrum-breadcrumbs-action-button-spacing-block-multiline",
10376
"--spectrum-breadcrumbs-action-button-spacing-inline",
104-
"--spectrum-breadcrumbs-action-button-spacing-inline-start",
10577
"--spectrum-breadcrumbs-block-size",
106-
"--spectrum-breadcrumbs-block-size-compact",
107-
"--spectrum-breadcrumbs-block-size-multiline",
108-
"--spectrum-breadcrumbs-bottom-to-text",
109-
"--spectrum-breadcrumbs-bottom-to-text-compact",
11078
"--spectrum-breadcrumbs-bottom-to-text-multiline",
11179
"--spectrum-breadcrumbs-end-edge-to-text",
11280
"--spectrum-breadcrumbs-focus-indicator-color",
11381
"--spectrum-breadcrumbs-focus-indicator-gap",
11482
"--spectrum-breadcrumbs-focus-indicator-thickness",
11583
"--spectrum-breadcrumbs-font-family",
116-
"--spectrum-breadcrumbs-font-family-compact",
117-
"--spectrum-breadcrumbs-font-family-compact-current",
11884
"--spectrum-breadcrumbs-font-family-current",
119-
"--spectrum-breadcrumbs-font-family-multiline",
120-
"--spectrum-breadcrumbs-font-family-multiline-current",
12185
"--spectrum-breadcrumbs-font-size",
122-
"--spectrum-breadcrumbs-font-size-compact",
123-
"--spectrum-breadcrumbs-font-size-compact-current",
12486
"--spectrum-breadcrumbs-font-size-current",
125-
"--spectrum-breadcrumbs-font-size-multiline",
126-
"--spectrum-breadcrumbs-font-size-multiline-current",
87+
"--spectrum-breadcrumbs-font-style",
12788
"--spectrum-breadcrumbs-font-weight",
128-
"--spectrum-breadcrumbs-font-weight-compact",
129-
"--spectrum-breadcrumbs-font-weight-compact-current",
13089
"--spectrum-breadcrumbs-font-weight-current",
131-
"--spectrum-breadcrumbs-font-weight-multiline",
132-
"--spectrum-breadcrumbs-font-weight-multiline-current",
133-
"--spectrum-breadcrumbs-height",
134-
"--spectrum-breadcrumbs-height-compact",
13590
"--spectrum-breadcrumbs-height-multiline",
13691
"--spectrum-breadcrumbs-icon-spacing-block",
137-
"--spectrum-breadcrumbs-icon-spacing-block-between-multiline",
138-
"--spectrum-breadcrumbs-icon-spacing-block-compact",
139-
"--spectrum-breadcrumbs-icon-spacing-block-start-multiline",
14092
"--spectrum-breadcrumbs-inline-end",
14193
"--spectrum-breadcrumbs-inline-start",
94+
"--spectrum-breadcrumbs-inline-start-to-truncated-menu",
95+
"--spectrum-breadcrumbs-item-dragged-background",
14296
"--spectrum-breadcrumbs-item-link-border-radius",
14397
"--spectrum-breadcrumbs-line-height",
14498
"--spectrum-breadcrumbs-separator-color",
145-
"--spectrum-breadcrumbs-separator-icon-to-bottom-text-multiline",
14699
"--spectrum-breadcrumbs-separator-spacing-inline",
147-
"--spectrum-breadcrumbs-start-edge-to-text",
100+
"--spectrum-breadcrumbs-separator-to-bottom-text-multiline",
101+
"--spectrum-breadcrumbs-start-edge-to-text-large",
102+
"--spectrum-breadcrumbs-start-edge-to-text-medium",
103+
"--spectrum-breadcrumbs-start-edge-to-text-multiline",
148104
"--spectrum-breadcrumbs-start-edge-to-truncated-menu",
149105
"--spectrum-breadcrumbs-text-color",
150106
"--spectrum-breadcrumbs-text-color-current",
151107
"--spectrum-breadcrumbs-text-color-disabled",
152108
"--spectrum-breadcrumbs-text-decoration-gap",
153109
"--spectrum-breadcrumbs-text-decoration-thickness",
154-
"--spectrum-breadcrumbs-text-spacing-block-between-multiline",
155110
"--spectrum-breadcrumbs-text-spacing-block-end",
156-
"--spectrum-breadcrumbs-text-spacing-block-end-compact",
157-
"--spectrum-breadcrumbs-text-spacing-block-end-multiline",
158111
"--spectrum-breadcrumbs-text-spacing-block-start",
159-
"--spectrum-breadcrumbs-text-spacing-block-start-compact",
160-
"--spectrum-breadcrumbs-text-spacing-block-start-multiline",
112+
"--spectrum-breadcrumbs-text-to-separator-large",
113+
"--spectrum-breadcrumbs-text-to-separator-medium",
114+
"--spectrum-breadcrumbs-text-to-separator-multiline",
115+
"--spectrum-breadcrumbs-title-spacing-block-end",
116+
"--spectrum-breadcrumbs-title-spacing-block-start",
161117
"--spectrum-breadcrumbs-top-text-to-bottom-text",
162-
"--spectrum-breadcrumbs-top-to-separator-icon",
163-
"--spectrum-breadcrumbs-top-to-separator-icon-compact",
164-
"--spectrum-breadcrumbs-top-to-separator-icon-multiline",
165-
"--spectrum-breadcrumbs-top-to-text",
166-
"--spectrum-breadcrumbs-top-to-text-compact",
118+
"--spectrum-breadcrumbs-top-to-separator-large",
119+
"--spectrum-breadcrumbs-top-to-separator-medium",
120+
"--spectrum-breadcrumbs-top-to-separator-multiline",
167121
"--spectrum-breadcrumbs-top-to-text-multiline",
168122
"--spectrum-breadcrumbs-top-to-truncated-menu",
169-
"--spectrum-breadcrumbs-top-to-truncated-menu-compact",
170123
"--spectrum-breadcrumbs-truncated-menu-to-bottom-text",
171-
"--spectrum-breadcrumbs-truncated-menu-to-separator-icon"
124+
"--spectrum-breadcrumbs-truncated-menu-to-separator"
172125
],
173126
"global": [
174127
"--spectrum-bold-font-weight",
175-
"--spectrum-corner-radius-100",
128+
"--spectrum-component-bottom-to-text-100",
129+
"--spectrum-component-bottom-to-text-200",
130+
"--spectrum-component-height-100",
131+
"--spectrum-component-height-200",
132+
"--spectrum-component-top-to-text-100",
133+
"--spectrum-component-top-to-text-200",
134+
"--spectrum-corner-radius-small-default",
135+
"--spectrum-default-font-style",
176136
"--spectrum-disabled-content-color",
137+
"--spectrum-drop-zone-background-color-opacity",
138+
"--spectrum-drop-zone-background-color-rgb",
139+
"--spectrum-extra-bold-font-weight",
177140
"--spectrum-focus-indicator-color",
178141
"--spectrum-focus-indicator-gap",
179142
"--spectrum-focus-indicator-thickness",
180143
"--spectrum-font-size-100",
181144
"--spectrum-font-size-200",
182-
"--spectrum-font-size-300",
183145
"--spectrum-font-size-75",
146+
"--spectrum-heading-size-l",
184147
"--spectrum-line-height-100",
185148
"--spectrum-neutral-content-color-default",
186149
"--spectrum-neutral-subdued-content-color-default",
187150
"--spectrum-regular-font-weight",
188151
"--spectrum-sans-font-family-stack",
189-
"--spectrum-text-to-visual-100",
190152
"--spectrum-text-underline-gap",
191153
"--spectrum-text-underline-thickness"
192154
],

0 commit comments

Comments
 (0)