Accordion
10 variants · single + multiple · badge · icon · subtitle · image
Default
Clean accordion with underline dividers — single open mode
Bordered
Full outer border with dividers between items — great for settings panels
Filled
Secondary tonal background fills the accordion container
Card — with icon + badge
Card variant supports icon, iconBg, badge, badgeColor, and subtitle on each item
Flush — multiple open
No outer border, dividers only — mode=multiple allows any combination to be open
Separated
Each item is an individual card separated by a gap
Gradient header
Brand gradient header on the open trigger — ideal for marketing pages
Plus / minus — FAQ style
iconStyle=plus replaces the chevron with a + / − toggle inside a rounded box
Numbered — onboarding steps
step prop shows a numbered circle before the title
Image / media
image prop shows an emoji in a gradient side panel — subtitle provides context
A complete design system with 30+ components, dark mode support, and full TypeScript definitions.
Multiple open at once
mode=multiple lets any number of items be open simultaneously
Accordion props
Props
defaultValuestring | string[]—Initially open item(s) — string for single, array for multiplevaluestring | string[]—Controlled open item(s)onValueChange(value: string | string[]) => void—Callback fired when open items changemode'single' | 'multiple''single'Allow one or multiple items open at a timevariant'default' | 'bordered' | 'filled' | 'card' | 'flush' | 'separated' | 'gradient' | 'plus' | 'numbered' | 'image''default'Visual style of the accordioniconStyle'chevron' | 'plus' | 'arrow' | 'none''chevron'Style of the expand/collapse iconchildrenReactNode—AccordionItem componentsAccordionItem props
Props
valuestring—Unique identifier for this itemtitlestring—Header text shown in the trigger buttonsubtitlestring—Subtitle shown below the titleiconIconName—Leading icon name in the triggericonBgstring—Tailwind class for the icon container backgroundbadgestring—Badge label shown in the triggerbadgeColor'default' | 'error' | 'success' | 'warning''default'Color of the badge chipstepnumber—Step number badge before the title (numbered variant)imagestring—Emoji shown in a side panel (image variant)imageAltstring—Accessible alt text for the image/emojidisabledbooleanfalsePrevents the item from being openedchildrenReactNode—Content shown when the item is open