- Dependencies:
- ∟Direct: 1
- ∟Peer: 6
- Source code ↗
- Check on NPM ↗
Overview
Section titled “Overview”A series of interactive titles stacked on top of each other, each one revealing a section of content.
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from '@inpulse-ui/accordion';
export function Demo() { return ( <Accordion> <AccordionItem value="item-1"> <AccordionTrigger>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Is it unstyled?</AccordionTrigger> <AccordionContent> Yes. It's unstyled by default, giving you freedom over the look and feel. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Can it be animated?</AccordionTrigger> <AccordionContent> Yes! You can use the transition prop to configure the animation. </AccordionContent> </AccordionItem> </Accordion> );}This component is a slight expansion of the Accordion developed and maintained by Radix UI.
Installation
Section titled “Installation”pnpm add @inpulse-ui/accordionbun add @inpulse-ui/accordionyarn add @inpulse-ui/accordionnpm install @inpulse-ui/accordionAPI Reference
Section titled “API Reference”Contains all the parts of an accordion.
| Prop | Type | Default Value | Required |
type | enum | No | |
value | string | - | No |
defaultValue | string | - | No |
onValueChange | function | - | No |
collapsible | boolean | false | No |
disabled | boolean | false | No |
dir | enum | No | |
orientation | enum | No |
Contains all the parts of a collapsible section.
| Prop | Type | Default Value | Required |
disabled | boolean | false | No |
value | string | - | Yes |
Trigger
Section titled “Trigger”Toggles the collapsed state of its associated item.
| Prop | Type | Default Value | Required |
asChild | boolean | false | No |
useUnderline | boolean | true | No |
Content
Section titled “Content”Contains the collapsible content for an item.
| Prop | Type | Default Value | Required |
asChild | boolean | false | No |
forceMount | boolean | - | No |
Wrap all accordion items with the Accordion component. Each item should be wrapped in an AccordionItem, which contains a AccordionTrigger and a AccordionContent.
<Accordion> <AccordionItem value="item"> <AccordionTrigger>Item title</AccordionTrigger> <AccordionContent> Item content. </AccordionContent> </AccordionItem></Accordion>Examples
Section titled “Examples”Allow to close items
Section titled “Allow to close items”Use the collapsible prop to allow all items to be collapsed.
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from '@inpulse-ui/accordion';
export function Demo() { return ( <Accordion type="single" collapsible> <AccordionItem value="item-1"> <AccordionTrigger>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Is it unstyled?</AccordionTrigger> <AccordionContent> Yes. It's unstyled by default, giving you freedom over the look and feel. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Can it be animated?</AccordionTrigger> <AccordionContent> Yes! You can use the transition prop to configure the animation. </AccordionContent> </AccordionItem> </Accordion> );}Multiple items open at once
Section titled “Multiple items open at once”Set the type property to multiple to allow opening multiple items at the same time.
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from '@inpulse-ui/accordion';
export function Demo() { return ( <Accordion type="multiple"> <AccordionItem value="item-1"> <AccordionTrigger>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Is it unstyled?</AccordionTrigger> <AccordionContent> Yes. It's unstyled by default, giving you freedom over the look and feel. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Can it be animated?</AccordionTrigger> <AccordionContent> Yes! You can use the transition prop to configure the animation. </AccordionContent> </AccordionItem> </Accordion> );}Expanded by default
Section titled “Expanded by default”Use the defaultValue property to define which items should be expanded by default.
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from '@inpulse-ui/accordion';
export function Demo() { return ( <Accordion type="single" defaultValue="item-2"> <AccordionItem value="item-1"> <AccordionTrigger>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Is it unstyled?</AccordionTrigger> <AccordionContent> Yes. It's unstyled by default, giving you freedom over the look and feel. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger>Can it be animated?</AccordionTrigger> <AccordionContent> Yes! You can use the transition prop to configure the animation. </AccordionContent> </AccordionItem> </Accordion> );}Ignore the underline
Section titled “Ignore the underline”Through the useUnderline prop, it is possible to remove the underline from the trigger.
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger,} from '@inpulse-ui/accordion';
export function Demo() { return ( <Accordion type="single" collapsible> <AccordionItem value="item-1"> <AccordionTrigger useUnderline={false}>Is it accessible?</AccordionTrigger> <AccordionContent> Yes. It adheres to the WAI-ARIA design pattern. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger useUnderline={false}>Is it unstyled?</AccordionTrigger> <AccordionContent> Yes. It's unstyled by default, giving you freedom over the look and feel. </AccordionContent> </AccordionItem> <AccordionItem value="item-3"> <AccordionTrigger useUnderline={false}>Can it be animated?</AccordionTrigger> <AccordionContent> Yes! You can use the transition prop to configure the animation. </AccordionContent> </AccordionItem> </Accordion> );}Built with by Jo Santana in Brazil.
© 2026 Inpulse. All rights reserved.