Introdução: O Problema das Formas no CSS
Criar formas complexas no CSS sempre foi um desafio. O clássico clip-path permite cortar elementos em polígonos, círculos ou caminhos personalizados, mas tem uma grande desvantagem: não é possível adicionar bordas ou sombras que acompanhem a forma. Assim que você aplica clip-path, qualquer borda ou box-shadow é cortada, deixando você com formas sem vida.
Mas e se você pudesse dar forma a um elemento e manter suas decorações? É exatamente isso que a nova propriedade CSS border-shape promete. Ela é uma abordagem nova que dá forma ao elemento em si, não apenas o recorta, permitindo que bordas, outlines e sombras sigam a forma perfeitamente. Neste artigo, vamos mergulhar fundo no border-shape, explorar sua sintaxe e mostrar como ele pode transformar seu fluxo de trabalho CSS.

O que é border-shape?
A propriedade border-shape faz parte de um novo módulo CSS que visa tornar a criação de formas mais intuitiva. Ela aceita os mesmos valores que clip-path, incluindo a nova função shape(), mas em vez de recortar o elemento, ela dá forma ao elemento. Isso significa que propriedades decorativas como border, box-shadow e outline são aplicadas à forma, não ao retângulo.
Sintaxe Básica
.forma {
border: 8px solid red;
border-shape: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}
Sintaxe com Dois Valores para Efeitos Recortados
border-shape também suporta duas formas, permitindo criar efeitos de recorte ou apenas borda:
.recorte {
border: 8px solid red;
border-shape: inset(0) circle(50%);
}
Nesse caso, a borda é desenhada entre a forma externa (inset(0)) e a forma interna (circle()). O resultado é uma forma com um buraco no meio, perfeito para badges ou molduras criativas.
Por que não usar apenas clip-path?
Enquanto clip-path é ótimo para mascarar, ele falha quando você precisa de bordas ou sombras. Com border-shape, você tem o melhor dos dois mundos. Além disso, se você já está familiarizado com clip-path, a curva de aprendizado é mínima – basta trocar o nome da propriedade e ajustar seu código.
Aplicações no Mundo Real
- Formas apenas com borda: Crie formas contornadas para ícones, botões ou elementos decorativos.
- Formas recortadas: Adicione um buraco transparente a uma forma, útil para anéis de progresso ou sobreposições.
- Decorações expansivas: Estenda fundos ou bordas além do limite do elemento, um padrão comum para seções de largura total.
- Formas animadas: Anime os valores da forma ou a largura da borda para criar efeitos de hover envolventes.

Limitações e Considerações
Embora border-shape seja poderoso, é importante notar suas limitações atuais:
- Suporte do navegador: Até o momento, está disponível apenas em navegadores baseados em Chromium (Chrome, Edge). O suporte para Firefox e Safari está pendente.
- Comportamento do conteúdo: O conteúdo dentro do elemento ainda segue a forma retangular original. Você pode precisar usar
overflow: hiddenou ajustar o padding para evitar sobreposição. - Complexidade: Para formas muito complexas, a função
shape()pode ser extensa. No entanto, ferramentas como geradores online podem ajudar.
Dicas Avançadas
- Combine com
shape(): A funçãoshape()permite criar qualquer forma estilo SVG. Dominá-la desbloqueará todo o potencial doborder-shape. - Use geradores: Muitos geradores de formas CSS agora suportam a saída
border-shape, economizando tempo. - Experimente animações: Animar valores de
border-shapepode levar a efeitos impressionantes, como o efeito de blob saltitante mostrado no artigo original.

Conclusão: O Futuro das Formas CSS
border-shape é um divisor de águas para designers web. Ele resolve o problema antigo de adicionar bordas a formas e abre um mundo de possibilidades criativas. Embora ainda esteja no início, vale a pena explorar e experimentar para ficar à frente da curva.
Próximos Passos:
- Tente converter suas formas
clip-pathexistentes paraborder-shapee veja como elas se comportam. - Experimente a sintaxe de dois valores para criar efeitos de recorte.
- Salve a coleção de formas CSS para inspiração.
Se você está interessado no panorama CSS mais amplo, confira nosso artigo sobre funções CSS que funcionam sem argumentos para mais insights.