Accordion
The Accordion component allows users to expand and collapse content sections, making it ideal for organizing information in a compact and user-friendly way.
Yes. It adheres to the WAI-ARIA design pattern.
Installation
bash
Adding Animation to Global CSS
To enhance the user experience, you can add smooth animations to the Accordion component by defining transition styles in your global CSS file.
css
Usage as a AccordionList
To simplify usage, you can create a reusable Accordion component that accepts an array of items with title and content.
jsx
import React from "react";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/Accordion";
type AccordionListProps = {
items: {
title: React.ReactNode;
content: React.ReactNode;
itemProps?: React.ComponentProps<typeof AccordionItem>;
}[];
} & React.ComponentProps<typeof Accordion>;
const AccordionList = ({ items, ...props }: AccordionListProps) => {
return (
<Accordion {...props}>
{items.map((item, index) => (
<AccordionItem
className="overflow-hidden"
value={`item-${index}`}
key={`item-${index}`}
>
<AccordionTrigger>{item.title}</AccordionTrigger>
<AccordionContent>{item.content}</AccordionContent>
</AccordionItem>
))}
</Accordion>
);
};
export default AccordionList;
Usage Example
jsx
Installation
bash