Component

Dropdown

A compact menu for quick options.

Installation

Get the component

npx lomer-ui get dropdown
Source code

Usage

Preview

Svelte Code

1
<script lang="ts">
2
  import Button from '$lib/components/base/button.svelte';
3
  import Dropdown from '$lib/components/base/dropdown.svelte';
4
  import DropdownItem from '$lib/components/base/dropdown-item.svelte';
5

6
  let open = $state(false);
7
</script>
8

9
<Button onclick={() => (open = true)}>Dropdown</Button>
10
<Dropdown bind:open>
11
  <DropdownItem>Dropdown Item 1</DropdownItem>
12
  <DropdownItem>Dropdown Item 2</DropdownItem>
13
  <DropdownItem>Dropdown Item 3</DropdownItem>
14
  <DropdownItem variant="destructive">Destructive</DropdownItem>
15
  <DropdownItem loading>Requesting...</DropdownItem>
16
  <DropdownItem disabled>Disabled</DropdownItem>
17
</Dropdown>
18

Placement

Preview

Svelte Code

1
<script lang="ts">
2
  import Button from '$lib/components/base/button.svelte';
3
  import Dropdown from '$lib/components/base/dropdown.svelte';
4

5
  let openLeft = $state(false);
6
  let openCenter = $state(false);
7
  let openRight = $state(false);
8
</script>
9

10
<!-- Left -->
11
<Button onclick={() => (openLeft = true)}>Left</Button>
12
<Dropdown placement="left" bind:open={openLeft}>
13
  <div class="h-56 w-36">Content</div>
14
</Dropdown>
15

16
<!-- Center -->
17
<Button onclick={() => (openCenter = true)}>Center</Button>
18
<Dropdown placement="center" bind:open={openCenter}>
19
  <div class="h-56 w-36">Content</div>
20
</Dropdown>
21

22
<!-- Right -->
23
<Button onclick={() => (openRight = true)}>Right</Button>
24
<Dropdown placement="right" bind:open={openRight}>
25
  <div class="h-56 w-36">Content</div>
26
</Dropdown>
27

Switch

Get the component

npx lomer-ui get dropdown-switch
Source code

Preview

Svelte Code

1
<script lang="ts">
2
  import Button from '$lib/components/base/button.svelte';
3
  import Dropdown from '$lib/components/base/dropdown.svelte';
4
  import DropdownSwitch from '$lib/components/base/dropdown-switch.svelte';
5
  import DropdownItem from '$lib/components/base/dropdown-item.svelte';
6
  import { toggleMode } from 'mode-watcher';
7

8
  let open = $state(false);
9
</script>
10

11
<Button onclick={() => (open = true)}>Dropdown</Button>
12
<Dropdown bind:open>
13
  <DropdownItem>Settings</DropdownItem>
14
  <DropdownSwitch label="Dark Mode" onchange={toggleMode} />
15
  <DropdownSwitch label="Loading" loading />
16
  <DropdownSwitch label="Loading checked" loading checked />
17
  <DropdownSwitch label="Disabled" disabled />
18
  <DropdownSwitch label="Disabled checked" disabled checked />
19
</Dropdown>
20