Brand Design System

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.

PropertyTypeMaterial DefaultHoB ValueTAE Value
Container ColorColor#F3EDF7#FFFFFF#FFFFFF
Text ColorColor#1D192B#1F2937#1F2937
Selected State ColorColor#E8DEF8primary/10%primary/10%
Hover State ColorColoronSurface/8%#F3F4F6#F3F4F6
Danger Text ColorColor#B3261E#DC2626#DC2626
Min WidthNumber112dp112px112px
Max WidthNumber280dp280px280px
Item HeightNumber48dp40px40px
Text FontFont FamilyRobotoOpen SansOpen Sans
Text SizeNumber14sp14px14px
Icon SizeNumber24dp20px20px
Horizontal PaddingNumber12dp16px16px
Border RadiusNumber4dp8px8px
ElevationNumber2dp8px8px

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-expanded to indicate open state
  • Focus should return to trigger on close

Related Components