SW Core
Início CSS Componentes Animações 01 - Tema e tokens 02 - Tipografia 03 - Cores semânticas 04 - Motor de cor 05 - Paleta estendida 06 - Ícones 07 - Espaçamento 08 - Bordas 09 - Sombras 10 - Breakpoints 11 - Container 12 - Grid 13 - Flex 14 - Posição 15 - Quebra de texto 16 - Zoom 17 - Object-fit 18 - Proporção 19 - Filtros 20 - Superfície 21 - Interação 22 - Botão 23 - Avatar 24 - Badge 25 - Breadcrumb 26 - Card 27 - Divider 28 - Timeline 29 - Skeleton 30 - Stepper 31 - Segmentado 32 - Alerta (inline) 33 - CSS nativo — visão geral 34 - Entrar ao rolar (sw-revela) 35 - Barra de leitura (sw-progresso) 36 - Menu, aviso e painel (sw-popover) 37 - Modal nativo (sw-dialog) 38 - Dica ancorada (sw-dica) 39 - Sanfona nativa (sw-sanfona) 40 - Carrossel de arrastar (sw-trilho) 41 - Formulário que trava (sw-trava) 42 - Bloco que se adapta (sw-caixa) 43 - Tabs 44 - Dropdown 45 - Navbar 46 - Sidebar 47 - Scrollspy 48 - Voltar ao topo 49 - Paginação 50 - Accordion 51 - Text Carousel 52 - Arrastar (Draggable) 53 - Chip 54 - Panel (drawer) 55 - Modal 56 - Tooltip 57 - Toast (SW.Alert) 58 - Progress 59 - Rating (estrelas) 60 - LGPD / Cookies 61 - Campo de formulário 62 - Validação inline (matinp) 63 - Select (JS) 64 - Máscara de campo 65 - Validação de formulário 66 - Textarea auto-resize 67 - Contador de caracteres 68 - Upload de arquivo 69 - Editor de texto rico 70 - Recorte de imagem 71 - Lightbox 72 - Slider de imagens 73 - Feed do Instagram 74 - Tabela avançada 75 - Infinite Scroll 76 - AJAX declarativo 77 - Cotação de moedas 78 - Máquina de escrever 79 - Realce de código 80 - Tema dia/noite 81 - Conteúdo responsivo 82 - Lazy load de imagem 83 - Preloader 84 - Efeitos de entrada 85 - Texto animado 86 - Mini-componentes animados 87 - Cascade 88 - Pin (prende na tela) 89 - Fixed (gruda no topo) 90 - Track (fileira horizontal) 91 - Sections (tela cheia) 92 - Frames (sprite no scroll) 93 - SVG Draw (traço) 94 - Motion Path 95 - Tilt (3D no mouse) 96 - Magnetic (ímã) 97 - Glow (segue o mouse) 98 - Cursor personalizado 99 - Canvas (fundo generativo) 100 - Lottie 101 - Rive 102 - Countdown 103 - Counter 104 - Transição de página
37
Modal nativo (sw-dialog) CSS
O do navegador com entrada e saída animadas, fundo desfocado e página travada atrás.
O que é
Acessível de fábrica: prende o foco dentro, fecha no Esc, avisa o leitor de tela. Fechar é um <form method="dialog">, sem JS. Abrir é uma linha: showModal().
Como funciona
Animação com @starting-style; fundo em ::backdrop; a rolagem da página trava com body:has(dialog[sw-dialog][open]). Não substitui o sw-modal nos sistemas que já usam — é a opção leve para sites.
Exemplos
Central e lateral
Ao vivo
Abrir modal
Abrir lateral
Confirmar agendamento? Terça, 14h — Corte + barba.
Carrinho Gaveta lateral nativa.
<button onclick="confirma.showModal()">Abrir</button>
<dialog id="confirma" sw-dialog>
<h3>Confirmar?</h3>
<form method="dialog">
<button value="sim">Confirmar</button>
<button value="nao">Voltar</button>
</form>
</dialog>
Atributos
dialog[sw-dialog]
modal central
dialog[sw-dialog="lateral"]
gaveta entrando pela direita
<form method="dialog">
qualquer botão dentro dele fecha o modal
Eventos
close (no dialog)
disparado ao fechar; dialog.returnValue traz o value do botão
API (JavaScript)
dialog.showModal()
abre como modal
Limitações — o que ele não faz
Nenhuma.