Some value 1...
Some value 2...
Some value 3...
<AccordionRoot defaultValue={["b"]}>
{items.map((item) => (
<AccordionItem key={item.value} value={item.value}>
<AccordionItemTrigger>{item.title}</AccordionItemTrigger>
<AccordionItemContent>{item.text}</AccordionItemContent>
</AccordionItem>
))}
</AccordionRoot>Examples
Expand Multiple Items
Use the multiple prop to allow multiple items to be expanded at once.
Some value 1...
Some value 2...
Some value 3...
<AccordionRoot multiple>
{items.map((item) => (
<AccordionItem key={item.value} value={item.value}>
<AccordionItemTrigger>{item.title}</AccordionItemTrigger>
<AccordionItemContent>{item.text}</AccordionItemContent>
</AccordionItem>
))}
</AccordionRoot>Disabled Item
Pass the disabled prop to any AccordionItem to prevent it from being expanded or collapsed.
Some value 1...
Some value 2...
Some value 3...
<AccordionRoot>
{itemsWithDisabled.map((item) => (
<AccordionItem
key={item.value}
value={item.value}
disabled={item.disabled}
>
<AccordionItemTrigger>{item.title}</AccordionItemTrigger>
<AccordionItemContent>{item.text}</AccordionItemContent>
</AccordionItem>
))}
</AccordionRoot>With Avatar
Here's an example of composing an accordion with an avatar.
This is some detailed information about Alex.
This is some detailed information about Benji.
This is some detailed information about Charlie.
<AccordionRoot>
{itemsWithAvatars.map((item) => (
<AccordionItem key={item.value} value={item.value}>
<AccordionItemTrigger>
<div className="flex items-center gap-3">
<Avatar src={item.src} alt={item.name} />
<span>{item.name}</span>
</div>
</AccordionItemTrigger>
<AccordionItemContent>
This is some detailed information about {item.name}.
</AccordionItemContent>
</AccordionItem>
))}
</AccordionRoot>With Subtext
Here's an example of adding a subtext to an accordion item.
Some value 1...
Some value 2...
Some value 3...
<AccordionRoot>
{items.map((item) => (
<AccordionItem key={item.value} value={item.value}>
<AccordionItemTrigger>
<div className="flex flex-col">
<span>{item.title}</span>
<Text>Click to expand</Text>
</div>
</AccordionItemTrigger>
<AccordionItemContent>{item.text}</AccordionItemContent>
</AccordionItem>
))}
</AccordionRoot>