GitHub

Collapsible

An interactive component that expands and collapses content.

Basic Usage

Loading...
CollapsibleExpandable content section

Installation

pnpm add @corew500/ui

Usage

import {
  Collapsible,
  CollapsibleTrigger,
  CollapsibleContent,
} from "@mordecai-design-system/ui"
<Collapsible>
  <CollapsibleTrigger>Toggle</CollapsibleTrigger>
  <CollapsibleContent>Content to show/hide</CollapsibleContent>
</Collapsible>

Examples

Default Open

<Collapsible defaultOpen>
  <CollapsibleTrigger>Settings</CollapsibleTrigger>
  <CollapsibleContent>
    Expanded by default
  </CollapsibleContent>
</Collapsible>

Controlled

const [open, setOpen] = useState(false)

<Collapsible open={open} onOpenChange={setOpen}>
  <CollapsibleTrigger>
    {open ? "Hide" : "Show"} details
  </CollapsibleTrigger>
  <CollapsibleContent>
    Controlled content
  </CollapsibleContent>
</Collapsible>

Sub-components

| Component | Description | |-----------|-------------| | Collapsible | Root component managing open state | | CollapsibleTrigger | Button that toggles content visibility | | CollapsibleContent | Content that expands/collapses |

Props

Collapsible

PropTypeDefaultDescription
openenumWhether the collapsible panel is currently open. To render an uncontrolled collapsible, use the `defaultOpen` prop instead.
defaultOpenenumfalseWhether the collapsible panel is initially open. To render a controlled collapsible, use the `open` prop instead.
onOpenChange(open: boolean, eventDetails: CollapsibleRootChangeEventDetails) => voidEvent handler called when the panel is opened or closed.
disabledenumfalseWhether the component should ignore user interaction.
styleenumStyle applied to the element, or a function that returns a style object based on the component’s state.
classNameenumCSS class applied to the element, or a function that returns a class based on the component’s state.
renderenumAllows you to replace the component’s HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.

Accessibility

  • CollapsibleTrigger has aria-expanded attribute
  • Content is hidden from screen readers when collapsed
  • Keyboard accessible (Enter/Space to toggle)