DS0
Components

Collapsible

A show/hide container for expandable content.

Overview

Collapsible provides a simple disclosure pattern — a trigger that toggles the visibility of its content section. Supports both controlled and uncontrolled modes with smooth height animations.

Yes! This section uses the defaultOpen prop to start in the expanded state.

Usage

<Collapsible>
  <Collapsible.Trigger>Toggle Details</Collapsible.Trigger>
  <Collapsible.Content>
    <p>Hidden content revealed on toggle.</p>
  </Collapsible.Content>
</Collapsible>

Controlled

const [open, setOpen] = useState(false);

<Collapsible open={open} onOpenChange={setOpen}>
  <Collapsible.Trigger>
    {open ? 'Hide' : 'Show'} Details
  </Collapsible.Trigger>
  <Collapsible.Content>
    <p>Controlled collapsible content.</p>
  </Collapsible.Content>
</Collapsible>

Accessibility

KeyAction
Enter / SpaceToggles content visibility
  • Trigger has aria-expanded attribute
  • Content has aria-hidden when collapsed

API Reference

PropTypeDefaultDescription
openbooleanControlled open state
onOpenChange(open: boolean) => voidOpen state callback
defaultOpenbooleanfalseInitial open state
ComponentWhen to Use Instead
AccordionMultiple collapsible sections
DialogContent that overlays the page

On this page