Component
Accordion
Reveals related content in vertically stacked, expandable sections.
Install
Run the CLI to copy the source into your project.
pnpm dlx @stalk-ui/cli add @stalk-ui/accordionExamples
Live previews render through the docs app's PandaCSS codegen.
<Accordion type="single" collapsible defaultValue="item-1"> <Accordion.Item value="item-1"> <Accordion.Trigger>Is it accessible?</Accordion.Trigger> <Accordion.Content>Yes. It adheres to the WAI-ARIA design pattern.</Accordion.Content> </Accordion.Item> <Accordion.Item value="item-2"> <Accordion.Trigger>Is it styled?</Accordion.Trigger> <Accordion.Content>Yes. Defaults use semantic tokens from the preset.</Accordion.Content> </Accordion.Item> </Accordion>
<Accordion type="multiple" defaultValue={['a', 'b']}> <Accordion.Item value="a"> <Accordion.Trigger>First section</Accordion.Trigger> <Accordion.Content>Multiple sections can be open at once.</Accordion.Content> </Accordion.Item> <Accordion.Item value="b"> <Accordion.Trigger>Second section</Accordion.Trigger> <Accordion.Content>Pass type="multiple" to enable this.</Accordion.Content> </Accordion.Item> </Accordion>
Props
Public component props extracted from the source TypeScript types.
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
| `variant` | `AccordionVariant` | No | - | Visual treatment for the root container. \`card\` adds a bordered surface and inset<br /> trigger padding; \`inline\` is unstyled chrome for embedding in arbitrary surfaces. |
Variants
Variant axes exposed by the underlying PandaCSS recipe or slot recipe.
| Variant | Values |
|---|---|
| `variant` | `inline`, `card` |
Registry
Files this component contributes to your registry install.
- Manifest: `/r/accordion.json`
- Recipe: `accordion`
- Files: `src/components/ui/accordion.tsx`