Menus
Menus display a list of choices on a temporary surface. They appear when users interact with a button, action, or other control.
Overview
Menus are a Material Design component that provides contextual actions or navigation options. They can be triggered by buttons, icons, or right-click (context menu). Menus should contain at least two items and remain simple and scannable.
Live Preview
Dropdown Menu
Icon Menu
Menu with Selection
Submenu / Cascading
Brand Properties
The following table shows Menu properties with Material Design 3 defaults and brand-specific values.
| Property | Type | Material Default | HoB Value | TAE Value |
|---|---|---|---|---|
| Container Color | Color | #F3EDF7 | #FFFFFF | #FFFFFF |
| Text Color | Color | #1D192B | #1F2937 | #1F2937 |
| Selected State Color | Color | #E8DEF8 | primary/10% | primary/10% |
| Hover State Color | Color | onSurface/8% | #F3F4F6 | #F3F4F6 |
| Danger Text Color | Color | #B3261E | #DC2626 | #DC2626 |
| Min Width | Number | 112dp | 112px | 112px |
| Max Width | Number | 280dp | 280px | 280px |
| Item Height | Number | 48dp | 40px | 40px |
| Text Font | Font Family | Roboto | Open Sans | Open Sans |
| Text Size | Number | 14sp | 14px | 14px |
| Icon Size | Number | 24dp | 20px | 20px |
| Horizontal Padding | Number | 12dp | 16px | 16px |
| Border Radius | Number | 4dp | 8px | 8px |
| Elevation | Number | 2dp | 8px | 8px |
Variants
- Dropdown Menu - Opens below trigger button
- Context Menu - Opens on right-click
- Overflow Menu - Three-dot icon trigger
- Cascading Menu - Submenus that expand horizontally
- Selection Menu - Shows checkmark on selected item
Menu Items
- Text only - Simple text label
- Icon + Text - Leading icon with label
- With Shortcut - Trailing keyboard shortcut hint
- With Submenu - Trailing chevron for nested menu
- Divider - Horizontal line to group items
- Disabled - Grayed out, non-interactive item
Behavior
- Opens near the trigger element
- Closes on item selection or outside click
- Escape key closes the menu
- Arrow keys navigate between items
- Enter key selects focused item
Accessibility
- Use
role="menu"on the container - Use
role="menuitem"on each item - Support arrow key navigation
- Use
aria-haspopup="menu"on trigger - Use
aria-expandedto indicate open state - Focus should return to trigger on close
