Skip to content

Commit 9752d02

Browse files
authored
fix(menu)!: reimplement text truncating (#2299)
BREAKING CHANGE: removes flex-based display, renames classes, reintroduces truncation Additionally: * fix(menu): truncating class * docs(menu): add truncating example * docs(menu): improve docs * feat(menu): add truncate example to storybook * refactor(menu): remove flex from itemLabel * feat(menu): wip adds truncating to all stories * refactor(menu): removes uneeded code * refactor(menu): removes hard coded ellipsis * docs(menu): improve description * chore(menu): story indenting * docs(menu): improve storybook max-width * refactor(menu): improves story * docs(menu): adds to migration guide * fix(menu): post rebase issues
1 parent 890f469 commit 9752d02

File tree

4 files changed

+165
-77
lines changed

4 files changed

+165
-77
lines changed

components/menu/index.css

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ governing permissions and limitations under the License.
1616
--spectrum-menu-item-icon-width: var(--spectrum-workflow-icon-size-100);
1717
--spectrum-menu-item-label-font-size: var(--spectrum-font-size-100);
1818
--spectrum-menu-item-label-text-to-visual: var(--spectrum-text-to-visual-100);
19-
19+
2020
--spectrum-menu-item-label-inline-edge-to-content: var(--spectrum-component-edge-to-text-100);
2121
--spectrum-menu-item-top-edge-to-text: var(--spectrum-component-top-to-text-100);
2222
--spectrum-menu-item-bottom-edge-to-text: var(--spectrum-component-bottom-to-text-100);
@@ -71,7 +71,7 @@ governing permissions and limitations under the License.
7171
--spectrum-menu-section-header-font-weight: var(--spectrum-bold-font-weight);
7272
--spectrum-menu-section-header-color: var(--spectrum-gray-900);
7373
--spectrum-menu-collapsible-icon-color: var(--spectrum-gray-900);
74-
74+
7575
--spectrum-menu-checkmark-icon-color-default: var(--spectrum-accent-color-900);
7676
--spectrum-menu-checkmark-icon-color-hover: var(--spectrum-accent-color-1000);
7777
--spectrum-menu-checkmark-icon-color-down: var(--spectrum-accent-color-1100);
@@ -120,7 +120,7 @@ governing permissions and limitations under the License.
120120
--spectrum-menu-item-icon-width: var(--spectrum-workflow-icon-size-75);
121121
--spectrum-menu-item-label-font-size: var(--spectrum-font-size-75);
122122
--spectrum-menu-item-label-text-to-visual: var(--spectrum-text-to-visual-75);
123-
123+
124124
--spectrum-menu-item-label-inline-edge-to-content: var(--spectrum-component-edge-to-text-75);
125125
--spectrum-menu-item-top-edge-to-text: var(--spectrum-component-top-to-text-75);
126126
--spectrum-menu-item-bottom-edge-to-text: var(--spectrum-component-bottom-to-text-75);
@@ -147,7 +147,7 @@ governing permissions and limitations under the License.
147147
--spectrum-menu-item-icon-width: var(--spectrum-workflow-icon-size-200);
148148
--spectrum-menu-item-label-font-size: var(--spectrum-font-size-200);
149149
--spectrum-menu-item-label-text-to-visual: var(--spectrum-text-to-visual-200);
150-
150+
151151
--spectrum-menu-item-label-inline-edge-to-content: var(--spectrum-component-edge-to-text-200);
152152
--spectrum-menu-item-top-edge-to-text: var(--spectrum-component-top-to-text-200);
153153
--spectrum-menu-item-bottom-edge-to-text: var(--spectrum-component-bottom-to-text-200);
@@ -174,7 +174,7 @@ governing permissions and limitations under the License.
174174
--spectrum-menu-item-icon-width: var(--spectrum-workflow-icon-size-300);
175175
--spectrum-menu-item-label-font-size: var(--spectrum-font-size-300);
176176
--spectrum-menu-item-label-text-to-visual: var(--spectrum-text-to-visual-300);
177-
177+
178178
--spectrum-menu-item-label-inline-edge-to-content: var(--spectrum-component-edge-to-text-300);
179179
--spectrum-menu-item-top-edge-to-text: var(--spectrum-component-top-to-text-300);
180180
--spectrum-menu-item-bottom-edge-to-text: var(--spectrum-component-bottom-to-text-300);
@@ -227,7 +227,7 @@ governing permissions and limitations under the License.
227227
--highcontrast-checkbox-highlight-color-hover: ButtonText;
228228
--highcontrast-checkbox-highlight-color-default: ButtonText;
229229
}
230-
230+
231231
.spectrum-Menu-itemSwitch {
232232
--highcontrast-switch-handle-border-color-hover: ButtonText;
233233
--highcontrast-switch-handle-border-color-selected-default: ButtonText;
@@ -281,7 +281,7 @@ governing permissions and limitations under the License.
281281
.spectrum-Menu-divider {
282282
--spectrum-menu-divider-thickness: var(--spectrum-divider-thickness-medium);
283283
&.spectrum-Divider--sizeS {
284-
--spectrum-menu-divider-thickness: var(--spectrum-divider-thickness-small);
284+
--spectrum-menu-divider-thickness: var(--spectrum-divider-thickness-small);
285285
}
286286

287287
overflow: visible;
@@ -339,14 +339,14 @@ governing permissions and limitations under the License.
339339
box-sizing: border-box;
340340

341341
background-color: var(--highcontrast-menu-item-background-color-default, var(--mod-menu-item-background-color-default, var(--spectrum-menu-item-background-color-default)));
342-
342+
343343
line-height: var(--mod-menu-item-label-line-height, var(--spectrum-menu-item-label-line-height));
344344

345345
min-block-size: var(--mod-menu-item-min-height, var(--spectrum-menu-item-min-height));
346346
padding-block-start: var(--mod-menu-item-top-edge-to-text, var(--spectrum-menu-item-top-edge-to-text));
347347
padding-block-end: var(--mod-menu-item-bottom-edge-to-text, var(--spectrum-menu-item-bottom-edge-to-text));
348348
padding-inline: var(--mod-menu-item-label-inline-edge-to-content, var(--spectrum-menu-item-label-inline-edge-to-content));
349-
349+
350350
margin: 0;
351351
text-decoration: none;
352352

@@ -365,7 +365,7 @@ governing permissions and limitations under the License.
365365

366366
.spectrum-Menu-itemSwitch {
367367
min-block-size: 0;
368-
368+
369369
.spectrum-Switch-switch {
370370
margin-block-start: var(--mod-menu-item-top-to-action, var(--spectrum-menu-item-top-to-action));;
371371
margin-block-end: 0;
@@ -377,11 +377,11 @@ governing permissions and limitations under the License.
377377
display: grid;
378378
/* stylelint-disable declaration-block-no-redundant-longhand-properties */
379379
grid-template-areas:
380-
". chevronAreaCollapsible . iconArea sectionHeadingArea . . . "
380+
". chevronAreaCollapsible . headingIconArea sectionHeadingArea . . . "
381381
"selectedArea chevronAreaCollapsible checkmarkArea iconArea labelArea valueArea actionsArea chevronAreaDrillIn"
382382
". . . . descriptionArea . . . "
383383
". . . . submenuArea . . . ";
384-
384+
385385
grid-template-columns: auto auto auto auto 1fr auto auto auto;
386386
grid-template-rows: 1fr auto;
387387
}
@@ -422,7 +422,7 @@ governing permissions and limitations under the License.
422422
> .spectrum-Menu-itemValue {
423423
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-value-color-focus, var(--spectrum-menu-item-value-color-focus)));
424424
}
425-
425+
426426
> .spectrum-Menu-itemIcon:not(.spectrum-Menu-chevron, .spectrum-Menu-checkmark) {
427427
fill: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-icon-color-focus, var(--spectrum-menu-item-label-icon-color-focus)));
428428
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-icon-color-focus, var(--spectrum-menu-item-label-icon-color-focus)));
@@ -469,7 +469,7 @@ governing permissions and limitations under the License.
469469
> .spectrum-Menu-itemValue {
470470
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-value-color-hover, var(--spectrum-menu-item-value-color-hover)));
471471
}
472-
472+
473473
> .spectrum-Menu-itemIcon:not(.spectrum-Menu-chevron, .spectrum-Menu-checkmark) {
474474
fill: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-icon-color-hover, var(--spectrum-menu-item-label-icon-color-hover)));
475475
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-icon-color-hover, var(--spectrum-menu-item-label-icon-color-hover)));
@@ -492,7 +492,7 @@ governing permissions and limitations under the License.
492492
> .spectrum-Menu-itemLabel {
493493
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-content-color-down, var(--spectrum-menu-item-label-content-color-down)));
494494
}
495-
495+
496496
> .spectrum-Menu-sectionHeading {
497497
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-section-header-color, var(--spectrum-menu-section-header-color)));
498498
}
@@ -504,7 +504,7 @@ governing permissions and limitations under the License.
504504
> .spectrum-Menu-itemValue {
505505
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-value-color-down, var(--spectrum-menu-item-value-color-down)));
506506
}
507-
507+
508508
> .spectrum-Menu-itemIcon:not(.spectrum-Menu-chevron, .spectrum-Menu-checkmark) {
509509
fill: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-icon-color-down, var(--spectrum-menu-item-label-icon-color-down)));
510510
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-item-label-icon-color-down, var(--spectrum-menu-item-label-icon-color-down)));
@@ -526,6 +526,17 @@ governing permissions and limitations under the License.
526526
align-self: start;
527527
}
528528

529+
.spectrum-Menu-item--collapsible .spectrum-Menu-itemIcon {
530+
grid-area: headingIconArea;
531+
}
532+
533+
.is-selectableMultiple .spectrum-Menu-item {
534+
align-items: start;
535+
}
536+
.is-selectableMultiple .spectrum-Menu-itemCheckbox {
537+
grid-area: iconArea;
538+
}
539+
529540
.spectrum-Menu-checkmark {
530541
grid-area: checkmarkArea;
531542
align-self: start;
@@ -537,8 +548,6 @@ governing permissions and limitations under the License.
537548

538549
.spectrum-Menu-itemLabel {
539550
grid-area: labelArea;
540-
display: flex;
541-
align-items: flex-start;
542551
font-size: var(--mod-menu-item-label-font-size, var(--spectrum-menu-item-label-font-size));
543552
color: var(--highcontrast-menu-item-color-default, var(--mod-menu-item-label-content-color-default, var(--spectrum-menu-item-label-content-color-default)));
544553
}
@@ -640,7 +649,7 @@ governing permissions and limitations under the License.
640649
margin-inline-start: var(--mod-menu-item-label-to-value-area-min-spacing, var(--spectrum-menu-item-label-to-value-area-min-spacing));
641650
}
642651

643-
.spectrum-Menu-itemLabel--wrapping {
652+
.spectrum-Menu-itemLabel--truncate {
644653
text-overflow: ellipsis;
645654
white-space: nowrap;
646655
overflow: hidden;
@@ -694,11 +703,11 @@ governing permissions and limitations under the License.
694703
}
695704

696705
[dir="rtl"] .spectrum-Menu-chevron {
697-
transform: rotate(-180deg);
706+
transform: rotate(-180deg);
698707
}
699708

700709
/*
701-
assume that if an item is collapsible, it will
710+
assume that if an item is collapsible, it will
702711
have a chevron and we need to adjust position of submenu items to account for that
703712
*/
704713
.spectrum-Menu-item--collapsible .spectrum-Menu {
@@ -745,22 +754,22 @@ governing permissions and limitations under the License.
745754
.spectrum-Menu-chevron {
746755
fill: var(--highcontrast-menu-item-color-focus, var(--mod-menu-drillin-icon-color-hover, var(--spectrum-menu-drillin-icon-color-hover)));
747756
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-drillin-icon-color-hover, var(--spectrum-menu-drillin-icon-color-hover)));
748-
}
757+
}
749758
}
750759

751760
&:focus,
752761
&.is-focused {
753762
.spectrum-Menu-chevron {
754763
fill: var(--highcontrast-menu-item-color-focus, var(--mod-menu-drillin-icon-color-focus, var(--spectrum-menu-drillin-icon-color-focus)));
755764
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-drillin-icon-color-focus, var(--spectrum-menu-drillin-icon-color-focus)));
756-
}
765+
}
757766
}
758767

759768
&:active {
760769
.spectrum-Menu-chevron {
761770
fill: var(--highcontrast-menu-item-color-focus, var(--mod-menu-drillin-icon-color-down, var(--spectrum-menu-drillin-icon-color-down)));
762771
color: var(--highcontrast-menu-item-color-focus, var(--mod-menu-drillin-icon-color-down, var(--spectrum-menu-drillin-icon-color-down)));
763-
}
772+
}
764773
}
765774
}
766775

@@ -773,11 +782,11 @@ governing permissions and limitations under the License.
773782
.spectrum-Menu-sectionHeading {
774783
color: var(--highcontrast-menu-item-color-disabled, var(--mod-menu-item-label-content-color-disabled, var(--spectrum-menu-item-label-content-color-disabled)));
775784
}
776-
785+
777786
.spectrum-Menu-itemDescription {
778787
color: var(--highcontrast-menu-item-color-disabled, var(--mod-menu-item-description-color-disabled, var(--spectrum-menu-item-description-color-disabled)));
779788
}
780-
789+
781790
.spectrum-Menu-itemIcon {
782791
fill: var(--highcontrast-menu-item-color-disabled, var(--mod-menu-item-label-icon-color-disabled, var(--spectrum-menu-item-label-icon-color-disabled)));
783792
color: var(--highcontrast-menu-item-color-disabled, var(--mod-menu-item-label-icon-color-disabled, var(--spectrum-menu-item-label-icon-color-disabled)));

0 commit comments

Comments
 (0)