Skip to content

Accordion

Organizes related content into sections that can be expanded or collapsed.

Design

Functional preview

Running with the stable ds-tis/accordion JavaScript runtime.

Loading functional preview…

Anatomy

Conteúdo expandido do painel.

1 .ds-accordion — group of related items.
2 .ds-accordion__item — visual container for each section.
3 .ds-accordion__trigger — button that toggles aria-expanded.
4 .ds-accordion__leading-icon — optional Lucide icon.
5 .ds-accordion__chevron — visual indicator for open/closed state.
6 .ds-accordion__panel — content slot associated with the trigger.

Default

Use a button for the trigger. The documentation helper synchronizes aria-expanded, hidden, and data-state; in product, keep the same contract.

Invoices are generated on the first business day of each month and sent to account owners.

Custom content

The panel is a slot. Compose complex content with public DS components instead of isolated internal classes.

Team Pro

Até 25 usuários, billing mensal e permissões avançadas.

Disabled

Figma API

The live component set exposes Title, not Label. Use the public Figma property name for handoff and documentation; the CSS class remains .ds-accordion__title.

PropertyTypeRepo equivalent
TitleTEXT.ds-accordion__title
ContentTEXT.ds-accordion__panel com texto simples
Content SlotSLOTCustom content inside .ds-accordion__panel.
Show Leading IconBOOLEANRender or omit .ds-accordion__leading-icon.
Leading IconINSTANCE_SWAPLucide icon with data-lucide.
StateVARIANTDefault, Hover, Focus, Disabled
OpenVARIANTaria-expanded, hidden e data-state

Token mapping

ParteCSSToken atual
Item.ds-accordion__itemcomponent.accordion.item.{radius,border-width,bg,border-color}
Trigger.ds-accordion__triggercomponent.accordion.trigger.{height,padding,gap}
Title.ds-accordion__titlecomponent.accordion.trigger.content.color + typography body/md bold
Content.ds-accordion__panelcomponent.accordion.content.{color,padding,gap}
Chevron.ds-accordion__chevroncomponent.accordion.chevron.{size,color,stroke-width}
Leading icon.ds-accordion__leading-iconcomponent.accordion.leading-icon.{size,color,stroke-width}
Focus ring.ds-accordion__trigger:focus-visiblecomponent.accordion.focus-ring.radius.default + component.focus-ring.*