NimUI
ComponentsLayout

Collapsible

An expandable section for hiding and revealing content, built with Radix UI

The Collapsible component is a single expandable section built on Radix UI Collapsible. Use it for FAQs, "Read more" patterns, disclosure widgets, and any one-off toggleable content. For multiple independently-collapsible sections, use Accordion instead.

Import

import {
  Collapsible,
  CollapsibleTrigger,
  CollapsibleContent,
} from '@nim-ui/components';

Basic Usage

Basic Collapsible
Code
<Collapsible>
  <CollapsibleTrigger>Show more</CollapsibleTrigger>
  <CollapsibleContent>
    <p>Hidden content revealed on open.</p>
  </CollapsibleContent>
</Collapsible>

Controlled

Manage the open state yourself to drive the component from outside:

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

return (
  <Collapsible open={open} onOpenChange={setOpen}>
    <CollapsibleTrigger>Toggle FAQ</CollapsibleTrigger>
    <CollapsibleContent>
      <p>Answer goes here.</p>
    </CollapsibleContent>
  </Collapsible>
);

Disabled

<Collapsible disabled>
  <CollapsibleTrigger>Disabled trigger</CollapsibleTrigger>
  <CollapsibleContent>This will never open.</CollapsibleContent>
</Collapsible>

Props

Collapsible

NameTypeDefaultDescription
openboolean-Controlled open state of the collapsible
defaultOpenbooleanfalseInitial open state (uncontrolled)
onOpenChange(open: boolean) => void-Callback fired when the open state changes
disabledbooleanfalsePrevent the user from toggling the collapsible

CollapsibleTrigger

NameTypeDefaultDescription
classNamestring-Additional CSS classes
children*ReactNode-Trigger content

CollapsibleContent

NameTypeDefaultDescription
classNamestring-Additional CSS classes on the inner wrapper
children*ReactNode-Content revealed when open

Accessibility

  • Uses aria-expanded on the trigger to communicate open state
  • Content is properly hidden from assistive tech when closed
  • Fully keyboard accessible (Space / Enter to toggle)
  • Works with prefers-reduced-motion — animations are disabled for users who request reduced motion
  • Accordion - Multiple collapsibles grouped together
  • Popover - Floating content panel

On this page