Skip to content

Commit 3a89acd

Browse files
committed
fix(menu): allow text wrapping in menu items
Allows for the text inside menu items to wrap, instead of having it be truncated. The text was being truncated as a limitation on `mat-select` and `mat-autocomplete`, however we don't have the same limitation on `mat-menu`.
1 parent c2fc3f4 commit 3a89acd

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

src/demo-app/menu/menu-demo.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ export class MenuDemo {
1919
selected = '';
2020
items = [
2121
{text: 'Refresh'},
22-
{text: 'Settings'},
22+
{text: 'Settings with a longer name so we can test text wrapping'},
2323
{text: 'Help', disabled: true},
2424
{text: 'Sign Out'}
2525
];
2626

2727
iconItems = [
28-
{text: 'Redial', icon: 'dialpad'},
28+
{text: 'Redial with a longer name so we can test text wrapping', icon: 'dialpad'},
2929
{text: 'Check voicemail', icon: 'voicemail', disabled: true},
3030
{text: 'Disable alerts', icon: 'notifications_off'}
3131
];

src/lib/core/option/option.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
display: flex;
1212
flex-direction: row;
1313
max-width: 100%;
14-
box-sizing: border-box;
1514
align-items: center;
1615
-webkit-tap-highlight-color: transparent;
1716

src/lib/core/style/_menu-common.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ $mat-menu-icon-margin: 16px !default;
3131
line-height: $mat-menu-item-height;
3232
height: $mat-menu-item-height;
3333
padding: 0 $mat-menu-side-padding;
34+
box-sizing: border-box;
3435

3536
text-align: left;
3637
text-decoration: none; // necessary to reset anchor tags

src/lib/menu/menu.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
@import '../../cdk/a11y/a11y';
66

77
$mat-menu-vertical-padding: 8px !default;
8+
$mat-menu-item-vertical-padding: 8px !default;
89
$mat-menu-border-radius: 2px !default;
910
$mat-menu-submenu-indicator-size: 10px !default;
1011

@@ -30,6 +31,17 @@ $mat-menu-submenu-indicator-size: 10px !default;
3031
@include mat-menu-item-base();
3132
position: relative;
3233

34+
// TODO(crisbeto): most of these can be moved into the `mat-menu-item-base`
35+
// once we start allowing text wrapping in mat-select and mat-autocomplete.
36+
display: flex;
37+
align-items: center;
38+
white-space: normal;
39+
line-height: normal;
40+
height: auto;
41+
min-height: $mat-menu-item-height;
42+
padding-top: $mat-menu-item-vertical-padding;
43+
padding-bottom: $mat-menu-item-vertical-padding;
44+
3345
@include cdk-high-contrast {
3446
&.cdk-program-focused,
3547
&.cdk-keyboard-focused,

0 commit comments

Comments
 (0)