# Menu Dropdown action menu with declarative items and eyebrow-styled group headers. Use Menu to place secondary actions behind one compact trigger. Use header items to group related actions. Group headers use the shared eyebrow typography recipe. ## API The package declarations define these public members. | Member | Type | Kind | Required | Default | Description | | --- | --- | --- | --- | --- | --- | | `children` | `Snippet` | snippet | No | `undefined` | Custom panel content as an alternative to `items`. | | `items` | `MenuItem[]` | prop | No | `[]` | Declarative item list. Use this OR `children`. | | `onOpenChange` | `(open: boolean) => void` | callback | No | `undefined` | Fired whenever the panel opens or closes. | | `onSelect` | `(item: MenuAction) => void` | callback | No | `undefined` | Fired when any action row is chosen, after its own `onSelect`. | | `open` | `boolean` | binding | No | `false` | Two-way panel open state. | | `sameWidth` | `boolean` | prop | No | `false` | Match the panel width to the trigger width. | | `trigger` | `Snippet \| Snippet<[Record]> \| undefined` | snippet | No | `undefined` | Custom anchor snippet. Pair it with `triggerMode` to select the migration strategy. | | `triggerIcon` | `IconGlyph` | prop | No | `DotsThreeIcon` | Glyph for the built-in trigger button, used only when no `trigger` snippet is given. | | `triggerLabel` | `string` | prop | No | `undefined` | Accessible label for the built-in trigger button. | | `triggerMode` | `'delegated' \| 'legacy' \| never` | prop | No | `undefined` | Required with `trigger`. `delegated` passes props to the control; `legacy` preserves the deprecated wrapper. | ## Related - [CommandPalette](/docs/components/command-palette): Searchable command dialog with grouped results. - [Modal](/docs/components/modal): Dialog or confirmation modal selected with a required kind and delegated trigger. - [Sheet](/docs/components/sheet): Edge-anchored dialog panel with optional body padding.