BSARTech
Ofertas no e-mail

Anchor positioning nativo chega estável ao Chrome e à Web

A API que deixa CSS posicionar tooltips, menus e popovers ancorados a um elemento sem JavaScript virou baseline. Bibliotecas de posicionamento perdem boa parte da razão de existir.

Durante anos, posicionar um menu “colado” a um botão - que segue o botão no scroll, vira pro outro lado quando não cabe, e continua alinhado no resize - exigiu uma biblioteca de JS medindo retângulos a cada frame. Anchor positioning move isso pro CSS.

O que muda na prática

Você marca um elemento como âncora e outro como posicionado em relação a ela:

.botao { anchor-name: --menu-toggle; }

.menu {
  position: absolute;
  position-anchor: --menu-toggle;
  inset-block-start: anchor(bottom);
  inset-inline-start: anchor(start);
  position-try-fallbacks: flip-block, flip-inline;
}

O position-try-fallbacks é a parte boa: se o menu não couber embaixo, o browser tenta em cima; se não couber à direita, tenta à esquerda. Sem ResizeObserver, sem loop de medição.

O polyfill ainda importa

O repositório oddbird/css-anchor-positioning é o polyfill de referência - o mesmo time que ajudou a desenhar a spec. Ele cobre os navegadores que ainda não têm suporte nativo, com a mesma sintaxe, então dá pra adotar hoje e remover o polyfill depois sem tocar no CSS.

Para uma UI com muitos overlays, a economia de bundle e de trabalho por frame é real. Vale migrar os casos simples primeiro (tooltip, dropdown) e deixar os fluxos complexos por último.

Documentação no MDN

Bryan S A Rozario
Matéria assinada por

Bryan S A Rozario

Desenvolvedor e CEO da BSAR Tecnologia

Desenvolvedor de software e CEO da BSAR Tecnologia. Especialista em automação, hardware de alta performance e análise crítica de especificações técnicas.

Acompanhe o que é novo

Um resumo semanal do que mudou em tech. Sem spam.

A newsletter abre em breve. Volte para se inscrever.