Default
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit esse nisi eligendi fuga! Quas nisi repellat adipisci animi repellendus incidunt laborum sunt qui nesciunt, ducimus saepe sapiente sed ut labore. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit esse nisi eligendi fuga! Quas nisi repellat adipisci animi repellendus incidunt laborum sunt qui nesciunt, ducimus saepe sapiente sed ut labore.
Collapsible
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit esse nisi eligendi fuga! Quas nisi repellat adipisci animi repellendus incidunt laborum sunt qui nesciunt, ducimus saepe sapiente sed ut labore. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit esse nisi eligendi fuga! Quas nisi repellat adipisci animi repellendus incidunt laborum sunt qui nesciunt, ducimus saepe sapiente sed ut labore.
Multiple
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit esse nisi eligendi fuga! Quas nisi repellat adipisci animi repellendus incidunt laborum sunt qui nesciunt, ducimus saepe sapiente sed ut labore. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Sit esse nisi eligendi fuga! Quas nisi repellat adipisci animi repellendus incidunt laborum sunt qui nesciunt, ducimus saepe sapiente sed ut labore.
Open State
Each Item id
added to the Accordion value
array will be open by default.
useState Hook
const [value, setValue] = useState(['club']);
<Accordion value={value} onValueChange={setValue}> ...</Accordion>
Hardcoded
<Accordion value={['club']}>...</Accordion>
Multiple Items
Use multiple
to enable multiple items to be opened at once.
<Accordion multiple>...</Accordion>
Custom Icons
import { Plus, Minus, Heart } from 'lucide-react';
<Accordion iconOpen={<Plus size={24} />} iconClosed={<Minus size={24} />}> ...</Accordion>
<Accordion.Control lead={<Heart size={24} />}>Heart</Accordion.Control>
API Reference
Accordion
Property | Type | Description |
---|---|---|
animDuration | number | |
iconOpen | ReactNode | |
iconClosed | ReactNode | |
onValueChange | (value: string[]) => void | |
base | string | |
padding | string | |
spaceY | string | |
rounded | string | |
width | string | |
classes | string | |
ids | Partial<{ root: string; item(value: string): string; itemContent(value: string): string; itemTrigger(value: string): string; }> | |
multiple | boolean | |
collapsible | boolean | |
value | string[] | |
disabled | boolean | |
onFocusChange | (details: FocusChangeDetails) => void | |
dir | "ltr" | "rtl" | |
getRootNode | () => ShadowRoot | Node | Document | |
AccordionItem
Property | Type | Description |
---|---|---|
base | string | |
spaceY | string | |
classes | string | |
value * | string | |
disabled | boolean | |
AccordionControl
Property | Type | Description |
---|---|---|
headingElement | string | number | symbol | |
disabled | boolean | |
base | string | |
hover | string | |
padding | string | |
rounded | string | |
classes | string | |
leadBase | string | |
leadClasses | string | |
contentBase | string | |
contentClasses | string | |
indicatorBase | string | |
indicatorClasses | string | |
lead | ReactNode | |
AccordionPanel
Property | Type | Description |
---|---|---|
base | string | |
padding | string | |
rounded | string | |
classes | string | |