Voltar
Dois círculos, uma conexão e o border-shape

Dois círculos, uma conexão: como usar border-shape com anchor positioning e shape() no CSS

Aprofundamento CEVIU

Aprofundamento

O tutorial usa o anchor-name, parte da configuração de CSS anchor positioning, como base para ligar dois círculos arrastáveis com um conector que acompanha ambos. O texto sobre border-shape é a segunda parte de uma série: a lógica de ancoragem vem do primeiro artigo (seção "Linking the Circles"), e aqui só muda a criação das formas. Importante separar as coisas: o autor do tutorial descreve uma técnica de CSS, não um projeto ou biblioteca com repositório próprio. A fonte não identifica o autor nesta ficha.

A ideia central: border-shape remodela o elemento inteiro e preserva borda, sombra e outline, ao contrário do clip-path, que corta tudo. Com shape() desenha-se uma curva entre dois pontos, e a propriedade border define espessura e cor. Os problemas aparecem em sequência. A estrutura usa quatro elementos, um por posição possível, e só um fica visível porque os outros têm tamanho 0. Com border, todos ganham tamanho, então a solução é mover o border-shape para um pseudo-elemento e usar overflow: hidden no elemento principal. Depois vêm o alinhamento (border-box como segundo valor) e o overflow cortando parte da forma, resolvido com opacity via sign() e unidades 1cqw e 1cqh, ou com display combinado a if(). Segundo o autor, a versão com display é mais sólida porque remove o elemento de vez. O ajuste final usa inset: -12px (borda de 12px) com padding-box no lugar de border-box.

Na sequência, a forma vira uma curva espelhada com o comando smooth, e passa a ser condicional: abaixo de 200px de distância vertical ou horizontal, vira linha reta. A versão melhor mantém a mesma estrutura e só altera valores, o que permite transição suave. O outro pseudo-elemento pode desenhar as extremidades (círculos, setas com clip-path e shape(), variáveis CSS e funções matemáticas). Limitação real: só Chrome e Edge dão suporte completo, e as demos em Firefox e Safari provavelmente não aparecem corretas.

Por que isso importa

Para quem desenvolve interfaces com diagramas, conectores ou grafos, isso aponta para um caminho sem JavaScript para recalcular linhas a cada arraste. Como o suporte ainda se limita a Chrome e Edge, a leitura prática é tratar como experimento ou aprimoramento progressivo, não como base de produção ampla.

Perguntas frequentes

O que o border-shape faz de diferente do clip-path?

O border-shape remodela o elemento inteiro e mantém decorações como borda, sombra e outline. O clip-path também molda o elemento, mas corta tudo que fica fora da forma. Por isso, borda com clip-path costuma dar trabalho.

Em quais navegadores a técnica funciona?

Segundo o tutorial, só Chrome e Edge dão suporte completo às funcionalidades usadas. Em Firefox e Safari, as demos provavelmente não ficam corretas.

Para que serve o border-box como segundo valor do border-shape?

Ele muda a referência da linha. O ponto médio da espessura passa a começar no canto superior esquerdo do elemento, o que centraliza início e fim da curva nos círculos.

Como a curva vira linha reta conforme a distância?

Com if() e unidades de container query, o CSS compara a distância horizontal e vertical. Abaixo de 200px, a forma vira reta. Na versão melhor, só valores do shape() mudam, o que permite transição suave.

Fontes

Avalie este artigo:
Categoria
CEVIU Web Dev
Publicado
02 de novembro de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser