Accordion
Expandable section UI using native <details> for accessibility and progressive enhancement.
Last updated: July 1, 2025
The Accordion and AccordionItem components provide a clean, accessible way to show and hide content within collapsible sections—ideal for FAQs, settings, or documentation toggles.
Component Breakdown
<Accordion />
This is a simple wrapper used to group multiple accordion items together. It applies optional spacing or layout styles via className.
Props
| Prop | Type | Description |
|---|---|---|
className | string | Optional utility classes to style the container |
<Accordion className="space-y-2">
<!-- AccordionItem components go here -->
</Accordion>
<AccordionItem />
Each AccordionItem uses a native <details> and <summary> tag for built-in accessibility and keyboard navigation.
Props
| Prop | Type | Description |
|---|---|---|
id | string | Unique ID for the element |
title | string | Visible clickable heading |
Features:
- Animated Chevron rotation on open/close
- Custom styling support via Tailwind
- Uses
slotto render any rich content inside
<AccordionItem id="example" title="What is this?">
This is the content shown when the accordion is expanded.
</AccordionItem>
Usage Example
Here’s how you might use them together in a real FAQ page or settings panel:
<Accordion className="space-y-2">
<AccordionItem id="docs-purpose" title="What is this documentation for?">
This documentation helps users understand how to use the platform’s features and components.
</AccordionItem>
<AccordionItem id="customization" title="Can I customize the components?">
Yes, you can override styles using Tailwind utilities or extend them in your own wrapper components.
</AccordionItem>
<AccordionItem id="feedback" title="How do I provide feedback?">
Each page has a feedback button at the bottom. We review all suggestions and prioritize fixes based on user needs.
</AccordionItem>
</Accordion>
Example
What is this documentation for?
This documentation helps users understand how to use the platform’s features and components.
Can I customize the components?
Yes, you can override styles using Tailwind utilities or extend them in your own wrapper components.
How do I provide feedback?
Each page has a feedback button at the bottom. We review all suggestions and prioritize fixes based on user needs.
Accessibility Notes
- The
details/summaryelements are natively keyboard accessible. - The rotating chevron icon visually indicates the open/closed state.
- Works without JavaScript, making it ideal for content-focused sites.
Styling Tips
You can override spacing, borders, or typography using Tailwind via the className prop on <Accordion />.
For example:
<Accordion className="divide-y divide-base-300 dark:divide-base-700">
...
</Accordion>
Or customize padding and colors inside the slot content by styling inner elements directly.