ProductBrand
Join us
Foundations
  • Introduction
  • Colors
  • Typography
  • Icons
  • Illustrations
  • Logos
  • Shadows
Components
  • Accordion
  • Alert Dialog
  • Avatar
  • Badge
  • Button
  • Calendar
  • Card
  • Chart
  • Checkbox
  • Collapsible
  • Combobox
  • Context Menu
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Fluid Avatar
  • Hover Scroll Text
  • Input
  • Kbd
  • Popover
  • Progress Bar
  • Radio Group
  • Scroll Area
  • Select
  • Selectors
  • Separator
  • Separator Dot
  • Shimmer Text
  • Skeleton
  • Slider
  • Switch
  • Tabs
  • Textarea
  • Toast
  • Tooltip
Compositions
  • Empty State
  • File Attachment
  • Floating Bar
  • Input Banner
  • Markdown Editor
  • Media Controls
  • Product Feature Banner
  • Panels
  • Sidebar
  • Reasoning Trace
  • Pagination
  • Data Table
  • Breadcrumb
  • Thread Outline
Inline
  • Overview
  • Stat Tile
  • Metric Row
  • Comparison Table
  • Chart Card
  • Trend Tile
  • Cite
  • Custom
  • Agent skill

Collapsible

A single button that toggles a single panel. No chrome, no chevron: just an accessible toggle with built-in height animation.

Examples

Controlled

Overview

Collapsible is a passthrough wrapper around Base UI Collapsible. It ships with one bit of styling: a height transition on CollapsibleContent driven by Base UI's --collapsible-panel-height CSS variable. Everything else (trigger styling, chevron, hover states) is yours.

Reach for Collapsible when you have one section to expand. If you have a group of sibling sections where users would expect arrow-key navigation, use Accordion instead.

tsx
import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from "@rogo-technologies/ui/collapsible";

<Collapsible>
  <CollapsibleTrigger>Show advanced settings</CollapsibleTrigger>
  <CollapsibleContent>…</CollapsibleContent>
</Collapsible>;

Usage

Basic

The trigger is a plain button, so bring your own styles, icon, and rotation logic.

tsx
<Collapsible>
  <CollapsibleTrigger className="group flex items-center justify-between">
    Advanced settings
    <IconChevronDownSmall className="size-4 transition-transform group-aria-expanded:rotate-180" />
  </CollapsibleTrigger>
  <CollapsibleContent>
    <div className="px-3 pt-2">…</div>
  </CollapsibleContent>
</Collapsible>

Controlled

Pass open + onOpenChange to manage state externally.

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

<Collapsible open={open} onOpenChange={setOpen}>
  <CollapsibleTrigger>Toggle</CollapsibleTrigger>
  <CollapsibleContent>…</CollapsibleContent>
</Collapsible>;

API

Collapsible

PropTypeDefaultDescription
openboolean-Controlled open state.
defaultOpenbooleanfalseUncontrolled initial open state.
onOpenChange(open: boolean) => void-Fired when the panel opens or closes.
disabledbooleanfalseDisables the trigger.
classNamestring-Additional CSS classes on the root.

CollapsibleTrigger

Renders a native <button>. Accepts all standard button props. Has aria-expanded for styling hooks.

CollapsibleContent

Renders a <div> with overflow: hidden and a height transition driven by --collapsible-panel-height. Wrap your content in a child element if you need padding, since padding on the panel itself would clip during the animation.

Guidelines

Do

  • Use Collapsible for one-off sections: an "Advanced settings" toggle on a form, an expandable card body, a collapsible sidebar group.
  • Style the trigger like a button (or a row), since the primitive intentionally gives you nothing.
  • Use aria-expanded on the trigger to rotate a chevron or swap an icon.

Don't

  • Don't stack multiple Collapsibles to fake an Accordion. Use Accordion so arrow keys move focus between triggers.
  • Don't put padding directly on CollapsibleContent, since it will clip during the height transition. Wrap the content in an inner div instead.
PreviousCheckbox
NextCombobox
Made in NYC© 2026 Rogo Technologies Inc.

Design at Rogo

We’re redesigning an entire industry. Come design it with us.

See open roles

Design at Rogo

  • How we workThe mission of design at Rogo, and the open roles
  • About RogoThe company and the product