Back to Shadcn Ui

Collapsible

apps/v4/content/docs/components/base/collapsible.mdx

latest2.3 KB
Original Source
<ComponentPreview styleName="base-nova" name="collapsible-demo" align="start" />

Installation

<CodeTabs> <TabsList> <TabsTrigger value="cli">Command</TabsTrigger> <TabsTrigger value="manual">Manual</TabsTrigger> </TabsList> <TabsContent value="cli">
bash
npx shadcn@latest add collapsible
</TabsContent> <TabsContent value="manual"> <Steps className="mb-0 pt-2">

<Step>Install the following dependencies:</Step>

bash
npm install @base-ui/react

<Step>Copy and paste the following code into your project.</Step>

<ComponentSource name="collapsible" title="components/ui/collapsible.tsx" styleName="base-nova" />

<Step>Update the import paths to match your project setup.</Step>

</Steps> </TabsContent> </CodeTabs>

Usage

tsx
import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from "@/components/ui/collapsible"
tsx
<Collapsible>
  <CollapsibleTrigger>Can I use this in my project?</CollapsibleTrigger>
  <CollapsibleContent>
    Yes. Free to use for personal and commercial projects. No attribution
    required.
  </CollapsibleContent>
</Collapsible>

Controlled State

Use the open and onOpenChange props to control the state.

tsx
import * as React from "react"

export function Example() {
  const [open, setOpen] = React.useState(false)

  return (
    <Collapsible open={open} onOpenChange={setOpen}>
      <CollapsibleTrigger>Toggle</CollapsibleTrigger>
      <CollapsibleContent>Content</CollapsibleContent>
    </Collapsible>
  )
}

Examples

Basic

<ComponentPreview styleName="base-nova" name="collapsible-basic" align="start" />

Settings Panel

Use a trigger button to reveal additional settings.

<ComponentPreview styleName="base-nova" name="collapsible-settings" />

File Tree

Use nested collapsibles to build a file tree.

<ComponentPreview styleName="base-nova" name="collapsible-file-tree" previewClassName="h-[36rem]" />

RTL

To enable RTL support in shadcn/ui, see the RTL configuration guide.

<ComponentPreview styleName="base-nova" name="collapsible-rtl" direction="rtl" align="start" />

API Reference

See the Base UI documentation for more information.