CSS e web

Gradiente no Tailwind: classes linear, radial e cônica na v4

O Tailwind v4 renomeou seus utilitários de gradiente, adicionou ângulos e gradientes radiais e cônicos e mudou a mistura padrão para oklab. Aqui está o sistema inteiro, com o CSS que cada classe gera.

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

Resumindo

  • No Tailwind CSS v4, os gradientes lineares usam bg-linear-to-* para direções e bg-linear-<angle> para ângulos, substituindo os nomes bg-gradient-to-* da v3.
  • As cores são adicionadas com os utilitários from-, via- e to-*, e suas posições, com utilitários de porcentagem como from-10% e to-90%.
  • O Tailwind v4 adiciona os utilitários bg-radial e bg-conic, com valores arbitrários para posições como bg-radial-[at_25%_25%].
  • Os gradientes do Tailwind v4 são misturados em oklab por padrão, e modificadores como /oklch, /srgb e /longer mudam a interpolação.
  • Qualquer gradiente que o Tailwind não consegue expressar com utilitários pode ser escrito como um valor arbitrário, como bg-linear-[25deg,red_5%,yellow_60%].
Nesta página

Um gradiente no Tailwind é feito de dois tipos de utilitário: um que define o tipo e a direção do gradiente, como bg-linear-to-r, e utilitários de parada de cor que o preenchem, como from-indigo-500 to-pink-500. No Tailwind CSS v4, os utilitários de direção foram renomeados de bg-gradient-to-* para bg-linear-to-*, ângulos como bg-linear-45 passaram a ser possíveis sem CSS próprio, e os gradientes radiais e cônicos chegaram como utilitários nativos.

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, de índigo a rosa. Sem CSS próprio.
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 renderiza: to right in oklab, com o indigo-500 e o pink-500 padrão do Tailwind.

Tudo aqui segue a documentação oficial de background-image do Tailwind. Se você quer saber o que o CSS gerado está fazendo, o guia de gradiente linear 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, use um ângulo: bg-linear-45 ou bg-linear-160. Coloque um sinal de menos na frente para ângulos negativos, como em -bg-linear-45.

ClasseDireção geradaSubstitui 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 padrão da v3
bg-(image:--brand-gradient)var(--brand-gradient) como a imagem inteirabg-[image:var(--x)]
Utilitários de direção no Tailwind v4 e o CSS que eles geram.

Por baixo dos panos, um utilitário de direção define uma variável chamada --tw-gradient-position e escreve background-image: linear-gradient(var(--tw-gradient-stops)), enquanto os utilitários de cor preenchem --tw-gradient-stops. A parte in oklab é adicionada dentro de uma verificação @supports, então navegadores sem suporte a interpolação ainda recebem um gradiente sRGB que funciona. Essa separação também é o motivo de direção e cores poderem mudar de forma independente, por exemplo só a cor final no hover ou no modo escuro com dark:to-violet-900.

Paradas de cor: from, via e to

from-* define a cor inicial, to-* a cor final, e via-* adiciona uma cor no meio. Todas as cores do seu tema funcionam, inclusive com modificadores de opacidade como from-indigo-500/60. Adicione um utilitário de porcentagem depois de uma cor para mover a parada: from-10%, via-30%, to-90%. 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 onde cada cor aparece por inteiro.
As duas listas de classes acima, renderizadas.

Gradientes radiais e cônicos no Tailwind v4

bg-radial desenha um gradiente radial a partir do centro, e os mesmos utilitários de parada de cor o preenchem. Mova o centro com um valor arbitrário, em que os sublinhados fazem o papel dos espaços: bg-radial-[at_25%_25%]. bg-conic distribui as cores em volta do centro, e bg-conic-180 gira 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 em uma linha.
Renderizações aproximadas dos dois elementos acima. Para as funções por baixo, veja gradientes radiais em CSS e gradientes cônicos em CSS.

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

O Tailwind v4 mistura os gradientes em oklab por padrão, o que já evita a maioria dos meios acinzentados. Adicione um modificador depois da direção para mudar isso: /srgb reproduz designs mais antigos, /oklch mantém a saturação alta entre matizes distantes, e /longer, /shorter, /increasing e /decreasing escolhem a direção do matiz. A explicação está em interpolação OKLCH em gradientes CSS.

from-indigo-500 to-teal-400 com quatro configurações de interpolação. A última dá a volta mais longa pelo círculo de matizes.

Gradientes próprios e cores da marca

Para as cores da marca, adicione-as ao seu tema e elas ficam disponíveis em todos os utilitários de cor, incluindo from-*, via-* e to-*. Para um gradiente que os utilitários não conseguem expressar, como quatro ou mais paradas ou um ângulo incomum, use um valor arbitrário com sublinhados no lugar dos espaços, ou aponte um utilitário 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 do tema para os utilitários de parada e um gradiente completo guardado em uma 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 maneiras de ir além da paleta padrão.

Manter o gradiente da marca em uma única variável significa que ele é escrito uma vez e usado em todo lugar, e é isso que torna um gradiente reconhecível. Branding com gradientes explica por que essa consistência importa mais do que as cores em si.

Texto gradiente e estados de hover no Tailwind

O texto gradiente usa as mesmas classes mais bg-clip-text e text-transparent. As variantes funcionam nos utilitários de parada, então hover:from-pink-500 muda uma cor no hover. Os gradientes em si não fazem transição, então, para um hover suave, esmaeça a opacidade de uma sobreposição ou mova bg-position em vez de trocar as paradas.

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 gradiente e um botão cujo gradiente desliza no hover.

Evite

  • Copiar bg-gradient-to-r da v3 para projetos novos em v4
  • Listas longas de classes repetidas em cada card
  • /srgb em misturas entre matizes distantes
  • Trocar paradas no hover e esperar um fade suave

Faça

  • Use bg-linear-to-* e bg-linear-<angle>
  • Cores do tema ou uma propriedade personalizada para gradientes da marca
  • Mantenha o oklab padrão ou experimente /oklch para misturas vivas
  • Anime a posição ou a opacidade de uma sobreposição

Mais sobre a técnica de texto, incluindo contraste e fallbacks, em texto com gradiente em CSS.

Perguntas frequentes

Como faço um gradiente no Tailwind CSS?

Combine um utilitário de direção com paradas de cor, por exemplo bg-linear-to-r from-indigo-500 to-pink-500. Adicione 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 tem 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 gradiente no Tailwind?

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

Por que meus gradientes no Tailwind v4 estão diferentes da v3?

A v4 mistura em oklab por padrão, e sua paleta padrão é definida em oklch. Adicione /srgb ao utilitário de direção para ter a mistura antiga.

Compartilhar este guia

Escrito pelo GradientlyConta verificada do Gradiently

A equipe por trás do Gradiently, uma ferramenta de design criada em torno dos Marks: gradientes vivos que fazem tudo o que você cria ter a sua cara.

Ver nosso perfil