# Collapsible

Collapsible,
CollapsibleContent,
CollapsibleTrigger,
} from "@/components/starwind/collapsible";

<FrameworkCodeSwitcher>
  <div slot="astro">
```astro
---
import { Button } from "@/components/starwind/button";
import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from "@/components/starwind/collapsible";
import IconSelector from "@tabler/icons/outline/selector.svg";
---

<Collapsible class="w-[350px] space-y-2">
  <div class="flex items-center justify-between space-x-4 px-4">
    <h4 class="text-sm font-semibold">@starwind-ui starred 3 repositories</h4>
    <CollapsibleTrigger asChild>
      <Button variant="ghost" size="icon-sm">
        <IconSelector class="size-4" />
        <span class="sr-only">Toggle</span>
      </Button>
    </CollapsibleTrigger>
  </div>
  <div class="rounded-md border px-4 py-2 font-mono text-sm">astro</div>
  <CollapsibleContent class="space-y-2">
    <div class="rounded-md border px-4 py-2 font-mono text-sm">tailwindcss</div>
    <div class="rounded-md border px-4 py-2 font-mono text-sm">starwind-ui</div>
  </CollapsibleContent>
</Collapsible>
```
  </div>
  <div slot="react">
```tsx
import { Button } from "@/components/starwind/button";
import {
  Collapsible,
  CollapsibleContent,
  CollapsibleTrigger,
} from "@/components/starwind/collapsible";
import { IconSelector } from "@tabler/icons-react";

export function Example() {
  return (
    <Collapsible className="w-[350px] space-y-2">
      <div className="flex items-center justify-between space-x-4 px-4">
        <h4 className="text-sm font-semibold">@starwind-ui starred 3 repositories</h4>
        <CollapsibleTrigger asChild>
          <Button variant="ghost" size="icon-sm">
            <IconSelector className="size-4" />
            <span className="sr-only">Toggle</span>
          </Button>
        </CollapsibleTrigger>
      </div>
      <div className="rounded-md border px-4 py-2 font-mono text-sm">astro</div>
      <CollapsibleContent className="space-y-2">
        <div className="rounded-md border px-4 py-2 font-mono text-sm">tailwindcss</div>
        <div className="rounded-md border px-4 py-2 font-mono text-sm">starwind-ui</div>
      </CollapsibleContent>
    </Collapsible>
  );
}
```
  </div>
</FrameworkCodeSwitcher>

## Installation

```bash
npx starwind@latest add collapsible
```

## Usage

### General Notes

The Collapsible component provides a way to show and hide content with a trigger button. It's useful for FAQs, expandable sections, and progressive disclosure patterns.

The essential components are `Collapsible`, `CollapsibleTrigger`, and `CollapsibleContent`.

## Framework Availability
Collapsible is available for Astro and React.
Astro available; React available
| Framework | Status | Notes |
| --- | --- | --- |
| Astro | available | - |
| React | available | - |
## API Reference
### Collapsible
- Inherits div attributes.

### CollapsibleTrigger
- Inherits button attributes.

### CollapsibleContent
- Inherits div attributes.
### Primitive And Runtime API
Behavior, state, events, form participation, and imperative methods are documented in the lower-level references.
- Primitive: [Collapsible Primitive](/docs/primitives/collapsible/)
- Runtime factory: [`createCollapsible`](/docs/runtime/#create-collapsible) from `@starwind-ui/runtime/collapsible`

## Changelog

### v2.0.0

- Rebuilt Collapsible on Starwind Runtime for open state and panel lifecycle.
- See the [Collapsible Primitive](/docs/primitives/collapsible/) for the underlying unstyled anatomy and behavior API.