← Biblioteca componentes/navegacao/drawer-fullscreen/ficha.md Abrir previewmarkupestiloscript
navegacao/drawer-fullscreen

Menu mobile de tela cheia

🟢 estavel complexidade baixa prefixo drawer- menu mobile drawer overlay acessibilidade

Painel opaco que cobre a tela inteira deslizando da direita. Marca e botão de fechar no topo, alinhados com a altura do menu fixo; links grandes em display, empilhados com divisória; CTA no pé. Trava o scroll da página enquanto está aberto e devolve o foco ao botão que o abriu.


Quando usar

Quando não usar


Padrão editorial

Slot Regra
Links Os mesmos do menu de desktop, na mesma ordem. Divergir entre desktop e mobile é erro, não variação.
CTA O mesmo do desktop, aqui em botão cheio em vez de pílula pequena.

Como usar

<link rel="stylesheet" href="componentes/navegacao/drawer-fullscreen/estilo.css">
<script src="componentes/navegacao/drawer-fullscreen/script.js"></script>

Cole logo depois do menu fixo. Qualquer elemento da página com [data-drawer-open] passa a abri-lo — não é preciso ligar nada.

Ganchos

Gancho Papel
[data-drawer] raiz do painel
[data-drawer-open] qualquer gatilho na página
[data-drawer-close] botão de fechar dentro do painel
.drawer.is-open estado aberto

Variações


Gotchas


Histórico

Projeto Onde Data Diferenças
Liberta Wealth index.html e quem-somos.html, #drawer 2026-08 Origem. Classes .dl e .logo sem prefixo, .open em vez de .is-open, ids #burger/#drawerClose conhecidos pelo script, sem hidden (o menu fechado era tabulável), sem devolução de foco, borda #1e1e1e crua.

Normalizações aplicadas na extração: prefixo em tudo; .open.is-open; ids → [data-drawer-open] / [data-drawer-close], o que desacopla o gatilho do painel; adicionado hidden no estado fechado e devolução de foco ao gatilho; borda crua → --rule; escopo de tom explícito no elemento; adicionado prefers-reduced-motion.