Component
Dropdown Menu
Click-triggered menu (wraps Base UI Menu).
Basic
When to use
- A short, known list of actions tied to a single trigger - a user avatar's menu, a row's "more actions" button, a toolbar overflow.
When not to use
- Site navigation with hover-revealed content panels - use Navigation Menu instead.
- A right-click-triggered menu - use a visible Dropdown Menu trigger instead so the action also works on touch devices.
- A long, searchable action list - Command Menu's filtering is a better fit past a handful of items.
Keyboard
Mobile behavior
- Opens on tap identical to desktop click - no separate touch affordance needed.
- Items keep a minimum touch-friendly height so a dense menu doesn't produce mis-taps on small screens.
Accessibility notes
- Base UI applies role="menu"/"menuitem" with a roving tabindex, so only one item is a Tab stop at a time.
- DropdownMenu.Separator is exposed with role="separator" so it's skipped by item navigation but still structurally present for screen readers.
Common mistakes
- Putting a form control (checkbox, input) inside a plain DropdownMenu.Item instead of using the dedicated checkbox/radio item variants where available - plain items commit and close on selection.
- Triggering it from a non-button element without forwarding the render prop correctly, which drops keyboard support.
Related components
API reference
Also accepts everything from React.ComponentPropsWithoutRef<typeof import("@base-ui/react/menu").Menu.Root>.
DropdownMenu.Content props
align"start"
"center" | "start" | "end"How the menu lines up against the trigger along its cross axis. Default "start".
alignOffset0
numberShift in px along the cross axis, away from the `align` edge. Default 0.
sidebottom
"top" | "bottom" | "left" | "right" | "inline-start" | "inline-end"Which side of the trigger the menu opens on. Forwarded to Base UI's Positioner, which flips it when there is no room. Default "bottom".
sideOffset6
numberGap in px between the trigger and the menu. Default 6.
Also accepts everything from React.ComponentPropsWithoutRef<typeof import("@base-ui/react/menu").Menu.Popup>.
Coding agents read this reference, with its examples, from the version your project has installed, through the Fuji UI MCP server. Set up your agent
