Guias de Ferramentas

Gerador de Tons do Tailwind: Escalas de Cores Personalizadas Simplificadas

8 min de leitura

O Tailwind CSS vem com uma paleta de cores cuidadosamente elaborada: 22 matizes, cada uma com 11 tons de 50 a 950. Ela cobre a grande maioria dos casos de uso — mas no momento em que você precisa usar o azul específico da sua marca, ou um roxo que corresponda exatamente ao logotipo da sua empresa, a paleta integrada não é suficiente.

É aqui que um gerador de tons se torna essencial. Você fornece uma cor — seu primário de marca, um destaque, uma cor semântica — e o gerador gera uma escala completa de 50 a 950, formatada exatamente como um objeto de configuração do Tailwind CSS, pronta para inserir no seu tailwind.config.js.

Este guia explica como o sistema de tons do Tailwind funciona, como gerar escalas personalizadas usando o Gerador de Tons do ColorFYI e como configurar o Tailwind para usá-las efetivamente, incluindo o modo escuro.


Como o Sistema de Tons do Tailwind Funciona

A escala de cores do Tailwind é construída em torno de um sistema numérico de 11 passos:

50  100  200  300  400  500  600  700  800  900  950

Cada passo representa um nível de luminosidade perceptual:

  • 50 é o mais claro — quase branco, apenas um toque de cor
  • 500 é a cor "pura" — totalmente saturada, luminosidade média
  • 950 é o mais escuro — quase preto, tinte profundo

Os números não são arbitrários. Eles são espaçados para criar saltos perceptuais de luminosidade aproximadamente uniformes. A diferença entre 100 e 200 parece para o seu olho a mesma que a diferença entre 700 e 800.

Por que 11 passos?

11 passos fornecem granularidade suficiente para cobrir todos os casos de uso comuns em uma UI:

Tom Uso Principal
50 Fundos de página e seção, tintes sutis
100 Fundos de hover para elementos ghost/outline
200 Fundos de estado desabilitado, bordas sutis
300 Bordas decorativas, divisores sutis
400 Texto de placeholder, cor de ícone secundário
500 A cor base — botões preenchidos, links
600 Estado de hover para elementos interativos preenchidos
700 Estado ativo/pressionado, texto acessível em fundos claros
800 Texto escuro em fundos coloridos, texto de ênfase
900 Títulos, texto de alto contraste
950 Tintes quase pretos, texto de contraste máximo

Esse sistema significa que cada cor do Tailwind funciona como um mini sistema de design por conta própria. Se você precisa de texto branco legível em um botão preenchido, use -600. Se você precisa de um tinte de fundo quase imperceptível, use -50.


A Escala de 50 a 950 em Detalhe

Vejamos um exemplo concreto usando a escala violet integrada do Tailwind:

Tom Hex Luminosidade RGB (L em OKLCH)
violet-50 #F5F3FF ~98%
violet-100 #EDE9FE ~95%
violet-200 #DDD6FE ~89%
violet-300 #C4B5FD ~80%
violet-400 #A78BFA ~70%
violet-500 #8B5CF6 ~57%
violet-600 #7C3AED ~48%
violet-700 #6D28D9 ~40%
violet-800 #5B21B6 ~33%
violet-900 #4C1D95 ~26%
violet-950 #2E1065 ~15%

Observe que a cor base violet-500 fica em aproximadamente 57% de luminosidade — não exatamente o meio de 0–100%, mas posicionada ligeiramente acima do ponto médio para manter a escala visualmente equilibrada. Tons muito escuros se comprimem em uma faixa de luminosidade menor (15–40%) porque o olho humano distingue tons escuros com menos precisão do que tons claros.


Gerando Escalas de Cores Personalizadas

Usando o Gerador de Tons do ColorFYI

O Gerador de Tons recebe qualquer código hex e gera uma escala completa formatada para o Tailwind. Este é o fluxo de trabalho:

Passo 1: Insira a cor da sua marca no campo de entrada.

Por exemplo, sua marca usa o azul exato #0057B8 — um azul médio-escuro usado por muitas marcas corporativas.

Passo 2: O gerador calcula todos os 11 tons usando um algoritmo perceptualmente uniforme, mostrando o código hex e uma prévia visual de cada passo.

Passo 3: Copie o bloco de configuração do Tailwind gerado.

O resultado para #0057B8 se parece aproximadamente com este:

brand: {
  50:  '#E6F0FF',
  100: '#CCE1FF',
  200: '#99C3FF',
  300: '#66A4FF',
  400: '#3386FF',
  500: '#0057B8',  // Sua cor de entrada, ancorada em 500
  600: '#0049A3',
  700: '#003B8A',
  800: '#002D6B',
  900: '#001F4D',
  950: '#001230',
},

O que significa "ancorar"

O gerador de tons ancora sua cor de entrada na posição 500 por padrão. Isso significa que a cor de entrada se torna o centro da escala — cinco tons mais claros são gerados acima dela e cinco tons mais escuros abaixo.

Alguns geradores permitem ancoragem em uma posição diferente. Se a cor da sua marca já é um marinho muito escuro, ancorá-la em 700 ou 800 pode produzir um intervalo mais útil. Se for um pastel muito claro, ancorá-la em 200 ou 300 faz mais sentido. O Gerador de Tons permite ajustar o ponto de ancoragem.

Por que a uniformidade perceptual importa

Um gerador de tons ingênuo pode simplesmente diminuir o valor L do HSL em incrementos iguais: 95%, 85%, 75%, 65%, 55%, 45%, 35%, 25%, 15%. A matemática é simples, mas o resultado visual é irregular. As transições na extremidade clara da escala parecem mais espaçadas do que na extremidade escura, porque a visão humana é mais sensível às diferenças de luminosidade nos tons médios.

O gerador do ColorFYI usa interpolação de luminosidade OKLCH, que produz passos que parecem visualmente equidistantes — correspondendo à qualidade perceptual das escalas padrão elaboradas à mão do Tailwind.


Configurando o tailwind.config.js

Estendendo com uma cor personalizada

A maneira mais segura de adicionar uma escala de cores personalizada é estender os padrões do Tailwind em vez de substituí-los:

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: {
          50:  '#E6F0FF',
          100: '#CCE1FF',
          200: '#99C3FF',
          300: '#66A4FF',
          400: '#3386FF',
          500: '#0057B8',
          600: '#0049A3',
          700: '#003B8A',
          800: '#002D6B',
          900: '#001F4D',
          950: '#001230',
        },
      },
    },
  },
}

Depois de adicionar isso, você pode usar classes como bg-brand-500, text-brand-700, border-brand-200 e hover:bg-brand-600 em todo o seu projeto.

Substituindo uma cor integrada

Se você quiser substituir completamente uma cor padrão (por exemplo, substituir o blue do Tailwind pelo seu azul de marca):

module.exports = {
  theme: {
    extend: {
      colors: {
        blue: {
          50:  '#E6F0FF',
          // ... até 950
        },
      },
    },
  },
}

Classes como bg-blue-500, text-blue-700 agora usarão sua escala personalizada em vez do azul integrado do Tailwind.

Usando variáveis CSS para temas em tempo de execução

Para aplicações que precisam de troca de tema em tempo de execução (por exemplo, produtos de marca própria, temas personalizáveis pelo usuário), defina a escala como propriedades CSS personalizadas:

/* globals.css */
:root {
  --color-brand-50:  #E6F0FF;
  --color-brand-100: #CCE1FF;
  --color-brand-200: #99C3FF;
  --color-brand-300: #66A4FF;
  --color-brand-400: #3386FF;
  --color-brand-500: #0057B8;
  --color-brand-600: #0049A3;
  --color-brand-700: #003B8A;
  --color-brand-800: #002D6B;
  --color-brand-900: #001F4D;
  --color-brand-950: #001230;
}
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: {
          50:  'var(--color-brand-50)',
          100: 'var(--color-brand-100)',
          // ... até 950
        },
      },
    },
  },
}

Agora alterar as variáveis CSS em tempo de execução (via JavaScript) recolore imediatamente toda a sua UI.

Configuração do Tailwind v4

O Tailwind CSS v4 move toda a configuração para o CSS usando @theme:

@import "tailwindcss";

@theme {
  --color-brand-50:  #E6F0FF;
  --color-brand-100: #CCE1FF;
  --color-brand-200: #99C3FF;
  --color-brand-300: #66A4FF;
  --color-brand-400: #3386FF;
  --color-brand-500: #0057B8;
  --color-brand-600: #0049A3;
  --color-brand-700: #003B8A;
  --color-brand-800: #002D6B;
  --color-brand-900: #001F4D;
  --color-brand-950: #001230;
}

Nenhum tailwind.config.js necessário. As variáveis --color-brand-* ficam automaticamente disponíveis como classes utilitárias (bg-brand-500, text-brand-700, etc.).


Tons para Modo Escuro

O modo escuro não inverte sua escala de cores — ele inverte quais tons você usa. A mesma escala funciona tanto para modo claro quanto para modo escuro; você apenas troca qual extremidade da escala cuida dos fundos e qual cuida do texto.

O princípio de inversão

Papel Modo Claro Modo Escuro
Fundo da página brand-50 brand-950
Fundo de superfície/cartão brand-100 brand-900
Borda sutil brand-200 brand-800
Texto apagado brand-400 brand-600
Texto do corpo brand-700 brand-300
Texto de título brand-900 brand-100
Botão preenchido brand-500 brand-500
Hover do botão brand-600 brand-400

A cor do botão preenchido (brand-500) permanece a mesma em ambos os modos — é o ponto de ancoragem. Tudo ao redor muda: fundos claros se tornam fundos escuros, texto escuro se torna texto claro.

Implementando com o modo escuro do Tailwind

<!-- Fundo: light-50 no claro, dark-950 no escuro -->
<div class="bg-brand-50 dark:bg-brand-950">

  <!-- Cartão: light-100 no claro, dark-900 no escuro -->
  <div class="bg-brand-100 dark:bg-brand-900 rounded-lg p-6">

    <!-- Título: texto dark-900 no claro, light-100 no escuro -->
    <h2 class="text-brand-900 dark:text-brand-100">Título do Cartão</h2>

    <!-- Texto do corpo: dark-700 no claro, light-300 no escuro -->
    <p class="text-brand-700 dark:text-brand-300">Conteúdo do cartão vai aqui.</p>

    <!-- Botão: sempre brand-500, o hover muda de direção por modo -->
    <button class="bg-brand-500 hover:bg-brand-600 dark:hover:bg-brand-400 text-white">
      Ação
    </button>

  </div>
</div>

Gerando uma paleta escura separada

Para alguns sistemas de design, especialmente aqueles com separação visual significativa entre o modo claro e escuro, pode ser desejável gerar uma escala "escura" separada. Isso pode ser:

  • Uma versão ligeiramente mais quente ou fria da mesma matiz (mais saturada para o modo escuro, pois fundos escuros precisam de cores mais vívidas para parecerem equivalentes)
  • Uma matiz complementar que funcione melhor em fundos escuros

Gere ambas as escalas com o Gerador de Tons e defina-as como tokens separados:

:root {
  /* Escala do modo claro */
  --color-brand-500: #0057B8;
}

[data-theme="dark"] {
  /* Escala do modo escuro (ligeiramente mais saturada) */
  --color-brand-500: #3386FF;
}

Cenários Comuns de Escala Personalizada

Correspondendo exatamente a uma cor de marca

Muitas diretrizes de marca especificam um único código Pantone ou hex. Se a cor da sua marca é #E63946 (um vermelho vívido), gere a escala ancorada em 500. Seu vermelho de marca se torna brand-500, e você obtém o intervalo completo para flexibilidade de design.

Adicionando um cinza neutro quente

As escalas de cinza padrão do Tailwind são inclinadas para o frio. Para criar um cinza quente que harmonize com um primário laranja ou vermelho, gere uma escala de tons para uma cor quente dessaturada como #8B7355, depois use-a como seu cinza neutro. O leve calor cria coerência visual com o seu primário.

Criando escalas de cores semânticas

Seu sistema de design provavelmente precisa de escalas semânticas:

  • Sucesso: Gere a partir de um verde como #16A34A
  • Aviso: Gere a partir de um âmbar como #D97706
  • Erro/Perigo: Gere a partir de um vermelho como #DC2626
  • Informação: Gere a partir de um azul-céu como #0284C7

Cada uma se torna uma escala nomeada no seu config (success, warning, error, info) ao lado das escalas primary e neutral da sua marca.


Principais Conclusões

  • O sistema de tons de 50 a 950 do Tailwind fornece 11 passos de luminosidade perceptualmente espaçados, de quase branco a quase preto, projetados para cobrir todos os casos de uso de UI.
  • O Gerador de Tons do ColorFYI converte qualquer código hex único em uma escala completa compatível com o Tailwind usando um algoritmo perceptualmente uniforme.
  • Estenda o tailwind.config.js usando theme.extend.colors para adicionar escalas personalizadas sem perder os padrões do Tailwind; use @theme no Tailwind v4.
  • Use propriedades CSS personalizadas (var(--color-brand-500)) para troca de tema em tempo de execução e aplicações de marca própria.
  • O modo escuro não precisa de uma cor diferente — usa a mesma escala invertida: tons claros se tornam fundos, tons escuros se tornam texto.
  • Gere escalas separadas para sua cor primária, neutra/cinza e semânticas (sucesso, aviso, erro, informação) para construir um sistema de design completo.
  • Use a convenção de nomenclatura numérica de forma consistente para que os desenvolvedores saibam exatamente qual tom usar: 600 para estados de hover, 700 para texto acessível sobre branco, 100 para fundos sutis.

Cores relacionadas

Marcas relacionadas

Ferramentas relacionadas