C10 · Componentes
Dialog
Sobreposição modal focada para confirmações, ações destrutivas ou formulários curtos. Foco preso, fechamento por Escape ou clique no scrim.
Estrutura
<div role="dialog" aria-modal="true" aria-labelledby="title" aria-describedby="desc"> <header> <h2 id="title">Excluir drop?</h2> </header> <p id="desc">Esta ação é irreversível.</p> <footer> <button class="btn-outline">Cancelar</button> <button class="btn-destructive">Excluir</button> </footer> </div>
Comportamento
- Foco preso dentro do modal (focus trap).
- Tecla Escape fecha o modal.
- Clique no scrim (fundo escurecido) fecha — exceto em modais de ação destrutiva confirmada.
- Ao fechar, foco retorna para o elemento que abriu o modal.
- Conteúdo atrás do modal recebe
inertou equivalente.
Variantes
| Tipo | Quando usar |
|---|---|
| Basic | Confirmação simples (sair sem salvar?). |
| Destructive | Botão primário em vermelho semântico para ações irreversíveis. |
| Form | Formulário curto (criar drop, agendar live). Mais que 8 campos = página dedicada. |
Faça e não faça
Faça
- Mantenha o título em verbo imperativo claro ('Excluir drop?').
- Limite a 2 ações no footer — primária à direita, secundária à esquerda.
- Em destrutivo, exija confirmação textual para ações graves.
Não faça
- Não aninhe modais.
- Não use modal para conteúdo longo — use Sheet (C20).
- Não esconda informação crítica que deveria estar inline.