Menu.Root
| Property | Type | Description |
|---|---|---|
open | boolean | (optional) Controlled open state. Use together with onOpenChange. |
arrowPosition | "left" "right" "center" "top" "bottom" | (optional) Position of the popover arrow relative to the popover. top and bottom positions are only applicable when placement is left or right, and vice versa. |
placement | "top" "right" "bottom" "left" | (optional) Preferred placement of the menu relative to the trigger. |
autoAlignMode | "initial" "scroll" "never" | (optional) Control when the menu automatically flips its placement to fit within the viewport. "initial": flip only on open. "scroll": also flip during scroll. "never": always use specified placement. |
skipPortal | boolean | (optional) Render inline instead of inside a portal. |
noAnimation | boolean | (optional) Disable the open/close animation. |
Menu.Button
| Property | Type | Description |
|---|---|---|
icon | IconIcon | (optional) Icon displayed on the trigger button. |
variant | "primary" "secondary" "tertiary" | (optional) Button variant. |
text | string | (optional) Visible text label for the trigger button. |
[Button props] | Various | (optional) All Button props are supported. |
Menu.List
| Property | Type | Description |
|---|---|---|
children | React.ReactNode | (required) Menu items. Use Menu.Action and Menu.Divider as direct children. |
maxVisibleListItems | number | (optional) Sets the maximum visible list items before the content scrolls. The component measures the rendered height of the first visible items. An explicit style.maxHeight overrides this. |
Menu.Action
| Property | Type | Description |
|---|---|---|
text | React.ReactNode | (optional) Action label text. |
icon | IconIcon | (optional) Icon displayed before the text. |
href | string | (optional) When provided, the action renders as a link. |
to | string | (optional) Use this property when using a router Link component as the element. The to value is passed to the router element for client-side navigation. |
element | React.Element | (optional) Define what HTML or React element should be used for the link (e.g. element={Link} for a router Link component). Defaults to a semantic a element. |
target | string | (optional) Link target attribute (e.g. _blank). |
rel | string | (optional) Link rel attribute (e.g. noopener noreferrer). |
disabled | boolean | (optional) Disables the action. Sets aria-disabled and prevents click/keyboard activation. |
children | React.ReactNode | (optional) Custom content rendered inside the action item. |
Menu.Accordion
| Property | Type | Description |
|---|---|---|
text | React.ReactNode | (optional) Accordion trigger label text. |
icon | IconIcon | (optional) Icon displayed before the text. |
disabled | boolean | (optional) Disables the accordion trigger. Sets aria-disabled and prevents toggling. |
children | React.ReactNode | (required) Menu items rendered inside the accordion when open. Use Menu.Action and Menu.Divider as children. |
Menu.Header
| Property | Type | Description |
|---|---|---|
text | React.ReactNode | (optional) Header text displayed in the menu. |
children | React.ReactNode | (optional) Alternative to text. Content rendered inside the header. |
Menu.Divider
No properties.