Menu

A menu displays a list of actions or options that a user can choose.

Example
Menu.tsx
Menu.css
theme.css
import {MenuTrigger, Menu, Popover, SubmenuTrigger, MenuSection, Separator} from 'react-aria-components';
import {Button} from './Button';
import {MenuItem} from './Menu';

<MenuTrigger>
  <Button aria-label="Actions">☰</Button>
  <Popover>
    <Menu>
      <MenuItem onAction={() => alert('open')}>Open</MenuItem>
      <MenuItem onAction={() => alert('rename')}>Rename…</MenuItem>
      <MenuItem onAction={() => alert('duplicate')}>Duplicate</MenuItem>
      <MenuItem onAction={() => alert('share')}>Share…</MenuItem>
      <SubmenuTrigger>
        <MenuItem>Share</MenuItem>
        <Popover>
          <Menu>
            <MenuItem>Email</MenuItem>
            <MenuItem>SMS</MenuItem>
            <MenuItem>Instagram</MenuItem>
          </Menu>
        </Popover>
      </SubmenuTrigger>
      <MenuItem onAction={() => alert('delete')}>Delete…</MenuItem>
      <Separator />
      <MenuSection selectionMode="multiple" defaultSelectedKeys={['files']}>
        <MenuItem id="files">Show files</MenuItem>
        <MenuItem id="folders">Show folders</MenuItem>
      </MenuSection>
    </Menu>
  </Popover>
</MenuTrigger>

Anatomy

Shows a menu component with labels pointing to its parts, including the trigger, menu, group, section heading, menu item, menu item label, menu item description, and menu item keyboard shortcut elements.Option 1Option 2Menu itemMenu item keyboard shortcutMenu item labelDescriptionDescriptionOption 3DescriptionMenu item descriptionMenuSECTION TITLESection headerSectionKMenu item descriptionPopoverMore ActionsMenu Trigger