A versão curta
- Um gradiente cónico em CSS coloca as cores à volta de um ponto central, varrendo no sentido dos ponteiros do relógio a partir do topo, em vez de ao longo de uma linha ou para fora em anéis.
- As paragens de cor de um gradiente cónico usam ângulos ou percentagens de uma volta completa, por isso 25% e 90deg significam a mesma posição.
- As paragens duras transformam um gradiente cónico em fatias, o que é a forma mais rápida de desenhar um gráfico circular em CSS.
- A palavra-chave from roda o ponto onde a varredura começa e at move o ponto central.
- O repeating-conic-gradient() repete as suas paragens à volta do círculo e, combinado com background-size, desenha tabuleiros de xadrez e explosões de raios.
Nesta página
Um gradiente cónico em CSS varre a cor à volta de um ponto central, como o ponteiro de um relógio varre o mostrador. Enquanto um gradiente linear muda ao longo de uma linha e um gradiente radial muda para fora a partir do centro, o conic-gradient() muda com o ângulo. Começa no topo, corre no sentido dos ponteiros do relógio e usa-se onde quer que o CSS aceite uma imagem. Isso torna-o a ferramenta natural para círculos cromáticos, gráficos circulares, anéis de carregamento e os realces angulares do metal escovado.
conic-gradient(#ef4444, #eab308, #22c55e, #06b6d4, #3b82f6, #a855f7, #ef4444)Se estás a escolher entre tipos de gradiente para um design em vez de aprender a sintaxe, os tipos de gradientes e o guia de design sobre gradientes cónicos são melhores pontos de partida.
A sintaxe do conic-gradient()
/* start angle centre stops */
conic-gradient(from 90deg at 30% 50%, #0ea5e9, #6366f1, #0ea5e9)
/* stops as angles or as percentages of the turn */
conic-gradient(#f59e0b 0deg 90deg, #1e293b 90deg)
conic-gradient(#f59e0b 0% 25%, #1e293b 25%)| Parte | Exemplo | Predefinição |
|---|---|---|
| Ângulo inicial | from 45deg | from 0deg, a direito para cima |
| Centro | at 30% 50%, at top left | at center |
| Interpolação | in oklch, in hsl longer hue | sRGB para cores hexadecimais |
| Posição da paragem | 90deg, 0.25turn, 25% | distribuídas por igual pela volta |
Os ângulos correm no sentido dos ponteiros do relógio a partir do topo: 90deg são as três horas, 180deg as seis. A definição completa está na página do conic-gradient() da MDN. O suporte nos navegadores é universal há anos no Chrome, Edge, Safari e Firefox atuais, por isso não são precisos prefixos.
Rodar e mover a varredura
O from roda o gradiente todo, o que dá jeito quando a junção entre a primeira e a última cor ficaria de outro modo no topo. O at move o centro. Movê-lo para um canto transforma o círculo num leque de raios, e movê-lo para fora da caixa dá uma lavagem angular suave que não se parece nada com um círculo.
Gráficos circulares e em anel em CSS
Dá a cada fatia um início e um fim, e deixa cada uma começar onde a anterior acabou. Escrever 0 como segunda posição da paragem é um atalho: uma posição menor do que a anterior é limitada a ela, por isso a nova cor começa exatamente onde a última acabou. Arredonda o elemento com border-radius: 50% e abre um buraco com uma máscara radial para transformar o gráfico circular num gráfico em anel.
.pie {
width: 12rem;
aspect-ratio: 1;
border-radius: 50%;
background: conic-gradient(
#6366f1 0 40%, /* 40% */
#22d3ee 0 65%, /* 25% */
#f59e0b 0 85%, /* 20% */
#e2e8f0 0 /* the rest, 15% */
);
}
.donut {
/* same background as .pie, then a hole */
mask: radial-gradient(farthest-side, transparent 58%, #000 59%);
}conic-gradient(#6366f1 0 40%, #22d3ee 0 65%, #f59e0b 0 85%, #e2e8f0 0)As arestas duras nos gradientes cónicos podem parecer ligeiramente serrilhadas ao longo das linhas das fatias nalguns navegadores. Se isso te incomodar, deixa uma fração de grau entre as paragens, como #6366f1 0 39.8%, #22d3ee 40.2% 65%, para que a aresta ganhe um fio de mistura.
Círculos cromáticos com interpolação de matiz
Um círculo cromático costuma precisar de seis ou sete paragens. Com métodos de interpolação, podes pedir ao navegador que percorra ele próprio o círculo dos matizes. O longer hue faz o caminho mais longo entre dois matizes e, quando as duas paragens são a mesma cor, o caminho mais longo é o círculo todo, por isso dois vermelhos dão um espetro completo.
.wheel {
border-radius: 50%;
background: conic-gradient(in hsl longer hue, #ff0000, #ff0000);
}Brilho metálico e realces
O metal escovado e os discos polidos apanham a luz em faixas angulares, que é exatamente o que um gradiente cónico desenha. Alterna alguns cinzentos claros e escuros, com espaçamento irregular, e a superfície lê-se como metal. Sobreposto com pouca opacidade a uma cor, o mesmo truque acrescenta brilho a botões e cartões; vê os botões com gradiente para um exemplo trabalhado.
Gradientes cónicos repetidos para padrões
O repeating-conic-gradient() repete a sua lista de paragens ao longo da volta. Paragens curtas e de arestas duras dão explosões de raios. Em par com background-size, um padrão de quartos a duas cores repete-se num tabuleiro de xadrez, um padrão que de outro modo é difícil de desenhar com gradientes. Mais nos padrões em CSS.
.checkerboard {
background: repeating-conic-gradient(#e2e8f0 0 25%, #ffffff 0 50%) 0 0 / 32px 32px;
}Perguntas frequentes
O que é um gradiente cónico em CSS?
É um gradiente cujas cores mudam com o ângulo à volta de um ponto central, começando no topo e movendo-se no sentido dos ponteiros do relógio, escrito com conic-gradient().
Como faço um gráfico circular com CSS?
Usa paragens duras num gradiente cónico, como conic-gradient(#6366f1 0 40%, #22d3ee 0 65%, #e2e8f0 0), num elemento com border-radius: 50%. Põe também os valores em texto para os leitores de ecrã.
Como rodo um gradiente cónico?
Acrescenta from e um ângulo como primeiro argumento, por exemplo conic-gradient(from 90deg, ...). A varredura passa então a começar às três horas em vez de no topo.
Porque é que as arestas do meu gradiente cónico estão serrilhadas?
As paragens duras não têm mistura, e alguns navegadores desenham o limite sem suavização. Deixar uma fração de grau entre paragens vizinhas suaviza-o.
Os gradientes cónicos funcionam em todos os navegadores?
Sim, as versões atuais do Chrome, Edge, Safari e Firefox suportam conic-gradient() e repeating-conic-gradient() sem prefixos.
Escrito pela Gradiently
A equipa por trás da Gradiently, uma ferramenta de design construída em torno dos Marks: gradientes vivos que fazem tudo o que crias parecer teu.
Ver o nosso perfil


