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.
O modal continua sendo o conteúdo do br-scrim e preserva open(), showModal(), close(), eventos, foco e slots.
Quando o scrim fullscreen usa <dialog>, o conjunto entra na top layer; em ambientes sem showModal(), usa a camada
bloqueadora 4 e o gerenciamento de foco legado.
A ordem de abertura define a precedência entre diálogos nativos: o último bloqueador aberto fica ativo. No fallback
CSS, mantenha apenas um bloqueador legado ativo por vez.
- true: O modal fecha automaticamente ao clicar no botão fechar. - false: O modal emite brModalBeforeClose mas não fecha, permitindo a implementação de lógica customizada (validação, confirmação, etc.) antes do fechamento. O desenvolvedor deve controlar manualmente o fechamento.
Evento emitido antes do fechamento do modal (quando o botão X é clicado). Se autoClose está desativado, o desenvolvedor deve fechar manualmente o modal após este evento. Se autoClose está ativado, o modal fecha automaticamente após este evento.
---
true
brModalClose
Evento emitido após o modal ser fechado (quando show muda de true para false).
---
true
brModalOpen
Evento emitido quando o modal é aberto (quando show muda de false para true).
---
true
brModalOpened
Evento emitido após o modal estar completamente aberto e com o foco estabilizado dentro dele. Complementa brModalOpen (que dispara imediatamente ao abrir): use brModalOpened quando precisar interagir com o modal já pronto.
A referência é <dialog>. O modal independente usa esse elemento e a top layer; dentro de br-scrim, o
componente preserva um contêiner com role="dialog" para que exista apenas um owner da sobreposição.
O componente gerencia foco e Escape, mas a equivalência completa com modal nativo depende dos testes de foco, inertização e restauração documentados no componente.
_tests/modal.e2e.tsx cobre standalone, composição com scrim, cancelamento, fechamento único e ARIA em
Chromium headless. A matriz completa em três engines permanece pendente.