Accordion

A vertically stacked set of interactive headings that reveal content panels.

Quick Preview

Verified buyers with completed affordability checks can apply.

Composition

Use this public composition when building Accordion:

Accordion
├── AccordionItem
│   ├── AccordionTrigger
│   └── AccordionContent
└── AccordionItem

Usage

<Accordion defaultValue={["eligibility"]}>
  <AccordionItem value="eligibility">
    <AccordionTrigger>Who can apply?</AccordionTrigger>
    <AccordionContent>Verified buyers can apply.</AccordionContent>
  </AccordionItem>
</Accordion>

Examples

Variants

Use variant to switch between surfaced item chrome and a quieter ghost treatment.

Use surface when the accordion needs visible item chrome.

Use ghost for lower-emphasis settings or FAQ lists.

Multiple Open Items

Set multiple when users need to compare content across panels.

Applicants need verified income.

Review usually takes three business days.

Props

Prop/APITypeDefaultDescription
variant`"surface""ghost"`"surface"
multiplebooleanfalseAllows more than one item to stay open.
value / defaultValuestring[]-Controlled or uncontrolled open item values.
classNamestring-Local layout or spacing overrides.
native/root propsReact component props-Passed through to the underlying root or primitive.

Accessibility

  • Preserve the documented Accordion composition so labels, triggers, content, and controls remain connected.
  • Provide visible labels or accessible names for interactive controls.
  • Preserve the component-provided focus, keyboard, disabled, and invalid-state behavior.
  • Do not communicate state with color alone; include text, icons, or helper copy.

On this page