Single
Default — only one item open; set data-type="single" /
type="single".
One panel at a time.
Collapsible glass sections for progressive disclosure — single expand by default.
Live
<div class="ui-accordion" data-type="single">
<div class="ui-accordion__item is-open">
<button type="button" class="ui-accordion__trigger"
id="acc-trigger-status" aria-expanded="true"
aria-controls="acc-panel-status">
<span class="ui-accordion__trigger-label">Application status</span>
<span class="ui-icon ui-icon--chevron-down ui-accordion__chevron"
aria-hidden="true"></span>
</button>
<div class="ui-accordion__panel" role="region"
id="acc-panel-status" aria-labelledby="acc-trigger-status">
<div class="ui-accordion__panel-body">Packet is ready to submit.</div>
</div>
</div>
</div>
import {
Accordion, AccordionItem, AccordionTrigger, AccordionPanel,
} from 'caustica-design/core'
import 'caustica-design/css'
<Accordion type="single" defaultValue="status">
<AccordionItem value="status">
<AccordionTrigger>Application status</AccordionTrigger>
<AccordionPanel>Packet is ready to submit.</AccordionPanel>
</AccordionItem>
<AccordionItem value="channel">
<AccordionTrigger>Channel notes</AccordionTrigger>
<AccordionPanel>Prefer email follow-up within 48 hours.</AccordionPanel>
</AccordionItem>
</Accordion>
Default — only one item open; set data-type="single" /
type="single".
type="multiple" — several items can stay open together.
Disabled trigger — no toggle; React: disabled on
AccordionItem.
No .is-open — panel collapsed with aria-hidden /
inert.
<button type="button"> with
aria-expanded and aria-controls.
role="region" and aria-labelledby pointing at
the trigger.
aria-hidden="true" and inert so focus
cannot enter them.
aria-hidden="true".prefers-reduced-motion — transitions are disabled in CSS.| Class | Description |
|---|---|
.ui-accordion |
Root stack; optional data-type. |
.ui-accordion__item / .is-open |
Section shell (+ open state). |
.ui-accordion__trigger |
Header button. |
.ui-accordion__trigger-label |
Visible trigger text. |
.ui-accordion__chevron |
Rotating chevron icon. |
.ui-accordion__panel |
Collapsible region. |
.ui-accordion__panel-body |
Inner content padding. |
From src/core/Accordion.tsx — compound Accordion* components.
| Prop | Type | Default | Description |
|---|---|---|---|
type |
'single' | 'multiple' |
'single' |
One open section vs many. |
value / defaultValue |
string | string[] |
— | Controlled / uncontrolled open value(s). |
onValueChange |
fn |
— | Called with next open value(s). |
collapsible |
boolean |
true |
Allow collapsing the open item when type="single". |
AccordionItem value |
string |
— | Required item key. |
AccordionItem disabled |
boolean |
false |
Disables the trigger. |
AccordionPanel forceMount |
boolean |
true |
Keep closed panels mounted but hidden. |