0Pricing
HTML Academy · Aula

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

  1. DOM de sombra declarativo
  2. A API Popover
  3. O elemento selectlist
  4. Invocadores de interesse e atributo Command
← Voltar para HTML Academy