Skip to content
Twentyfirst UIHalo

Accordion

Foundations · Accordion, Badge, Panel

View as Markdown

Stacked sections that open and close. One section at a time by default, or several with multiple.

  • cards (default) shows each section as a card; flush uses hairlines, for use inside a panel.
  • Keyboard: Tab reaches each header, ↑/↓ move between headers, Home/End jump, Enter or Space toggles.
  • Headers are buttons with aria-expanded; panels are regions labelled by their header.

You pay per seat and month. Seats added mid-cycle are prorated to the next invoice.

Settings

Approvals and overdue invoices reach you by mail and push.

Workspace data stays in the EU region.

Props

Accordion

PropTypeNotes
itemsAccordionItem[]Required
multiple?booleanSeveral sections open at once (default: one at a time).
value?string[]Open section ids (controlled).
defaultValue?string[]
onChange?(open: string[]) => void
variant?"cards" | "flush"`cards`: each section is a card; `flush`: hairlines only (inside a panel).
className?stringExtra class on the root element.
style?CSSPropertiesInline style on the root element.

Badge

PropTypeNotes
tone?Tone
dot?boolean
live?boolean
children?ReactNode
className?stringExtra class on the root element.
style?CSSPropertiesInline style on the root element.

Panel

PropTypeNotes
side?boolean
title?string
subtitle?string
action?ReactNode
children?ReactNode
surface?Surface`"glass"`: translucent glass over what is behind (maps, 3D, video, photos); `"solid"` opts out inside a glass `UIProvider`.
className?stringExtra class on the root element.
style?CSSPropertiesInline style on the root element.