1. components
  2. accordion
  3. svelte

Accordion

Divide content into collapsible sections.




Open State

Each Item id added to the Accordion value array will be open by default.

State Rune

const value = $state(['club']);
<Accordion value={value}>...</Accordion>

Harcoded

<Accordion value={['club']}>...</Accordion>

Multiple Items

Use multiple to enable multiple items to be opened at once.

<Accordion multiple>...</Accordion>

Custom Icons

<script lang="ts">
import Plus from 'lucide-svelte/icons/plus';
import Minus from 'lucide-svelte/icons/minus';
import Club from 'lucide-svelte/icons/club';
</script>
<Accordion>
{#snippet iconOpen()}<Plus size={16} />{/snippet}
{#snippet iconClosed()}<Minus size={16} />{/snippet}
<!-- ... -->
<AccordionItem id="club">
{#snippet controlLead()}<Club size={24} />{/snippet}
<!-- ... -->
<AccordionItem>
</Accordion>