Dropdown
Setup
<script lang="ts">
import { Button, Dropdown, DropdownDivider, DropdownHeader, DropdownFooter, DropdownUl, DropdownLi, uiHelpers } from "svelte-5-ui-lib";
import { ChevronDownOutline } from "flowbite-svelte-icons";
import { blur, fly, slide, scale } from "svelte/transition";
import { sineIn, linear } from "svelte/easing";
let transitionParams = {
y: 0,
duration: 200,
easing: sineIn
};
let dropdownA = uiHelpers();
let dropdownAStatus = $state(false);
let closeDropdownA = dropdownA.close;
$effect(() => {
dropdownAStatus = dropdownA.isOpen;
});
</script>
Interactive Dropdown Builder
<div class="flex items-start justify-center">
<Button onclick={dropdownA.toggle}>Dropdown
<ChevronDownOutline class="ms-2 h-5 w-5 text-white dark:text-white" />
</Button>
<div class="relative h-96">
<Dropdown dropdownStatus={dropdownAStatus} closeDropdown={closeDropdownA} class="absolute -left-[150px] top-[40px]">
<DropdownUl>
<DropdownLi href="/">Dashboard</DropdownLi>
<DropdownLi href="/components/dropdown">Dropdown</DropdownLi>
</DropdownUl>
</Dropdown>
</div>
</div>
Examples
<script lang="ts">
import { sineIn } from "svelte/easing";
import { Button, Dropdown, DropdownUl, DropdownLi, uiHelpers } from 'svelte-5-ui-lib';
import { ChevronDownOutline } from "flowbite-svelte-icons";
let dropdownB = uiHelpers();
let dropdownBStatus = $state(false);
let closeDropdownB = dropdownB.close;
$effect(() => {
dropdownBStatus = dropdownB.isOpen;
});
</script>
<div class="flex h-48 items-start justify-center">
<Button onclick={dropdownB.toggle}>
Dropdown
<ChevronDownOutline class="ms-2 h-5 w-5 text-white dark:text-white" />
</Button>
<div class="relative">
<Dropdown dropdownStatus={dropdownBStatus} closeDropdown={closeDropdownB} params={{ y: 0, duration: 200, easing: sineIn }} class="absolute -left-[150px] top-[40px]">
<DropdownUl>
<DropdownLi href="/">Dashboard</DropdownLi>
<DropdownLi href="/components/dropdown">Dropdown</DropdownLi>
<DropdownLi href="/components/footer">Footer</DropdownLi>
<DropdownLi href="/components/alert">Alert</DropdownLi>
</DropdownUl>
</Dropdown>
</div>
</div>