Dropdown Menu
Displays a menu of actions or functions triggered by a button.
Loading preview…
1<script lang="ts">
2 import Button from '../button/button.svelte';
3 import * as DropdownMenu from './index.js';
4</script>
5
6<DropdownMenu.Root>
7 <DropdownMenu.Trigger>
8 {#snippet child({ props })}
9 <Button {...props} variant="outline">Open</Button>
10 {/snippet}
11 </DropdownMenu.Trigger>
12 <DropdownMenu.Content class="w-56">
13 <DropdownMenu.Label>My Account</DropdownMenu.Label>
14 <DropdownMenu.Separator />
15 <DropdownMenu.Group>
16 <DropdownMenu.Item>
17 Profile
18 <DropdownMenu.Shortcut>⇧⌘P</DropdownMenu.Shortcut>
19 </DropdownMenu.Item>
20 <DropdownMenu.Item>
21 Billing
22 <DropdownMenu.Shortcut>⌘B</DropdownMenu.Shortcut>
23 </DropdownMenu.Item>
24 <DropdownMenu.Item>
25 Settings
26 <DropdownMenu.Shortcut>⌘S</DropdownMenu.Shortcut>
27 </DropdownMenu.Item>
28 </DropdownMenu.Group>
29 <DropdownMenu.Separator />
30 <DropdownMenu.Item>Log out</DropdownMenu.Item>
31 </DropdownMenu.Content>
32</DropdownMenu.Root>
33Installation
1. Install dependencies
2. Copy these files into your project
- ~/components/dropdown-menu/index.ts
- ~/components/dropdown-menu/dropdown-menu.svelte
- ~/components/dropdown-menu/dropdown-menu-trigger.svelte
- ~/components/dropdown-menu/dropdown-menu-portal.svelte
- ~/components/dropdown-menu/dropdown-menu-content.svelte
- ~/components/dropdown-menu/dropdown-menu-item.svelte
- ~/components/dropdown-menu/dropdown-menu-checkbox-item.svelte
- ~/components/dropdown-menu/dropdown-menu-checkbox-group.svelte
- ~/components/dropdown-menu/dropdown-menu-radio-group.svelte
- ~/components/dropdown-menu/dropdown-menu-radio-item.svelte
- ~/components/dropdown-menu/dropdown-menu-label.svelte
- ~/components/dropdown-menu/dropdown-menu-separator.svelte
- ~/components/dropdown-menu/dropdown-menu-shortcut.svelte
- ~/components/dropdown-menu/dropdown-menu-group.svelte
- ~/components/dropdown-menu/dropdown-menu-group-heading.svelte
- ~/components/dropdown-menu/dropdown-menu-sub.svelte
- ~/components/dropdown-menu/dropdown-menu-sub-trigger.svelte
- ~/components/dropdown-menu/dropdown-menu-sub-content.svelte
Usage
Use dropdown menu for actions triggered by a button. Compose with item, checkbox item, radio groups, and nested submenus.
1<script lang="ts">
2 import * as DropdownMenu from '~/components/dropdown-menu';
3 import { Button } from '~/components/button';
4</script>
5
6<DropdownMenu.Root>
7 <DropdownMenu.Trigger>
8 {#snippet child({ props })}
9 <Button {...props} variant="outline">Open</Button>
10 {/snippet}
11 </DropdownMenu.Trigger>
12 <DropdownMenu.Content class="w-56">
13 <DropdownMenu.Label>My Account</DropdownMenu.Label>
14 <DropdownMenu.Separator />
15 <DropdownMenu.Group>
16 <DropdownMenu.Item>
17 Profile
18 <DropdownMenu.Shortcut>⇧⌘P</DropdownMenu.Shortcut>
19 </DropdownMenu.Item>
20 <DropdownMenu.Item>
21 Billing
22 <DropdownMenu.Shortcut>⌘B</DropdownMenu.Shortcut>
23 </DropdownMenu.Item>
24 </DropdownMenu.Group>
25 <DropdownMenu.Separator />
26 <DropdownMenu.Item>Log out</DropdownMenu.Item>
27 </DropdownMenu.Content>
28</DropdownMenu.Root>