Overview
10 variants · single + multiple · badge · icon · subtitle · image
Default accordion
Reveal supporting content without forcing someone to leave the current context.
Use accordions for related sections that benefit from progressive disclosure. Keep essential instructions visible outside collapsed panels.
Anatomy
- Root container and spacing boundary.
- Primary content and optional secondary metadata.
- State indicators and utility affordances (icons, badges, controls).
- Optional helper text, grouping, and behavioral wrappers.
When to use
- Choose Accordion when a repeated, structured interaction is required.
- Use it for clear, consistent operations across similar surfaces.
- Use in forms, lists, and action workflows where clarity matters.
When not to use
- Do not use only for decorative layout without interaction meaning.
- Avoid duplicating the same behavior without distinct user context.
- Prefer simpler HTML or textual content for static, non-interactive labels.
Variants
Component variants should be documented by API props and examples below.
States
Common states include idle, active, disabled, focused, and loading/pending states where applicable.
Behavior
Behavior should remain deterministic and keyboard-friendly, with clear visual feedback for every state transition.
Accessibility
- Use semantic structure and visible labels whenever possible.
- Preserve keyboard navigation and focus visibility.
- Announce status and changes when context requires it.
Content guidelines
- Prefer short, clear labels.
- Keep content actions scannable and outcome-oriented.
- Use consistent wording across similar components.
Examples
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
Multiple open at once
mode=multiple lets any number of items be open simultaneously
Accordion props
AccordionItem props
Props / API
Api Props
Props