Como criar uma estrela com CSS passo a passo

Matheus Budkewicz
horaDeCodar
Published in
4 min readSep 23, 2019

Neste post você vai aprender a criar um elemento HTML com formato de estrela com CSS puro, sem depender de imagens ou outras libs de terceiros.

Conheça nosso canal no YouTube, com cursos gratuitos de qualidade e vídeos semanais, para acessar o canal clique aqui!

Teoria da estrela com CSS

Primeiro cabe uma explicação rápida teórica sobre como executar a técnica

Porque melhor que um ctrl + c e ctrl + v é entender o conceito, pelo menos esta é a minha opinião 😀

Vamos primeiramente criar um elemento que vai ter um shape de duas pernas da estrela, ou pontas como você preferir

Depois criaremos a ponta superior com o pseudo elemento :before

Então criaremos com o :after uma estrutura semelhante ao elemento principal de HTML da estrela, só que ao contrario

Quer se especializar em HTML e CSS? Veja o nosso catálogo de cursos.

E assim concluímos a nossa estrela em CSS!

Estrela com CSS na prática

Então vamos começar criando nossa estrutura base de HTML e também o primeiro passo do CSS, descrito acima

<! — HTML →<div id=”star”></div>/* CSS */#star {margin: 100px;position: relative;display: block;width: 0px;height: 0px;border-right: 100px solid transparent;border-bottom: 70px solid #000;border-left: 100px solid transparent;transform: rotate(35deg);}

Então neste passo nós criamos um elemento com posição relativa e display block, e as técnicas das bordas transparentes para criar as pontas da estrela

obs: a margin tem o efeito de descolar o elemento das bordas do navegador, não faz parte da estrela

Além disso rotacionamos o elemento com rotate para que fique na posição correta, temos então este resultado:

Agora devemos adicionar o CSS para fazer a ponta superior da estrela, que é o seguinte código:

/* segunda parte do código do CSS */#star:before {border-bottom: 80px solid #000;border-left: 30px solid transparent;border-right: 30px solid transparent;position: absolute;height: 0;width: 0;top: -45px;left: -65px;display: block;content: ‘’;transform: rotate(-35deg);}

Adicionamos então o pseudo elemento :before, assim a ponta superior foi criada

Perceba que novamente utilizamos a técnica da borda transparente para criar triângulos

E o rotate serve para zerar o ângulo criado pelo elemento principal, se não este triângulo ficaria torto

Veja o resultado:

Nossa estrela está quase finalizada, precisamos criar a primeira parte da estrutura, só que espelhada

Faremos isso com o pseudo elemento :after, veja:

/* resto do código CSS */#star:after {position: absolute;display: block;top: 3px;left: -105px;width: 0px;height: 0px;border-right: 100px solid transparent;border-bottom: 70px solid #000;border-left: 100px solid transparent;transform: rotate(-70deg);content: ‘’;}

Praticamente igual a primeira parte, só que agora com outro rotate para podermos girar ao contrário o pseudo elemento

Além disso alguns px em top e left, para o posicionamento correto dele no formato da estrela

E então temos ela finalizada, veja:

Código completo da estrela com CSS

Para os ansiosos, segue o código final:

<! — HTML →<div id=”star”></div>/* CSS */#star {margin: 100px;position: relative;display: block;width: 0px;height: 0px;border-right: 100px solid transparent;border-bottom: 70px solid #000;border-left: 100px solid transparent;transform: rotate(35deg);}#star:before {border-bottom: 80px solid #000;border-left: 30px solid transparent;border-right: 30px solid transparent;position: absolute;height: 0;width: 0;top: -45px;left: -65px;display: block;content: ‘’;transform: rotate(-35deg);}#star:after {position: absolute;display: block;top: 3px;left: -105px;width: 0px;height: 0px;border-right: 100px solid transparent;border-bottom: 70px solid #000;border-left: 100px solid transparent;transform: rotate(-70deg);content: ‘’;}

Conclusão

Algumas linhas de código são necessárias para criar uma estrela com CSS, mas com certeza é uma prática melhor que colocar uma imagem, por exemplo

Além disso vai exercitar alguns conceitos importantes como: :after, :before e transform

E por hoje é isso, até o próximo post!

Confira também nosso curso de HTML e CSS gratuito no YouTube clicando aqui! Onde criamos um site do 0 até o resposivo

Referência: CSS Tricks

--

--