--- ## Menu Action menu triggered by a button with nested items, icons, separators, and keyboard navigation. **Import:** `import { Menu } from '@urbicon-ui/blocks';` ### Examples ```svelte edit() }, { label: 'Duplicate', onSelect: () => duplicate() }, { type: 'section', label: 'Danger' }, { label: 'Delete', onSelect: () => confirmDelete() } ]} /> ``` ```svelte rename()}>Rename duplicate()}>Duplicate confirmDelete()}>Delete ``` ```svelte {#snippet customTrigger(toggle, open)} {/snippet} ``` ### Variants - chevronAnimation: fade, none, rotate, translate (default: rotate) - disabled: true - itemSize: lg, md, sm (default: md) - open: true (default: false) - placement: bottom, bottom-end, bottom-start, top, top-end, top-start (default: bottom-start) - syncWidth: false, true (default: true) - tier: commit, modify (default: commit) - usePortal: false, true (default: true) ### Api | Prop | Type | Required | Default | Description | | --- | --- | :---: | --- | --- | | ...AnimationProps | `inherited` | no | | Properties inherited from AnimationProps | | ...HTMLAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'children' | 'class' | 'placeholder') | | ...MenuVariants | `VariantProps` | no | | Styling variants from MenuVariants | | class | `string` | no | | Additional CSS classes to apply to the Menu component | | customFooter | `Snippet` | no | | Optional custom footer rendered below the items list. | | customHeader | `Snippet` | no | | Optional custom header rendered above the items list. | | customItem | `Snippet<[TItem]>` | no | | Custom per-item content. **Render visible content only** — the outer `role="menuitem"` button is provided by Menu and handles the click / keyboard activation. Putting an interactive element (`