Degradês radiais
radial-gradient() mistura cores a partir de um ponto central para fora. Como todo degradê CSS, ele é uma imagem, então vai em background-image (ou no shorthand background):
A sintaxe completa é radial-gradient(shape size at position, color stops). Tudo o que vem antes das cores é opcional.
| Parte | Valores | Padrão |
|---|---|---|
| Formato | circle, ellipse | ellipse |
| Tamanho | closest-side, closest-corner, farthest-side, farthest-corner ou comprimentos | farthest-corner |
| Posição | at center, at top left, at 30% 70%, at 20px 40px | at center |
| Paradas de cor | Duas ou mais cores, cada uma com uma posição opcional |
A palavra-chave de tamanho decide onde a última cor é atingida: no lado mais próximo da caixa, no canto mais distante e assim por diante. Mude os valores aqui e veja o degradê ser redesenhado:
Experimente circle farthest-corner at 30% 50%, #f59e0b, #2563eb, ellipse at bottom, white, #16a34a e circle 40px, #f59e0b 99%, transparent (um ponto com borda nítida).
Degradês lineares
linear-gradient() mistura as cores ao longo de uma linha reta. Coloque uma direção ou um ângulo primeiro e depois as cores:
Os ângulos começam em 0deg apontando para cima e giram no sentido horário, então 90deg é to right e 180deg é o padrão to bottom. to right continua físico em páginas da direita para a esquerda; espelhe você mesmo se o degradê tiver que seguir a direção de leitura.
Paradas de cor e paradas bruscas
Cada cor pode ter uma posição. Sem posições, as cores são distribuídas por igual. Quando duas cores dividem a mesma posição, a mudança é instantânea, e é assim que se desenham listras, bandeiras e barras de progresso:
Uma parada também pode receber duas posições, #111827 12px 24px, o que desenha uma faixa sólida de 12px a 24px.
Degradês cônicos
conic-gradient() gira as cores em volta de um ponto central, como os ponteiros de um relógio. Com paradas bruscas, ele desenha um gráfico de pizza sem nenhuma imagem nem JavaScript:
Um gráfico desenhado em CSS é invisível para leitores de tela, então coloque os números em texto também.
Texto com degradê
Recorte um fundo em degradê no formato das letras e deixe o próprio texto transparente:
.gradient-text {
background: linear-gradient(90deg, #2563eb, #db2777);
-webkit-background-clip: text; /* older browsers need the prefix */
background-clip: text;
color: transparent;
}
Pense em uma cor color simples de reserva: se o recorte falhar, o texto some. Texto com degradê também tem contraste irregular, então use só em títulos grandes.
Degradês se empilham com imagens e outros degradês em uma única lista de background-image; a página de imagem de fundo trata de camadas, tamanho e posição.
Erros comuns
background-color: linear-gradient(...). Um degradê é uma imagem: usebackground-imageoubackground.- Graus na direção errada. 0deg aponta para cima, não para a direita.
90degvai para a direita. - Um degradê em um elemento sem altura. Nada aparece; dê a ele conteúdo ou um tamanho.
- Cores intermediárias sem vida. Misturar duas cores saturadas opostas, como vermelho e verde, passa por um cinza amarronzado em sRGB. Acrescente uma parada no meio ou misture em outro espaço de cor:
linear-gradient(in oklch, red, green). - Faixas visíveis em degradês grandes e sutis. Cores muito próximas em uma área grande mostram degraus; um pouco mais de contraste entre as paradas ajuda.
Perguntas frequentes
Como fazer um degradê radial no CSS?
Use background-image: radial-gradient(#93c5fd, #1e3a8a);. Acrescente um formato e uma posição antes das cores, como radial-gradient(circle at top left, #93c5fd, #1e3a8a).
Qual a diferença entre circle e ellipse no radial-gradient?
ellipse (o padrão) se estica nas proporções da caixa, então fica largo em uma caixa larga. circle mantém o degradê redondo, seja qual for o formato da caixa.
Como definir a direção de um linear-gradient?
Coloque uma direção ou um ângulo primeiro: linear-gradient(to right, red, blue) ou linear-gradient(45deg, red, blue). O padrão é to bottom (180deg); 0deg aponta para cima e os ângulos giram no sentido horário.
Como fazer listras nítidas em vez de uma transição suave?
Dê a duas cores a mesma posição de parada: linear-gradient(90deg, #2563eb 50%, #f59e0b 50%) troca de cor no meio, sem mistura. repeating-linear-gradient repete um padrão dessas paradas.
Dá para usar um degradê como background-color?
Não. Um degradê é uma imagem, então vai em background-image ou no shorthand background. background-color: linear-gradient(...) é inválido e ignorado.