Modal
Diálogo que interrompe a tela para uma tarefa curta e focada.
O Modal abre uma camada sobre a tela para uma tarefa curta, como renomear uma Fonte ou ler um token. Ele bloqueia o resto da página até fechar. Para confirmar uma ação destrutiva use AlertDialog; para editar um objeto com vários campos, use Sheet.
import { Modal } from "@rastreio-x/ui";
Padrão
O gatilho (um Button) fica ao lado de Modal.Backdrop, que contém Modal.Container e Modal.Dialog. O rodapé tem a ação principal e a de cancelar; slot="close" fecha o diálogo.
Tamanhos
size no Modal.Container: xs, sm, md (padrão), lg, cover e full. Prefira md para formulários curtos.
Com formulário
Coloque o foco no primeiro campo com autoFocus. O rótulo do botão de salvar diz o que será salvo.
Controlado
Com isOpen e onOpenChange no Modal.Backdrop, o estado fica com você: abra por qualquer evento e feche depois de concluir a ação.
Fundo
Modal.Backdrop aceita opaque (padrão), blur e transparent.
Anatomia
Modal.Backdrop: o fundo, que fecha ao clicar fora (isDismissable).Modal.Container: posiciona e dimensiona o diálogo.Modal.Dialog: a superfície do diálogo, com o papeldialog.Modal.Header,Modal.HeadingeModal.Icon: o cabeçalho.Modal.BodyeModal.Footer: o conteúdo e as ações.Modal.CloseTrigger: o botão de fechar no canto.
Propriedades
Fundo (Modal.Backdrop):
Contêiner (Modal.Container):
Animações
O fundo faz fade e o diálogo entra com opacity e transform em transição curta. Com prefers-reduced-motion, a folha global da fachada reduz as transições a 0,01 ms e o diálogo aparece sem movimento.
Acessibilidade
- Padrão WAI-ARIA de diálogo modal: o foco fica preso dentro do diálogo e volta ao gatilho ao fechar.
- Esc fecha (desligue com
isKeyboardDismissDisabled); Tab percorre os controles. - O título (
Modal.Heading) dá o nome ao diálogo; o fundo da página fica inerte e a rolagem é travada. Modal.CloseTriggertem nome acessível localizado.
Boas práticas
Faça
Evite
- Uma tarefa por modal, curta; para fluxos longos, use uma página ou
Sheet. - A ação principal à direita, no rodapé; cancelar ao lado, com peso menor.
- Não abra modal sem ação da pessoa (exceto erros críticos).
- Para ações destrutivas, use
AlertDialog.
Relacionados
- AlertDialog para confirmações que exigem decisão.
- Sheet para edição ou detalhe com mais conteúdo.
- Button para o gatilho e as ações do rodapé.