Getting Started
Components52
- Accordion
- Alert
- Alert Dialog
- Attachment
- Badge
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Card
- Checkbox
- Collapsible
- Command
- Context Menu
- Data Table
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Hover Card
- Input
- Input Group
- Item
- Kbd
- Label
- Marker
- Menubar
- Message
- Message Scroller
- Pagination
- Popover
- Progress
- Questionnaire
- Radio Group
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Switch
- Table
- Tabs
- Textarea
- Toggle
- Toggle Group
- Tooltip
We offer standard (5–7 days), express (2–3 days) and overnight shipping. Free shipping on orders over $50.
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"
export function AccordionDemo() {
return (
<Accordion defaultValue={["shipping"]} className="max-w-md">
{faqs.map((faq) => (
<AccordionItem key={faq.value} value={faq.value}>
<AccordionTrigger>{faq.question}</AccordionTrigger>
<AccordionContent>{faq.answer}</AccordionContent>
</AccordionItem>
))}
</Accordion>
)
}
const faqs = [
{
value: "shipping",
question: "What are your shipping options?",
answer:
"We offer standard (5–7 days), express (2–3 days) and overnight shipping. Free shipping on orders over $50.",
},
{
value: "returns",
question: "What is your return policy?",
answer:
"Returns are accepted within 30 days of delivery. Items must be unused and in their original packaging.",
},
{
value: "support",
question: "How can I contact customer support?",
answer:
"Reach us by email, live chat or phone. Most messages get a reply within a few hours.",
},
]Installation#
pnpm dlx shadcn@latest add https://ui.ikramhasan.com/r/accordion.json
Usage#
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"<Accordion defaultValue={["item-1"]}>
<AccordionItem value="item-1">
<AccordionTrigger>Is it accessible?</AccordionTrigger>
<AccordionContent>
Yes. It adheres to the WAI-ARIA design pattern.
</AccordionContent>
</AccordionItem>
</Accordion>Examples#
Multiple and disabled#
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"
export function AccordionMultipleAndDisabled() {
return (
<Accordion multiple className="max-w-md">
<AccordionItem value="notifications">
<AccordionTrigger>Notification settings</AccordionTrigger>
<AccordionContent>
<p>Choose which events send you an email.</p>
<p>
Manage them in <a href="#accordion">Settings</a>.
</p>
</AccordionContent>
</AccordionItem>
<AccordionItem value="privacy">
<AccordionTrigger>Privacy and security</AccordionTrigger>
<AccordionContent>
Two-factor authentication and session history.
</AccordionContent>
</AccordionItem>
<AccordionItem value="billing" disabled>
<AccordionTrigger>Billing (owners only)</AccordionTrigger>
<AccordionContent>Invoices and payment methods.</AccordionContent>
</AccordionItem>
</Accordion>
)
}API Reference#
Accordion is built on the Base UI Accordion primitive. See the Base UI documentation for every prop.