An animated FAQ accordion with expandable panels.
Made by AxylInstallation
Usage
For custom content per item, pass a React node as content or compose with the compound API:
Props
Accordion
| Prop | Type | Default |
|---|---|---|
allowMultiple? | boolean | false |
duration? | number | 0.8 |
iconMode? | "rotate" | "fade" | "both" | "both" |
iconRotation? | number | -180 |
ease? | [number, number, number, number] | expo.inOut |
disabledOn? | ("mobile" | "tablet" | "desktop")[] | - |
items? | { id?: string; title: string; content: React.ReactNode; defaultOpen?: boolean }[] | - |
className? | string | - |
AccordionItem
| Prop | Type | Default |
|---|---|---|
defaultOpen? | boolean | false |
delay? | number | 0 |
duration? | number | - |
ease? | [number, number, number, number] | - |
iconRotation? | number | - |
disabledOn? | ("mobile" | "tablet" | "desktop")[] | - |
onOpen? | () => void | - |
onClose? | () => void | - |
Credits
Inspired by Annnimate. Reimplemented for Motion and React.
Built by Axyl. The source code will be available on GitHub soon.
Last updated: 6/9/2026