Menu
Menu uses native navigation links and action buttons rather than emulating an application menu.
Design notes
Active appearance can be subtle or solid. ResponsiveMenu reuses the same content across inline, Popover and Drawer layouts and closes after selection by default.
MenuDisclosure and MenuPopover have separate props contracts. contentClassName belongs to the disclosure; triggerAppearance and onCloseAutoFocus belong to the popover. MenuItem closes on ordinary link activation even when app routing prevents default. MenuAction stays open when its click handler prevents default.
Playground
API
MenuDisclosure
An inline disclosure trigger and scrollable menu panel. Escape closes the panel and restores trigger focus; item selection closes it by default.
No custom imperative methods. Event callbacks are listed as properties.
MenuPopover
A popover menu with a built-in button trigger. Item selection closes it by default; onCloseAutoFocus can preserve navigation-driven focus.
No custom imperative methods. Event callbacks are listed as properties.
ResponsiveMenu
One menu subtree presented inline at ≥1024px, in a Popover at 640–1023px and in a left Drawer below 640px. Crossing layouts remounts the subtree and closes open surfaces.
No custom imperative methods. Event callbacks are listed as properties.
Menu
A native nav container providing size, orientation and active-style context to menu items. Native nav attributes and ref are forwarded.
No custom imperative methods. Event callbacks are listed as properties.
MenuGroup
A labelled group of menu items. Native div attributes and ref apply to the group wrapper.
No custom imperative methods. Event callbacks are listed as properties.
MenuItem
A native navigation link with active and disabled states. Disabled items lose href and keyboard tab access. Native anchor attributes are forwarded.
No custom imperative methods. Event callbacks are listed as properties.
MenuAction
A native button for menu actions. Prevent default in onClick to keep the enclosing menu open. Native button attributes are forwarded.
No custom imperative methods. Event callbacks are listed as properties.