Command Palette

Search for a command to run...

Docs
Accordion

Accordion

A vertically stacked set of interactive headings that each reveal a section of content.

Installation

Run the following command:

Update your imports:
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@/components/ui/accordion"

Usage

import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from "@/components/ui/accordion";
 
export default function Home() {
  return (
    <Accordion type="single" collapsible>
      <AccordionItem value="item-1">
        <AccordionTrigger>Is it accessible?</AccordionTrigger>
        <AccordionContent>
          Yes. It adheres to the WAI-ARIA design pattern.
        </AccordionContent>
      </AccordionItem>
    </Accordion>
  );
}

Props

AccordionTrigger

PropTypeDefaultDescription
variantdefault | outline | ghost | underline | carddefaultStyle variant of the trigger
iconPositionright | leftrightPosition of the chevron icon
iconReact.ReactNode-Custom icon element

AccordionContent

PropTypeDefaultDescription
variantdefault | outline | ghost | underline | carddefaultStyle variant of the content
animationdefault | fade | nonedefaultAnimation style when expanding

Radix UI Props

The Accordion components are built on Radix UI primitives and support all their props:

Accordion

Radix UI Accordion Root props:
  • type: 'single' | 'multiple'
  • collapsible: boolean
  • value: string
  • defaultValue: string
  • onValueChange: (value: string) => void

AccordionItem

Radix UI Accordion Item props:
  • value: string (required)
  • disabled: boolean

AccordionTrigger

Radix UI Accordion Trigger props

AccordionContent

Radix UI Accordion Content props
All components also support HTML attributes and event handlers appropriate to their element type.