Accordion
Organizes content into collapsible sections, allowing users to focus on one section at a time.
Structure
API Reference
The root accordion component used to set and manage the state of the accordion.
Property | Type | Description |
---|---|---|
multiple | boolean | Whether or not multiple accordion items can be active at the same time. Default: false |
disabled | boolean | Whether or not the accordion is disabled. Default: false |
value | union string | undefined | The active accordion item value. Default: —— undefined |
onValueChange | function (value: string | undefined) => void | A callback function called when the active accordion item value changes. Default: —— undefined |
asChild | boolean | Whether to use render delegation with this component or not. Default: false |
el | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default: —— undefined |
Slot Property | Type | Description |
---|---|---|
builder | object { [k: string]: any; action: Action | The builder attributes and actions to apply to the element if using the |
Data Attribute | Value | Description |
---|---|---|
data-orientation | enum 'horizontal' | 'vertical' | The orientation of the accordion. |
data-accordion-root |
| Present on the root element. |
An accordion item.
Property | Type | Description |
---|---|---|
value * Required | string | The value of the accordion item. Default: —— undefined |
disabled | boolean | Whether or not the accordion item is disabled. Default: false |
asChild | boolean | Whether to use render delegation with this component or not. Default: false |
el | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default: —— undefined |
Slot Property | Type | Description |
---|---|---|
builder | object { [k: string]: any; action: Action | The builder attributes and actions to apply to the element if using the |
Data Attribute | Value | Description |
---|---|---|
data-state | enum 'open' | 'closed' | The state of the accordion item. |
data-disabled |
| Present when the accordion item is disabled. |
data-accordion-item | —— | Present on the item element. |
The accordion item header, which wraps the trigger and makes it more accessible.
Property | Type | Description |
---|---|---|
level | enum 1 | 2 | 3 | 4 | 5 | 6 | The heading level to use for the header. This will be set as the Default: —— undefined |
asChild | boolean | Whether to use render delegation with this component or not. Default: false |
el | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default: —— undefined |
Slot Property | Type | Description |
---|---|---|
builder | object { [k: string]: any; action: Action | The builder attributes and actions to apply to the element if using the |
Data Attribute | Value | Description |
---|---|---|
data-heading-level | enum '1' | '2' | '3' | '4' | '5' | '6' | The heading level of the header. |
data-accordion-header | —— | Present on the header element. |
The accordion item trigger, which opens and closes the accordion item.
Property | Type | Description |
---|---|---|
asChild | boolean | Whether to use render delegation with this component or not. Default: false |
el | HTMLButtonElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default: —— undefined |
Slot Property | Type | Description |
---|---|---|
builder | object { [k: string]: any; action: Action | The builder attributes and actions to apply to the element if using the |
Data Attribute | Value | Description |
---|---|---|
data-state | enum 'open' | 'closed' | The state of the accordion item. |
data-disabled | —— | Present when the accordion item is disabled. |
data-value | —— | The value of the accordion item. |
data-accordion-trigger | —— | Present on the trigger element. |
The accordion item content, which is displayed when the item is open.
Property | Type | Description |
---|---|---|
transition | function (node: Element, params?: any) => TransitionConfig | A Svelte transition function to use when transitioning the content in and out. Default: —— undefined |
transitionConfig | TransitionConfig | The configuration to apply to the transition. Default: —— undefined |
inTransition | function (node: Element, params?: any) => TransitionConfig | A Svelte transition function to use when transitioning the content in and out. Default: —— undefined |
inTransitionConfig | TransitionConfig | The configuration to apply to the transition. Default: —— undefined |
outTransition | function (node: Element, params?: any) => TransitionConfig | A Svelte transition function to use when transitioning the content in and out. Default: —— undefined |
outTransitionConfig | TransitionConfig | The configuration to apply to the transition. Default: —— undefined |
asChild | boolean | Whether to use render delegation with this component or not. Default: false |
el | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to programatically interact with the element. Default: —— undefined |
Slot Property | Type | Description |
---|---|---|
builder | object { [k: string]: any; action: Action | The builder attributes and actions to apply to the element if using the |
Data Attribute | Value | Description |
---|---|---|
data-state | enum 'open' | 'closed' | The state of the accordion item. |
data-disabled | —— | Present when the accordion item is disabled. |
data-value | —— | The value of the accordion item. |
data-accordion-content | —— | Present on the content element. |
Examples
Multiple
Multiple accordion items open at the same time using the multiple
prop.
Controlled
You can programmatically control the active of the accordion item(s) using the value
prop.