Pular para o conteúdo

Accordion

Diretivas standalone que preservam o DOM público e usam Angular Aria para estado, teclado e relações ARIA.

Design

Preview funcional

Executado pelo componente Angular nativo com @angular/aria/accordion.

Carregando preview funcional…

Anatomia

Conteúdo expandido do painel.

1 .ds-accordion — grupo de itens relacionados.
2 .ds-accordion__item — container visual de cada seção.
3 .ds-accordion__trigger — botão que alterna aria-expanded.
4 .ds-accordion__leading-icon — ícone Lucide opcional.
5 .ds-accordion__chevron — indicador visual do estado aberto/fechado.
6 .ds-accordion__panel — slot de conteúdo associado ao trigger.

Padrão

Use um button para o trigger. O helper da documentação sincroniza aria-expanded, hidden e data-state; em produto, mantenha esse mesmo contrato.

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

Conteúdo customizado

O painel é um slot. Componha conteúdo complexo com componentes públicos do DS, sem usar classes internas isoladas.

Team Pro

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

Disabled

API no Figma

O component set vivo expõe Title, não Label. Use o nome da propriedade pública do Figma para handoff e documentação; a classe CSS continua .ds-accordion__title.

PropriedadeTipoEquivalente no repo
TitleTEXT.ds-accordion__title
ContentTEXT.ds-accordion__panel com texto simples
Content SlotSLOTConteúdo customizado dentro de .ds-accordion__panel.
Show Leading IconBOOLEANRenderizar ou omitir .ds-accordion__leading-icon.
Leading IconINSTANCE_SWAPÍcone Lucide com data-lucide.
StateVARIANTDefault, Hover, Focus, Disabled
OpenVARIANTaria-expanded, hidden e data-state

Mapeamento de tokens

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