Menu

Degradê no CSS: radial-gradient, linear e conic gradient

Degradês CSS são imagens que o navegador desenha a partir de cores. Veja o radial-gradient (formato, tamanho, posição), o linear-gradient (direção e ângulos), o conic-gradient, as paradas de cor, paradas bruscas para listras, degradês repetidos e texto com degradê.

Esta página tem editores executáveis - edite, execute e veja a saída na hora.

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.

ParteValoresPadrão
Formatocircle, ellipseellipse
Tamanhoclosest-side, closest-corner, farthest-side, farthest-corner ou comprimentosfarthest-corner
Posiçãoat center, at top left, at 30% 70%, at 20px 40pxat center
Paradas de corDuas 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: use background-image ou background.
  • Graus na direção errada. 0deg aponta para cima, não para a direita. 90deg vai 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.

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR