Accordion
Recolhe e expande seções de conteúdo, uma ou várias por vez.
O Accordion esconde o conteúdo secundário atrás de um cabeçalho, como "Mais capacidades" no cartão de próximo passo. Use quando a informação é opcional; não esconda o que a pessoa precisa para decidir.
import { Accordion } from "@rastreio-x/ui";
Padrão
Cada Accordion.Item tem um id. Por padrão, abrir um item recolhe o outro.
Vários abertos
allowsMultipleExpanded deixa mais de um item aberto; defaultExpandedKeys define os iniciais.
Variante de superfície
variant="surface" desenha o acordeão como um bloco de superfície, para usar fora de um cartão.
Item desabilitado
Explique no próprio rótulo por que o item não abre.
Anatomia
Accordion.Item: cada seção, identificada porid.Accordion.Heading: o título semântico (leveldefine o nível deh1ah6).Accordion.Trigger: o botão que abre e fecha; leva o texto e oAccordion.Indicator.Accordion.PaneleAccordion.Body: a região recolhível e o seu conteúdo.
Propriedades
Raiz (Accordion):
Item (Accordion.Item):
Título (Accordion.Heading):
Animações
O painel abre e fecha com transição de altura em cerca de 250 ms, e o indicador gira. Com prefers-reduced-motion, o tema aplica motion-reduce:transition-none e o painel muda sem animar.
Acessibilidade
- Cada gatilho é um
buttondentro de um título (h3por padrão), comaria-expandedearia-controls. - Tab percorre os gatilhos; Enter e Espaço abrem ou fecham.
- O painel é uma região nomeada pelo gatilho.
- O indicador é decorativo; o estado vem de
aria-expanded.
Boas práticas
Faça
Evite
- Rótulos curtos e informativos, em Title Case.
- Ajuste o
leveldo título para respeitar a hierarquia da página. - Evite acordeões aninhados.
- Para alternar visões equivalentes, use
Tabs.