CSS e web

Gradientes no Tailwind: classes lineares, radiais e cónicas na v4

O Tailwind v4 mudou o nome das suas classes de gradiente, juntou ângulos, gradientes radiais e cónicos e passou a mistura por omissão para oklab. Aqui tens o sistema inteiro, com o CSS que cada classe produz.

GradientlyConta Gradiently verificada··5 min de leitura
Capa: Shining Press · GR·0R4X·EH

A versão curta

  • No Tailwind CSS v4, os gradientes lineares usam bg-linear-to-* para direções e bg-linear-<angle> para ângulos, em substituição dos nomes bg-gradient-to-* da v3.
  • As cores juntam-se com as classes from-, via- e to-*, e as suas posições com classes de percentagem como from-10% e to-90%.
  • O Tailwind v4 junta as classes bg-radial e bg-conic, com valores arbitrários para posições, como bg-radial-[at_25%_25%].
  • Os gradientes do Tailwind v4 misturam em oklab por omissão, e modificadores como /oklch, /srgb e /longer mudam a interpolação.
  • Qualquer gradiente que o Tailwind não consiga exprimir com classes pode escrever-se como valor arbitrário, por exemplo bg-linear-[25deg,red_5%,yellow_60%].
Nesta página

Um gradiente no Tailwind constrói-se com dois tipos de classe: uma que define o tipo e a direção do gradiente, como bg-linear-to-r, e classes de paragens de cor que o preenchem, como from-indigo-500 to-pink-500. No Tailwind CSS v4, as classes de direção passaram de bg-gradient-to-* para bg-linear-to-*, ângulos como bg-linear-45 tornaram-se possíveis sem CSS à medida, e os gradientes radiais e cónicos chegaram como classes de pleno direito.

html
<div class="h-32 rounded-2xl bg-linear-to-r from-indigo-500 to-pink-500"></div>
Um gradiente da esquerda para a direita, do índigo ao rosa. Sem CSS à medida.
from-indigo-500 to-pink-500linear-gradient(to right in oklab, oklch(58.5% 0.233 277.117), oklch(65.6% 0.241 354.308))
O que essa lista de classes desenha: to right in oklab, com o indigo-500 e o pink-500 por omissão do Tailwind.

Tudo aqui segue a documentação oficial de background-image do Tailwind. Se quiseres saber o que o CSS gerado está a fazer, o guia de gradientes lineares em CSS explica a função que está por baixo.

Gradientes lineares: direções e ângulos

bg-linear-to-t, -tr, -r, -br, -b, -bl, -l e -tl apontam o gradiente para um lado ou um canto. Para qualquer outra direção, usa um ângulo: bg-linear-45 ou bg-linear-160. Põe um sinal de menos à frente para ângulos negativos, como em -bg-linear-45.

ClasseDireção geradaO que substitui na v3
bg-linear-to-rto right in oklabbg-gradient-to-r
bg-linear-to-brto bottom right in oklabbg-gradient-to-br
bg-linear-4545deg in oklabum valor arbitrário
bg-linear-to-b/srgbto bottom in srgba mistura por omissão da v3
bg-(image:--brand-gradient)var(--brand-gradient) como imagem inteirabg-[image:var(--x)]
As classes de direção do Tailwind v4 e o CSS que produzem.

Por baixo, uma classe de direção define uma variável chamada --tw-gradient-position e escreve background-image: linear-gradient(var(--tw-gradient-stops)), enquanto as classes de cor preenchem --tw-gradient-stops. A parte in oklab é acrescentada dentro de uma verificação @supports, por isso os navegadores sem suporte de interpolação continuam a receber um gradiente sRGB que funciona. Essa separação é também a razão pela qual a direção e as cores podem mudar de forma independente, por exemplo só a cor final em hover ou em modo escuro com dark:to-violet-900.

Paragens de cor: from, via e to

from-* define a cor inicial, to-* a cor final e via-* junta uma cor no meio. Todas as cores do teu tema funcionam, incluindo modificadores de opacidade como from-indigo-500/60. Junta uma classe de percentagem depois de uma cor para mover a sua paragem: from-10%, via-30%, to-90%. As posições arbitrárias também funcionam, como em from-[21.5%].

html
<!-- three stops, evenly spaced -->
<div class="bg-linear-to-r from-indigo-500 via-sky-500 to-emerald-500"></div>

<!-- the same stops, pulled towards the edges -->
<div class="bg-linear-to-r from-indigo-500 from-10% via-sky-500 via-30% to-emerald-500 to-90%"></div>
As posições mudam o sítio onde cada cor é plenamente ela própria.
As duas listas de classes acima, desenhadas.

Gradientes radiais e cónicos no Tailwind v4

bg-radial desenha um gradiente radial a partir do centro, e as mesmas classes de paragens de cor preenchem-no. Move o centro com um valor arbitrário, em que os sublinhados fazem de espaços: bg-radial-[at_25%_25%]. bg-conic varre as cores em torno do centro, e bg-conic-180 roda o ângulo inicial.

html
<div class="size-24 rounded-full bg-radial-[at_25%_25%] from-white to-zinc-900 to-75%"></div>

<div class="size-24 rounded-full bg-conic-180 from-indigo-600 via-indigo-50 to-indigo-600"></div>
Uma esfera iluminada e um disco metálico, cada um numa linha.
Representações aproximadas dos dois elementos acima. Para as funções de base, vê gradientes radiais em CSS e gradientes cónicos em CSS.

Modificadores de interpolação: oklab, oklch e direção do tom

O Tailwind v4 mistura os gradientes em oklab por omissão, o que já evita a maioria dos meios cinzentos. Junta um modificador depois da direção para o mudar: /srgb corresponde aos designs mais antigos, /oklch mantém a saturação alta entre tons distantes, e /longer, /shorter, /increasing e /decreasing escolhem a direção do tom. O raciocínio está em interpolação OKLCH em gradientes CSS.

from-indigo-500 to-teal-400 com quatro definições de interpolação. A última dá a volta longa ao círculo dos tons.

Gradientes à medida e cores da marca

Para as cores da marca, junta-as ao teu tema e ficam disponíveis em todas as classes de cor, incluindo from-*, via-* e to-*. Para um gradiente que as classes não consigam exprimir, como quatro ou mais paragens ou um ângulo invulgar, usa um valor arbitrário com sublinhados no lugar dos espaços, ou aponta uma classe para uma propriedade personalizada.

css
@import "tailwindcss";

@theme {
  --color-dusk: oklch(28% 0.09 285);
  --color-ember: oklch(70% 0.19 40);
}

:root {
  --brand-gradient: linear-gradient(135deg in oklch, var(--color-dusk), var(--color-ember));
}
Cores de tema para as classes de paragens e um gradiente completo guardado numa propriedade personalizada.
html
<!-- brand colours through the stop utilities -->
<div class="bg-linear-135 from-dusk to-ember"></div>

<!-- the whole gradient from a custom property -->
<div class="bg-(image:--brand-gradient)"></div>

<!-- a one-off arbitrary gradient -->
<div class="bg-linear-[25deg,red_5%,yellow_60%,lime_90%,teal]"></div>
Três formas de ir além da paleta por omissão.

Guardar o gradiente da marca numa variável significa que é escrito uma vez e usado em todo o lado, e é isso que torna um gradiente reconhecível. Branding com gradientes explica porque é que essa coerência importa mais do que as cores em si.

Texto com gradiente e estados hover no Tailwind

O texto com gradiente usa as mesmas classes mais bg-clip-text e text-transparent. As variantes funcionam nas classes de paragens, por isso hover:from-pink-500 muda uma cor em hover. Os gradientes em si não fazem transição, por isso, para um hover suave, esbate a opacidade de uma camada sobreposta ou move bg-position em vez de trocares paragens.

html
<h1 class="bg-linear-to-r from-violet-600 to-rose-600 bg-clip-text text-5xl font-bold text-transparent">
  Launch day
</h1>

<a class="bg-linear-to-r from-violet-600 to-rose-600 bg-size-[200%_100%] bg-left px-5 py-3 text-white transition-[background-position] duration-500 hover:bg-right">
  Get started
</a>
Texto com gradiente e um botão cujo gradiente desliza em hover.

Evita

  • Copiar bg-gradient-to-r da v3 para projetos novos em v4
  • Listas longas de classes repetidas em todos os cartões
  • /srgb em misturas entre tons distantes
  • Trocar paragens em hover e esperar uma passagem suave

Faz

  • Usa bg-linear-to-* e bg-linear-<angle>
  • Cores de tema ou uma propriedade personalizada para gradientes da marca
  • Mantém o oklab por omissão, ou experimenta /oklch para misturas vivas
  • Anima a posição ou a opacidade de uma camada sobreposta

Há mais sobre a técnica de texto, incluindo contraste e alternativas, em texto com gradiente em CSS.

Perguntas frequentes

Como faço um gradiente no Tailwind CSS?

Combina uma classe de direção com paragens de cor, por exemplo bg-linear-to-r from-indigo-500 to-pink-500. Junta via-* para uma cor no meio.

O que substituiu bg-gradient-to-r no Tailwind v4?

bg-linear-to-r. Os nomes da v4 são bg-linear-to-* para direções e bg-linear-<angle> para ângulos como bg-linear-45.

O Tailwind suporta gradientes radiais e cónicos?

Sim, a partir da v4: bg-radial e bg-conic, com posições arbitrárias como bg-radial-[at_25%_25%] e ângulos como bg-conic-180.

Como faço texto com gradiente no Tailwind?

Junta bg-clip-text e text-transparent a um elemento com classes de gradiente, como bg-linear-to-r from-violet-600 to-rose-600.

Porque é que os meus gradientes do Tailwind v4 ficam diferentes dos da v3?

A v4 mistura em oklab por omissão e a sua paleta por omissão está definida em oklch. Junta /srgb à classe de direção para teres a mistura antiga.

Partilhar este guia

Escrito pela GradientlyConta Gradiently verificada

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