A API Popover
Crie dicas de ferramentas e caixas de diálogo com o atributo popover nativo.
A API Popover é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.
O Que a API de Sobreposições Faz
A API de sobreposições oferece ao HTML uma maneira nativa de criar sobreposições, caixas de diálogo, dicas de ferramenta e menus — sem JavaScript manual para posicionamento, gerenciamento do foco, dispensa ao clicar fora ou fechamento com Escape. O comportamento integrado corresponde ao que os usuários esperam.
O Atributo de Sobreposição
Adicione popover a qualquer elemento para transformá-lo em uma sobreposição. Por padrão, ele fica oculto. Um botão de acionamento com popovertarget="popover-id" o exibe ao ser clicado. O navegador gerencia automaticamente o estado de abertura e fechamento.
<button popovertarget="info">Show details</button>
<div id="info" popover>
<p>Here is some popover content.</p>
</div>Modos de Sobreposição
popover="auto", o padrão — fecha ao clicar fora ou pressionar Escape; apenas uma sobreposição automática pode ficar aberta por vez. popover="manual" — não fecha automaticamente; precisa ser fechada explicitamente por JS ou por outro acionador.
Botões de Acionamento
O atributo popovertarget vincula um botão a uma sobreposição por meio do id. O navegador gerencia o comportamento de alternância: clique no botão para exibir, clique novamente ou clique fora para dispensar. Não são necessários manipuladores de eventos para o uso básico.
Renderização na Camada Superior
As sobreposições são renderizadas na camada superior — acima de todo o restante do conteúdo, independentemente do índice ou do contexto de empilhamento. Isso elimina o problema clássico de um modal oculto atrás de um elemento pai que esconde o conteúdo excedente, um erro comum em sobreposições feitas manualmente.
Exibição e Ocultação Programáticas
JavaScript pode exibir ou ocultar sobreposições: element.showPopover(), element.hidePopover(), element.togglePopover(). A semântica é a mesma do acionador declarativo — a dispensa ao clicar fora continua funcionando no modo automático.
Evento toggle
As sobreposições disparam um evento toggle quando seu estado muda. O newState do evento é "open" ou "closed". Isso é útil para análises, gerenciamento do foco ou coordenação de outros elementos da interface com o estado aberto da sobreposição.
popoverEl.addEventListener("toggle", (e) => {
console.log("Popover is now", e.newState);
});Pseudoclasse do CSS
A pseudoclasse :popover-open corresponde às sobreposições em estado aberto. Estilize transições, opacidade e transformações com base nesse estado: [popover]:popover-open { opacity: 1; transform: none; }.
Posicionamento por Âncora
Combinadas com a API de posicionamento por âncora do CSS, as sobreposições podem ser posicionadas automaticamente em relação ao acionador — sem necessidade de JavaScript para o padrão clássico de uma dica de ferramenta próxima ao botão. Ambos os recursos fazem parte da mesma iniciativa moderna de primitivas de interface.
Acessibilidade
O navegador confina o foco em sobreposições modais, restaura o foco no acionador ao fechar e anuncia o estado aberto da sobreposição aos leitores de tela. Criar isso manualmente exige uma quantidade significativa de código repetitivo com ARIA; a API de sobreposições oferece tudo isso gratuitamente.
Suporte dos Navegadores
Chrome e Safari oferecem suporte à API de sobreposições; o Firefox adicionou suporte mais recentemente. Para obter compatibilidade mais ampla, existe uma pequena solução de compatibilidade. Projetos novos podem usar a implementação nativa e aprimorar progressivamente a experiência em navegadores mais antigos.
Substituindo Padrões Antigos
Muitas bibliotecas de modais em JS, como sweetalert e react-modal, existem principalmente para contornar o que a API de sobreposições agora faz nativamente. Planeje a migração: pacotes menores, padrões melhores e menos código para manter. A API de sobreposições é uma das maiores melhorias do HTML em anos.
Verificação de Conhecimento
O que popover="auto" faz que popover="manual" não faz?
Resumo
A API de sobreposições adiciona o atributo popover, além de showPopover/hidePopover/togglePopover em JS, vinculação de acionadores com popovertarget, renderização na camada superior acima de todos os contextos de empilhamento, a pseudoclasse :popover-open e eventos toggle. O modo automático fecha ao clicar fora; o modo manual exige uma ação explícita. Ela substitui a maioria das bibliotecas personalizadas de modais e dicas de ferramenta por uma primitiva HTML que gerencia corretamente acessibilidade, foco e posicionamento.
Perguntas Frequentes
A aula “A API Popover” é grátis?
Sim — o texto completo de “A API Popover” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.
O que vou aprender em “A API Popover”?
Crie dicas de ferramentas e caixas de diálogo com o atributo popover nativo. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar HTML Academy?
Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “A API Popover”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de HTML Academy?
Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- DOM de sombra declarativo
- A API Popover
- O elemento selectlist
- Invocadores de interesse e atributo Command