Skip to main content
The Collapsible component allows content to be expanded and collapsed with smooth animations.

Installation

import {
  Collapsible,
  CollapsibleTrigger,
  CollapsiblePanel,
} from "@craftdotui/baseui/components/collapsible";

Usage

<Collapsible>
  <CollapsibleTrigger>Toggle Content</CollapsibleTrigger>
  <CollapsiblePanel>
    This content can be collapsed and expanded.
  </CollapsiblePanel>
</Collapsible>

Components

Collapsible (Root)

open
boolean
Controlled open state.
defaultOpen
boolean
Default open state.
onOpenChange
function
Callback when state changes.
disabled
boolean
Disable the collapsible.

CollapsibleTrigger

className
string
Additional CSS classes.
The trigger button to toggle the panel. Includes a chevron icon that rotates when open.

CollapsiblePanel

keepMounted
boolean
default:"false"
Keep panel mounted when closed.
hiddenUntilFound
boolean
default:"false"
Use hidden=until-found attribute.

Examples

Basic Collapsible

<Collapsible>
  <CollapsibleTrigger>Show more</CollapsibleTrigger>
  <CollapsiblePanel>
    <p>Additional content that can be toggled.</p>
  </CollapsiblePanel>
</Collapsible>

Controlled

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

<Collapsible open={open} onOpenChange={setOpen}>
  <CollapsibleTrigger>Toggle</CollapsibleTrigger>
  <CollapsiblePanel>
    Content
  </CollapsiblePanel>
</Collapsible>

Default Open

<Collapsible defaultOpen>
  <CollapsibleTrigger>Details</CollapsibleTrigger>
  <CollapsiblePanel>
    This content is open by default.
  </CollapsiblePanel>
</Collapsible>

Accessibility

  • Built on @base-ui/react for accessibility
  • Keyboard accessible (Enter/Space to toggle)
  • Proper ARIA attributes
  • Smooth height transitions
  • Focus management

Build docs developers (and LLMs) love