Accordion
A component that expands or collapses vertically stacked content.
All plans include real-time analytics, unlimited team members, custom branding, API access, and 24/7 support.
"use client";
import {
Accordion,
AccordionHeader,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "@/components/ui/accordion/accordion";
const accordionItems = [
{
id: "item-1",
title: "What features are included?",
content:
"All plans include real-time analytics, unlimited team members, custom branding, API access, and 24/7 support.",
},
{
id: "item-2",
title: "How does billing work?",
content: "You can choose monthly or annual billing. Annual plans save 20% and you can cancel anytime with no fees.",
},
{
id: "item-3",
title: "Can I upgrade or downgrade?",
content:
"Yes, you can change your plan at any time. Upgrades take effect immediately, and downgrades apply at your next billing cycle.",
},
];
export default function AccordionDemo() {
return (
<Accordion defaultValue={["item-1"]}>
{accordionItems.map((item) => (
<AccordionItem key={item.id} value={item.id}>
<AccordionHeader>
<AccordionTrigger>{item.title}</AccordionTrigger>
</AccordionHeader>
<AccordionPanel>{item.content}</AccordionPanel>
</AccordionItem>
))}
</Accordion>
);
}
npx shadcn@latest add @roiui/accordionnpx shadcn@latest add @roiui/accordion-tailwindanatomy
<Accordion>
<AccordionItem>
<AccordionHeader>
<AccordionTrigger />
</AccordionHeader>
<AccordionPanel />
</AccordionItem>
</Accordion>
All plans include real-time analytics, unlimited team members, custom branding, API access, and 24/7 support.
"use client";
import {
Accordion,
AccordionHeader,
AccordionItem,
AccordionPanel,
AccordionTrigger,
} from "@/components/ui/accordion/accordion";
import styles from "./accordion-minimal.module.css";
const accordionItems = [
{
id: "item-1",
title: "What features are included?",
content:
"All plans include real-time analytics, unlimited team members, custom branding, API access, and 24/7 support.",
},
{
id: "item-2",
title: "How does billing work?",
content: "You can choose monthly or annual billing. Annual plans save 20% and you can cancel anytime with no fees.",
},
{
id: "item-3",
title: "Can I upgrade or downgrade?",
content:
"Yes, you can change your plan at any time. Upgrades take effect immediately, and downgrades apply at your next billing cycle.",
},
];
export default function AccordionMinimal() {
return (
<Accordion className={styles.root} defaultValue={["item-1"]} multiple>
{accordionItems.map((item) => (
<AccordionItem className={styles.item} key={item.id} value={item.id}>
<AccordionHeader className={styles.header}>
<AccordionTrigger className={styles.trigger}>{item.title}</AccordionTrigger>
</AccordionHeader>
<AccordionPanel className={styles.panel}>{item.content}</AccordionPanel>
</AccordionItem>
))}
</Accordion>
);
}