1. framework components
  2. accordion

Accordion

Divide content into collapsible sections.



Controlled

Use the open and onOpenChange props to control the state.

Content for item 1

Multiple

Allow multiple accordion items to stay open at once using the multiple prop.

Collapsible

Allow closing all items when one is open using the collapsible prop.

Indicator

Add a custom indicator to accordion triggers.

Orientation

Render the accordion vertically or horizontally using the orientation prop.

Dir

Set the text direction ( ltr or rtl ) using the dir prop.

Anatomy

Here’s an overview of how the Accordion component is structured in code:

svelte
<script lang="ts">
	import { Accordion } from '@skeletonlabs/skeleton-svelte';
</script>

<Accordion>
	<Accordion.Item>
		<Accordion.ItemTrigger />
		<Accordion.ItemIndicator />
		<Accordion.ItemContent />
	</Accordion.Item>
</Accordion>

API Reference

Root

Prop Default Type
ids Partial<{ root: string; item: (value: string) => string; itemContent: (value: string) => string; itemTrigger: (value: string) => string; }> | undefined

The ids of the elements in the accordion. Useful for composition.

multiple false boolean | undefined

Whether multiple accordion items can be expanded at the same time.

collapsible false boolean | undefined

Whether an accordion item can be closed after it has been expanded.

value string[] | undefined

The controlled value of the expanded accordion items.

defaultValue string[] | undefined

The initial value of the expanded accordion items. Use when you don't need to control the value of the accordion.

disabled boolean | undefined

Whether the accordion items are disabled

onValueChange ((details: ValueChangeDetails) => void) | undefined

The callback fired when the state of expanded/collapsed accordion items changes.

onFocusChange ((details: FocusChangeDetails) => void) | undefined

The callback fired when the focused accordion item changes.

orientation "vertical" "horizontal" | "vertical" | undefined

The orientation of the accordion items.

dir "ltr" "ltr" | "rtl" | undefined

The document's text/writing direction.

getRootNode (() => ShadowRoot | Node | Document) | undefined

A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

element Snippet<[HTMLAttributes<"div">]> | undefined

Render the element yourself

Provider

Prop Default Type
value () => AccordionApi<PropTypes>

element Snippet<[HTMLAttributes<"div">]> | undefined

Render the element yourself

Context

Prop Default Type
children Snippet<[() => AccordionApi<PropTypes>]>

Item

Prop Default Type
value string

The value of the accordion item.

disabled boolean | undefined

Whether the accordion item is disabled.

element Snippet<[HTMLAttributes<"div">]> | undefined

Render the element yourself

ItemTrigger

Prop Default Type
element Snippet<[HTMLAttributes<"button">]> | undefined

Render the element yourself

ItemIndicator

Prop Default Type
element Snippet<[HTMLAttributes<"div">]> | undefined

Render the element yourself

ItemContent

Prop Default Type
element Snippet<[HTMLAttributes<"div">]> | undefined

Render the element yourself

View page on GitHub