Skip to content

Accordion

Standalone directives that preserve the public DOM and use Angular Aria for state, keyboard behavior, and ARIA relationships.

Design

Functional preview

Running with the native Angular component and @angular/aria/accordion.

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.*