Menu
Structured actions in a dropdown list
import { Menu } from "@plexui/ui/components/Menu";Examples
Overview
Natural sizing
Submenus
Checkbox items
Radio items
Item actions
Reference
Note: Menu prevents Tab from advancing focus. For generic popover content use Popover instead.
Menu (root)
| Prop | Type | Default | Description |
|---|---|---|---|
forceOpen | boolean | — | Keep menu open (controlled) |
onOpen | () => void | — | Called when menu opens |
onClose | () => void | — | Called when menu closes |
modal | boolean | — | Whether menu is modal (focus trap) |
Menu.Trigger — The element that toggles the menu (e.g. a Button). No specific props.
Menu.Content
| Prop | Type | Default | Description |
|---|---|---|---|
width | number | string | — | Panel width (px or CSS value) |
minWidth | number | string | auto | Minimum panel width |
side | "top" | "right" | "bottom" | "left" | — | Preferred placement |
align | "start" | "center" | "end" | — | Alignment relative to trigger |
Menu.Item — List item. Use onSelect for actions; omit for non-interactive content.
| Prop | Type | Default | Description |
|---|---|---|---|
onSelect | (event: Event) => void | — | Called when item is selected |
disabled | boolean | — | Disable the item |
Menu.Link — Item that navigates (uses your app link component). Pass href and link props.
Menu.Separator — Divider between items. No props.
Menu.Sub / Menu.SubTrigger / Menu.SubContent — Submenu wrapper, trigger, and content panel.
Menu.CheckboxItem
| Prop | Type | Default | Description |
|---|---|---|---|
checked | boolean | — | Checked state |
onCheckedChange | (checked: boolean) => void | — | When checkbox toggles |
onSelect | (event: Event) => void | — | Use with preventDefault() to keep menu open |
indicatorPosition | "start" | "end" | — | Checkbox position |
indicatorVariant | string | — | Badge/indicator style (e.g. solid) |
Menu.RadioGroup / Menu.RadioItem — Radio group: value, onChange; RadioItem: value, disabled.
Menu.ItemActions / Menu.ItemAction — ItemActions wraps hover actions; ItemAction accepts onClick.