Ir para o conteúdo principal
WBC - GovBR-DS
Copiar página como Markdown para IA

Collapse

Componente estável e recomendada para novos projetos.
Anatomia, uso, comportamento visual e recomendações conceituais são mantidos pelo Padrão Digital de Governo. Esta página documenta a implementação Web Components e sua API executável.

Visão Geral

Para a documentação completa, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o Design System do GovBR.

Exemplo(s)

Desktop (100%)
Tablet - 768px
iPhone (iOS) - 390x844
Android - 360x800
Compartilhar URL
Mudar fundo
Abrir no StackBlitz
Tela cheia
HTML
Controles
JS
CSS
Console
Angular (Somente leitura)
React (Somente leitura)
Vue (Somente leitura)
Acessibilidade
Recolher controles e código
Formatar código
Resetar código para o estado inicial
Copiar para a área de transferência

Propriedades

accordionGroup

Atributoaccordion-group
DescriçãoIdentifica o grupo de accordion; quando informado, mantém apenas um item aberto por vez entre os irmãos
do mesmo pai imediato.
Tipostring
Valor padrãonull

colorMode

Atributocolor-mode
DescriçãoTema visual do Collapse/Accordion.
Tipo"dark" | "light"
Valor padrão'light'

customId

Atributocustom-id
DescriçãoIdentificador único do componente.
Quando omitido, um valor é gerado automaticamente.

> Padrão: valor único gerado por generateUniqueId().
Tipostring
Valor padrãogenerateUniqueId()

divider

Atributodivider
DescriçãoIndica se o componente possui um divisor (divider) inferior.
Tipoboolean
Valor padrãofalse

expansionDirection

Atributoexpansion-direction
DescriçãoDireção em que o conteúdo é expandido e para a qual o ícone aponta.
Tipo"down" | "left" | "right" | "up"
Valor padrão'down'

iconPosition

Atributoicon-position
DescriçãoDefine a posição do ícone no acionador: 'left' ou 'right'.
Tipo"left" | "right"
Valor padrão'right'

iconToHide

Atributoicon-to-hide
DescriçãoClasse CSS do ícone exibido quando o conteúdo está visível.
Tipostring
Valor padrão'fa6-solid:chevron-up'

iconToShow

Atributoicon-to-show
DescriçãoClasse CSS do ícone exibido quando o conteúdo está oculto.
Tipostring
Valor padrão'fa6-solid:chevron-down'

open

Atributoopen
DescriçãoControla se o collapse está aberto.
Tipoboolean
Valor padrãofalse

triggerVariant

Atributotrigger-variant
DescriçãoForma visual do acionador sem alterar sua semântica nativa.
Tipo"button" | "surface" | "text"
Valor padrão'surface'

useIcons

Atributouse-icons
DescriçãoControla se o identificador visual de expansão/retração será renderizado.
Tipoboolean
Valor padrãotrue

Slots

NomeDescrição
"default"Slot para o conteúdo expansível exibido ao abrir o collapse.
"trigger"Slot para personalizar o acionador (texto, ícones, imagens, etc.).

Eventos

EventoDescriçãoDepreciaçãoPropagação
brCollapseCloseEvento canônico emitido ao recolher.---true
brCollapseOpenEvento canônico emitido ao expandir.---true
brDidClose Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.Use brCollapseClose.true
brDidOpen Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.Use brCollapseOpen.true

Métodos

closeCollapse Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.

DescriçãoFecha o collapse programaticamente.
AssinaturacloseCollapse() => Promise<void>
DepreciaçãoAtualize a propriedade open.
Parâmetros---

openCollapse Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.

DescriçãoAbre o collapse programaticamente.
AssinaturaopenCollapse() => Promise<void>
DepreciaçãoAtualize a propriedade open.
Parâmetros---

toggle

DescriçãoAlterna o estado aberto.
O elemento também redispara o evento nativo toggle no host; essa ocorrência é sintética (isTrusted === false).
Assinaturatoggle() => Promise<void>
Parâmetros---

CSS Shadow Parts

NomeDescrição
"content"Área de conteúdo expansível.
"details"Elemento details nativo do collapse.
"trigger"Acionador (summary) do collapse.

Dependências

Usado por

Depende de

Gráfico

Evento nativo

Elemento HTML de referência

br-collapse encapsula <details>/<summary> e expõe open no host.

Como ouvir o evento

const collapse = document.querySelector('br-collapse');
collapse.addEventListener('toggle', () => console.log(collapse.open));

Eventos nativos suportados

EventoQuando ocorreBubblesComposedCancelableHostObservações
toggleopen mudaNãoNãoNãoSimToggleEvent sintético preserva oldState/newState.
click e teclado<summary> é ativadoconforme o tipoSimconforme o tipoSimPreservados pelo <summary> interno.

Eventos não aplicáveis ou não suportados

Eventos de formulário e valor não se aplicam. Delegação de toggle não funciona porque o evento nativo não faz bubbling.

Eventos customizados

brDidOpen/brDidClose são legados; brCollapseOpen/brCollapseClose são canônicos. Cada par ocorre uma vez antes do toggle público. Métodos legados preservam emissão imediata e suprimem a duplicação causada pelo toggle interno.

Estado, frameworks e acessibilidade

Leia event.target.open. HTML e wrappers registram listener no host. Enter/Space ativam o summary e o conteúdo participa da árvore somente quando aberto.

Evidência de teste

src/shared/platform-contract.e2e.tsx cobre interação real, ordem, flags, target e ausência de duplicação em Chromium headless.

Migração de <br-collapse> (1.x → 2.x)

A propriedade collapsed da 1.x indicava o estado inverso do estado atual. Na 2.x, use open para declarar diretamente se o conteúdo está aberto.

Propriedades e composição

API 1.xAPI 2.xAção na migração
accordion-groupUse para coordenar vários collapses.
collapsedopenInverta o valor durante a migração.
nameIconCollapsediconToHideRenomeie conforme o ícone do estado aberto/fechado.
nameIconNotCollapsediconToShowRenomeie conforme o ícone exibido.
showIconiconPosition ou conteúdo customizadoRemova a flag e configure a composição atual.
titleslot="trigger"Mova o título para o gatilho.

Use os eventos brCollapseOpen e brCollapseClose para acompanhar a mudança.

Exemplo

1.x:

<br-collapse collapsed title="Detalhes">Conteúdo</br-collapse>

2.x:

<br-collapse open="false">
<button slot="trigger">Detalhes</button>
Conteúdo
</br-collapse>