# Accordion URL: /docs/ui/accordion A vertically stacked set of interactive headings that reveal or hide content sections. import { PreviewCode } from "@/components/docs/preview-code.server"; import { AccordionSample, AccordionVariantsSample, AccordionMultipleSample, AccordionWithIconsSample, AccordionControlledSample, AccordionFAQSample, } from "@/components/docs/samples/accordion"; This is a **standalone component** that does not depend on the assistant-ui runtime. Use it anywhere in your application. Installation \[#installation] Usage \[#usage] ```tsx import { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "@/components/assistant-ui/accordion"; export function Example() { return ( Section 1 Content for section 1. Section 2 Content for section 2. ); } ``` Examples \[#examples] Variants \[#variants] Use the `variant` prop on `Accordion` to change the visual style. Child components inherit the variant automatically. ```tsx // Default - border-bottom separator ... ... // Outline - bordered container ... ... // Ghost - separated cards ... ... ``` Multiple Items Open \[#multiple-items-open] Use `type="multiple"` to allow multiple items to be open simultaneously. ```tsx First Section Content 1 Second Section Content 2 ``` With Icons \[#with-icons] Add icons or custom elements inside the trigger. Controlled \[#controlled] Use `value` and `onValueChange` for controlled accordion state. FAQ Section \[#faq-section] A practical example of using accordion for a FAQ section. API Reference \[#api-reference] Composable API \[#composable-api] | Component | Description | | ------------------ | ------------------------------------------------------------ | | `Accordion` | The root component that manages accordion state and variant. | | `AccordionItem` | A single collapsible section container. | | `AccordionTrigger` | The clickable header that toggles content visibility. | | `AccordionContent` | The collapsible content panel. | Accordion \[#accordion] The root component that manages accordion state. Set `variant` here to style all child components. void", description: "Callback when the open item(s) change.", }, { name: "variant", type: '"default" | "outline" | "ghost"', default: '"default"', description: "The visual style of the accordion. Child components inherit this automatically.", }, { name: "className", type: "string", description: "Additional CSS classes.", }, ]} /> AccordionItem \[#accordionitem] A single collapsible section container. AccordionTrigger \[#accordiontrigger] The clickable header that toggles content visibility. AccordionContent \[#accordioncontent] The collapsible content panel. Style Variants (CVA) \[#style-variants-cva] | Export | Description | | ------------------- | ----------------------------------- | | `accordionVariants` | Styles for the accordion container. | ```tsx import { accordionVariants } from "@/components/assistant-ui/accordion";
Custom Accordion Container
```