Collapsible

A compound component for revealing and hiding content. Built on Radix UI's collapsible primitive, it supports both controlled and uncontrolled usage.

Installation

npm install @bloomkit/react

Usage

import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "@bloomkit/react";
 
const [open, setOpen] = useState(false);
 
<Collapsible open={open} onOpenChange={setOpen}>
  <CollapsibleTrigger>Show details</CollapsibleTrigger>
  <CollapsibleContent>
    <p>Hidden content revealed on trigger.</p>
  </CollapsibleContent>
</Collapsible>

Uncontrolled

Omit open and onOpenChange to let the component manage its own state.

<Collapsible>
  <CollapsibleTrigger className="text-sm font-medium">Toggle</CollapsibleTrigger>
  <CollapsibleContent>
    <p>Uncontrolled — manages its own open state internally.</p>
  </CollapsibleContent>
</Collapsible>

Anatomy

<Collapsible>          {/* root — manages open state */}
  <CollapsibleTrigger> {/* toggle button */}
  <CollapsibleContent> {/* content shown when open */}
</Collapsible>

Collapsible Props

PropTypeDefaultDescription
openbooleanControlled open state
onOpenChange(open: boolean) => voidCalled when the open state should change
defaultOpenbooleanfalseInitial open state for uncontrolled usage
disabledbooleanfalsePrevents the collapsible from being toggled
classNamestringExtra Tailwind classes

CollapsibleTrigger Props

Renders a <button>. Style it directly via className.

PropTypeDefaultDescription
classNamestringExtra Tailwind classes

CollapsibleContent Props

PropTypeDefaultDescription
classNamestringExtra Tailwind classes