Skip to Content
ComponentsAccordion

Accordion

Display collapsible content panels for organizing information into expandable sections.

Import

import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "@raydenui/ui";

Usage

Basic

Rayden UI is a React component library built with Tailwind CSS.

Install with npm, yarn, or pnpm: npm install @raydenui/ui

<Accordion> <AccordionItem value="item-1"> <AccordionTrigger>What is Rayden UI?</AccordionTrigger> <AccordionContent> Rayden UI is a React component library built with Tailwind CSS. </AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>How do I install it?</AccordionTrigger> <AccordionContent> Install with npm, yarn, or pnpm: npm install @raydenui/ui </AccordionContent> </AccordionItem> </Accordion>

Nested Type

The nested type has full borders with rounded corners instead of bottom borders.

Content for section one.
Content for section two.
<Accordion type="nested"> <AccordionItem value="item-1"> <AccordionTrigger>Section One</AccordionTrigger> <AccordionContent>Content for section one.</AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Section Two</AccordionTrigger> <AccordionContent>Content for section two.</AccordionContent> </AccordionItem> </Accordion>

Multiple Open

Allow multiple items to be open simultaneously.

This can stay open…
…while this is also open.
<Accordion multiple> <AccordionItem value="item-1"> <AccordionTrigger>First Item</AccordionTrigger> <AccordionContent>This can stay open...</AccordionContent> </AccordionItem> <AccordionItem value="item-2"> <AccordionTrigger>Second Item</AccordionTrigger> <AccordionContent>...while this is also open.</AccordionContent> </AccordionItem> </Accordion>

With Icons

Configure your preferences here.
Manage team members and permissions.
<Accordion> <AccordionItem value="settings"> <AccordionTrigger leadingIcon="settings">Settings</AccordionTrigger> <AccordionContent>Configure your preferences here.</AccordionContent> </AccordionItem> <AccordionItem value="users"> <AccordionTrigger leadingIcon="users">Users</AccordionTrigger> <AccordionContent>Manage team members and permissions.</AccordionContent> </AccordionItem> </Accordion>

With Numbers

Begin with installation.
Set up your project.
<Accordion> <AccordionItem value="step-1"> <AccordionTrigger leadingNumber="01">Getting Started</AccordionTrigger> <AccordionContent>Begin with installation.</AccordionContent> </AccordionItem> <AccordionItem value="step-2"> <AccordionTrigger leadingNumber="02">Configuration</AccordionTrigger> <AccordionContent>Set up your project.</AccordionContent> </AccordionItem> </Accordion>

Controlled

const [openItems, setOpenItems] = useState<string[]>(["item-1"]); <Accordion value={openItems} onValueChange={setOpenItems}> <AccordionItem value="item-1"> <AccordionTrigger>Controlled Item</AccordionTrigger> <AccordionContent>This is controlled externally.</AccordionContent> </AccordionItem> </Accordion>

Props

Accordion

PropTypeDefaultDescription
type"default" | "nested""default"Visual type: border-bottom or full border
multiplebooleanfalseAllow multiple items open simultaneously
valuestring[]—Controlled open item keys
defaultValuestring[][]Default open items (uncontrolled)
onValueChange(value: string[]) => void—Callback when open items change
classNamestring—Additional CSS classes

AccordionItem

PropTypeDefaultDescription
valuestring—Unique key for this item (required)
disabledbooleanfalseWhether this item is disabled
classNamestring—Additional CSS classes

AccordionTrigger

PropTypeDefaultDescription
leadingIconReactNode | IconName—Leading icon on left side
leadingNumberstring—Number badge (styled dark badge)
leadingLogoReactNode—Logo element
badgenumber | string—Counter badge with light orange background
hideChevronbooleanfalseHide the chevron indicator
classNamestring—Additional CSS classes

AccordionContent

PropTypeDefaultDescription
classNamestring—Additional CSS classes

Accessibility

  • Uses aria-expanded and aria-controls for screen readers
  • Keyboard accessible with Enter/Space to toggle
  • Content region has role="region" with aria-labelledby
Last updated on