Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Shadcn Collapsible for React and Tailwind

Collapsible content in a vertical stack.

Total visits

22.3%10.1%6.8%1.4%

Installation

bunx --bun shadcn@latest add https://kit.dev/r/collapsible.json

Anatomy

Collapsible
├── CollapsibleTrigger
├── CollapsibleContent
└── CollapsibleIndicator

Usage

import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
  Card,
  CardAction,
  CardDescription,
  CardHeader,
} from "@/components/ui/card";
import {
  Collapsible,
  CollapsibleContent,
  CollapsibleIndicator,
  CollapsibleTrigger,
} from "@/components/ui/collapsible";
<Card className="w-96">
  <Collapsible>
    <CardHeader title="Total visits">
      <CardDescription asChild>
        <div className="flex items-center gap-1">
          <Badge variant="success">22.3%</Badge>
          <Badge variant="info">10.1%</Badge>
          <Badge variant="warning">6.8%</Badge>
          <Badge variant="destructive">1.4%</Badge>
        </div>
      </CardDescription>

      <CardAction>
        <CollapsibleTrigger asChild>
          <Button clickEffect={false} size="sm" variant="outline">
            Details
            <CollapsibleIndicator />
          </Button>
        </CollapsibleTrigger>
      </CardAction>
    </CardHeader>

    <CollapsibleContent className="text-sm">
      <div className="mt-(--space) grid gap-3 px-(--space)">
        <div className="grid grid-cols-3 items-center gap-4">
          <div className="col-span-2 text-muted-foreground">Google</div>
          <div className="place-self-end">
            <Badge variant="success">22.3%</Badge>
          </div>
        </div>
        <div className="grid grid-cols-3 items-center gap-4">
          <div className="col-span-2 text-muted-foreground">Facebook</div>
          <div className="place-self-end">
            <Badge variant="destructive">-10.1%</Badge>
          </div>
        </div>
        <div className="grid grid-cols-3 items-center gap-4">
          <div className="col-span-2 text-muted-foreground">TikTok</div>
          <div className="place-self-end">
            <Badge variant="warning">6.8%</Badge>
          </div>
        </div>
        <div className="grid grid-cols-3 items-center gap-4">
          <div className="col-span-2 text-muted-foreground">Instagram</div>
          <div className="place-self-end">
            <Badge variant="info">1.4%</Badge>
          </div>
        </div>
      </div>
    </CollapsibleContent>
  </Collapsible>
</Card>

Accessibility

KeyDescription
Enter
Activate the focused control.
Space
Activate the focused control.

Demos

Context

Controlled

Default Open

Disabled

Lazy Mount

Nested

Partial Collapse

Root Provider

API Reference

Collapsible

div

PropType
AttributeType

CollapsibleTrigger

button

PropType
AttributeType

CollapsibleContent

div

PropType
AttributeType
CSS variableType

CollapsibleIndicator

div

PropType
AttributeType

CollapsibleRootProvider

div

PropType
AttributeType

useCollapsible

PropType

CollapsibleContext

PropType