Skip to content

Commit d831bd0

Browse files
authored
feat(menu): S2 menu fast follows (#4058)
1 parent b1a43d4 commit d831bd0

File tree

9 files changed

+362
-201
lines changed

9 files changed

+362
-201
lines changed

.changeset/small-berries-dream.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
"@spectrum-css/menu": minor
3+
---
4+
5+
This handles a few remaining items from the initial S2 migration:
6+
7+
- update to use the correct "LinkOut" icon (previously unavailable)
8+
- add "Unavailable" icon
9+
- the functionality in WC will be to open an explanatory popover
10+
11+
Additionally, per design review, updates were made regarding valid feature combos:
12+
13+
- **Not allowed:**
14+
- external links with: thumbnails, drill-in, unavailable, or selection modes
15+
- thumbnails with: drill-in, external links
16+
- new "unavailable" with: selection modes, external links

components/accordion/index.css

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,7 @@
7676
);
7777

7878
/* Calculated vertical spacing for action button and switch to center them within the accordion item */
79-
--spectrum-accordion-item-direct-actions-vertical-spacing: calc(
80-
(var(--mod-accordion-item-min-block-size, var(--spectrum-accordion-item-min-block-size)) -
81-
var(--mod-accordion-item-direct-actions-height, var(--spectrum-accordion-item-direct-actions-height))) / 2
82-
);
79+
--spectrum-accordion-item-direct-actions-vertical-spacing: calc((var(--mod-accordion-item-min-block-size, var(--spectrum-accordion-item-min-block-size)) - var(--mod-accordion-item-direct-actions-height, var(--spectrum-accordion-item-direct-actions-height))) / 2);
8380

8481
/* Right-to-left adjustments for transforms */
8582
&:dir(rtl) {

components/menu/dist/metadata.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
".spectrum-Menu .spectrum-Menu-item--drillIn.is-open",
1717
".spectrum-Menu .spectrum-Menu-item:focus .spectrum-Menu-itemCheckbox",
1818
".spectrum-Menu .spectrum-Menu-item:focus .spectrum-Menu-itemSwitch",
19-
".spectrum-Menu .spectrum-Menu-item:has(> .spectrum-Menu-itemIcon--workflowIcon) .spectrum-Menu-linkout",
2019
".spectrum-Menu .spectrum-Menu-item:hover .spectrum-Menu-itemCheckbox",
2120
".spectrum-Menu .spectrum-Menu-item:hover .spectrum-Menu-itemSwitch",
2221
".spectrum-Menu .spectrum-Menu-itemIcon",
@@ -100,15 +99,15 @@
10099
".spectrum-Menu-item:focus-visible > .spectrum-Menu-itemLabel",
101100
".spectrum-Menu-item:focus-visible > .spectrum-Menu-itemValue",
102101
".spectrum-Menu-item:focus-visible > .spectrum-Menu-sectionHeading",
103-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail) > .spectrum-Menu-checkmark",
104-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail) > .spectrum-Menu-itemActions",
105-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail) > .spectrum-Menu-itemCheckbox",
106-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail) > .spectrum-Menu-itemLabel",
107-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail) > .spectrum-Menu-itemValue",
108102
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):has(> .spectrum-Menu-itemDescription) .spectrum-Menu-itemThumbnail",
109-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):has(> .spectrum-Menu-itemDescription) > .spectrum-Menu-checkmark",
110-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):has(> .spectrum-Menu-itemDescription) > .spectrum-Menu-itemCheckbox",
111-
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):has(> .spectrum-Menu-itemDescription) > .spectrum-Menu-itemDescription",
103+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)) > .spectrum-Menu-checkmark",
104+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)) > .spectrum-Menu-itemActions",
105+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)) > .spectrum-Menu-itemCheckbox",
106+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)) > .spectrum-Menu-itemLabel",
107+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)) > .spectrum-Menu-itemValue",
108+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)):has(> .spectrum-Menu-itemDescription) > .spectrum-Menu-checkmark",
109+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)):has(> .spectrum-Menu-itemDescription) > .spectrum-Menu-itemCheckbox",
110+
".spectrum-Menu-item:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)):has(> .spectrum-Menu-itemDescription) > .spectrum-Menu-itemDescription",
112111
".spectrum-Menu-item:hover",
113112
".spectrum-Menu-item:hover .spectrum-Menu-linkout",
114113
".spectrum-Menu-item:hover > .spectrum-Menu-checkmark",

components/menu/index.css

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -300,11 +300,14 @@
300300
}
301301
}
302302

303+
&.is-selectable,
303304
&.is-selectableMultiple {
304305
.spectrum-Menu-item {
305306
align-items: start;
306307
}
308+
}
307309

310+
&.is-selectableMultiple {
308311
.spectrum-Menu-itemCheckbox {
309312
grid-area: checkmarkArea;
310313
}
@@ -329,7 +332,6 @@
329332
color: var(--highcontrast-menu-item-color-default, var(--mod-menu-item-label-icon-color-default, var(--spectrum-menu-item-label-icon-color-default)));
330333

331334
grid-area: iconArea;
332-
align-self: start;
333335
}
334336

335337
.spectrum-Menu-checkmark {
@@ -347,7 +349,6 @@
347349
margin-inline-end: var(--mod-menu-item-text-to-control, var(--spectrum-menu-item-text-to-control));
348350

349351
grid-area: checkmarkArea;
350-
align-self: start;
351352
}
352353

353354
.spectrum-Menu-chevron {
@@ -358,7 +359,6 @@
358359
margin-inline-end: var(--mod-menu-item-text-to-control, var(--spectrum-menu-item-text-to-control));
359360

360361
grid-area: chevronArea;
361-
align-self: center;
362362

363363
&:dir(rtl) {
364364
transform: rotate(-180deg);
@@ -386,17 +386,6 @@
386386
.spectrum-Menu-linkout {
387387
block-size: var(--mod-menu-item-linkout-icon-height, var(--spectrum-menu-item-linkout-icon-height));
388388
inline-size: var(--mod-menu-item-linkout-icon-width, var(--spectrum-menu-item-linkout-icon-width));
389-
390-
/* Improve vertical alignment of linkout icon */
391-
/* TODO: revisit with #1194 when final icon available */
392-
display: block;
393-
margin-block-start: calc(var(--mod-menu-item-label-font-size, var(--spectrum-menu-item-label-font-size)) - var(--spectrum-menu-item-linkout-icon-height));
394-
}
395-
396-
/* Improve vertical alignment of linkout icon */
397-
/* TODO: revisit with #1194 when final icon available */
398-
.spectrum-Menu-item:has(> .spectrum-Menu-itemIcon--workflowIcon) .spectrum-Menu-linkout {
399-
margin-block-start: calc(var(--mod-menu-item-label-font-size, var(--spectrum-menu-item-label-font-size)) - var(--mod-menu-item-icon-height, var(--spectrum-menu-item-icon-height) / 2));
400389
}
401390

402391
/* Presentational list items for sections and dividers. */
@@ -443,7 +432,7 @@
443432
grid-template-rows: 1fr auto;
444433

445434
/* Alignment adjustments if there's a thumbnail */
446-
&:has(> .spectrum-Menu-itemThumbnail) {
435+
&:has(> .spectrum-Menu-itemThumbnail):not(:has(.spectrum-Menu-itemSwitch)) {
447436
> .spectrum-Menu-itemCheckbox,
448437
> .spectrum-Menu-checkmark,
449438
> .spectrum-Menu-itemActions,
@@ -694,13 +683,12 @@
694683
color: var(--highcontrast-menu-item-color-default, var(--mod-menu-item-value-color-default, var(--spectrum-menu-item-value-color-default)));
695684
font-size: var(--mod-menu-item-label-font-size, var(--spectrum-menu-item-label-font-size));
696685
justify-self: end;
697-
align-self: start;
698686
margin-inline-start: var(--mod-menu-item-label-to-value-area-min-spacing, var(--spectrum-menu-item-label-to-value-area-min-spacing));
699687
}
700688

701689
.spectrum-Menu-itemActions {
690+
display: grid;
702691
grid-area: actionsArea;
703-
align-self: start;
704692
margin-inline-start: var(--mod-menu-item-label-to-value-area-min-spacing, var(--spectrum-menu-item-label-to-value-area-min-spacing));
705693
}
706694

@@ -751,7 +739,6 @@
751739
/* Span two rows to properly align to description when present */
752740
.spectrum-Menu-item:has(> &):has(> .spectrum-Menu-itemDescription) & {
753741
grid-row-end: visualOverflow;
754-
align-self: center;
755742
}
756743
}
757744

0 commit comments

Comments
 (0)