Colors
27 rampas e 298 stops - as paletas do Tailwind v4 mais cinco rampas sintetizadas para o Gremorie, incluindo a rampa de marca clay.
O Gremorie herda as paletas do Tailwind v4 e estende com cinco
rampas sintetizadas: quatro neutros extras (mauve, mist,
olive, taupe) e uma rampa de marca (clay, ancorada no
#D97757 do Claude). Juntas formam 27 rampas e 298 stops, todos
declarados em OKLCH em packages/tokens/styles/theme.css.
Cada stop é espaçado intencionalmente em claridade (perceptualmente
uniforme no espaço OKLCH), então slate-200 e blue-200 se
comportam da mesma forma quando usados como surface, mesmo sendo
hues completamente diferentes.
Todas as rampas de uma vez
Cada rampa, do mais claro ao mais escuro. Clique numa linha para pular para a tabela completa.
Como ler a escala
Os stops vão de 50 (mais claro) a 950 (mais escuro); a rampa
gray adiciona um stop 0 (branco puro) para superfícies
elevadas no modo claro. Não existe regra rígida de uso, mas os
padrões são fortes:
| Faixa | Uso típico |
|---|---|
| 0, 50, 100 | Backgrounds, hover de itens, surfaces sutis |
| 200, 300 | Borders, separadores, surfaces secundárias |
| 400, 500 | Texto secundário, ícones, placeholders |
| 600, 700 | Texto principal, primary actions, ícones de UI ativa |
| 800, 900, 950 | Headings, surfaces do dark mode |
Esses valores são estáveis: só mudam quando o primitivo é
editado em theme.css, e quando isso acontece a mudança cascateia
para todos os temas que o referenciam.
Como consumir
Três formas equivalentes:
// 1. Utilitário Tailwind (gerado automaticamente do bloco @theme)
<div className="bg-blue-600" />
// 2. CSS variable, para APIs que recebem cor como string (SVG, Recharts)
<div style={{ background: 'var(--color-blue-600)' }} />/* 3. Referenciando a rampa num arquivo de tema (o único lugar onde isso é normal) */
[data-theme='claude'] {
--primary: var(--color-clay-500);
}Dentro de um componente que respeita o tema, a quase totalidade dos
casos deve consumir um token semântico (bg-primary,
text-foreground) em vez de um primitivo. Primitivos são para
superfícies de marketing, ilustração e para alimentar a camada
semântica. Veja
quando você toca primitivos.
Primitivos não mudam com o modo. Diferente dos tokens semânticos, um
primitivo resolve para a mesma cor no claro e no escuro: --color-clay-500 é
sempre #D97757. O dark mode acontece uma camada acima, quando o tema
remapeia as intenções para primitivos diferentes dentro de .dark.
HEX é aproximação. Os valores HEX abaixo são a conversão sRGB-clamped do OKLCH. Para stops saturados em fuchsia, lime e afins, o OKLCH descreve cores fora do gamut sRGB; o HEX é o ponto mais próximo dentro do gamut, não o valor exato. A fonte da verdade é sempre OKLCH.
Neutros
Nove rampas neutras cobrem o espectro do cinza puro até variações
com viés de temperatura: slate frio, stone quente, mauve
violeta-rosado. Use-as para chrome, surfaces, texto e backgrounds.
Cinco são padrão Tailwind; quatro são sintetizadas pelo Gremorie
(mauve, mist, olive, taupe), criadas para que os temas
mapeiem para primitivos consistentes em vez de OKLCH literal.
Gray
Neutro puro (chroma zero) e o cinza de trabalho do sistema: o tema default resolve as intenções semânticas aqui. O stop extra 0 é branco puro, usado em superfícies elevadas (card, popover) no modo claro.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 0 | --color-gray-0 | bg-gray-0 | oklch(1 0 0) | #FFFFFF | |
| 50 | --color-gray-50 | bg-gray-50 | oklch(0.985 0 0) | #FAFAFA | |
| 100 | --color-gray-100 | bg-gray-100 | oklch(0.97 0 0) | #F5F5F5 | |
| 200 | --color-gray-200 | bg-gray-200 | oklch(0.922 0 0) | #E5E5E5 | |
| 300 | --color-gray-300 | bg-gray-300 | oklch(0.87 0 0) | #D4D4D4 | |
| 400 | --color-gray-400 | bg-gray-400 | oklch(0.708 0 0) | #A1A1A1 | |
| 500 | --color-gray-500 | bg-gray-500 | oklch(0.556 0 0) | #737373 | |
| 600 | --color-gray-600 | bg-gray-600 | oklch(0.45 0 0) | #555555 | |
| 700 | --color-gray-700 | bg-gray-700 | oklch(0.35 0 0) | #3A3A3A | |
| 800 | --color-gray-800 | bg-gray-800 | oklch(0.269 0 0) | #262626 | |
| 900 | --color-gray-900 | bg-gray-900 | oklch(0.205 0 0) | #171717 | |
| 950 | --color-gray-950 | bg-gray-950 | oklch(0.145 0 0) | #0A0A0A |
Slate
Neutro frio com leve viés azulado. Ideal para chrome de UI sério, dashboards corporativos e produtos onde a credibilidade pesa mais que a personalidade.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-slate-50 | bg-slate-50 | oklch(98.4% 0.003 247.858) | #F8FAFC | |
| 100 | --color-slate-100 | bg-slate-100 | oklch(96.8% 0.007 247.896) | #F1F5F9 | |
| 200 | --color-slate-200 | bg-slate-200 | oklch(92.9% 0.013 255.508) | #E2E8F0 | |
| 300 | --color-slate-300 | bg-slate-300 | oklch(86.9% 0.022 252.894) | #CAD5E2 | |
| 400 | --color-slate-400 | bg-slate-400 | oklch(70.4% 0.04 256.788) | #90A1B9 | |
| 500 | --color-slate-500 | bg-slate-500 | oklch(55.4% 0.046 257.417) | #62748E | |
| 600 | --color-slate-600 | bg-slate-600 | oklch(44.6% 0.043 257.281) | #45556C | |
| 700 | --color-slate-700 | bg-slate-700 | oklch(37.2% 0.044 257.287) | #314158 | |
| 800 | --color-slate-800 | bg-slate-800 | oklch(27.9% 0.041 260.031) | #1D293D | |
| 900 | --color-slate-900 | bg-slate-900 | oklch(20.8% 0.042 265.755) | #0F172B | |
| 950 | --color-slate-950 | bg-slate-950 | oklch(12.9% 0.042 264.695) | #020618 |
Zinc
Neutro levemente roxo, mais técnico. Bom em superfícies de produto que querem um cinza com caráter sem cair em uma cor declarada.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-zinc-50 | bg-zinc-50 | oklch(98.5% 0 0) | #FAFAFA | |
| 100 | --color-zinc-100 | bg-zinc-100 | oklch(96.7% 0.001 286.375) | #F4F4F5 | |
| 200 | --color-zinc-200 | bg-zinc-200 | oklch(92% 0.004 286.32) | #E4E4E7 | |
| 300 | --color-zinc-300 | bg-zinc-300 | oklch(87.1% 0.006 286.286) | #D4D4D8 | |
| 400 | --color-zinc-400 | bg-zinc-400 | oklch(70.5% 0.015 286.067) | #9F9FA9 | |
| 500 | --color-zinc-500 | bg-zinc-500 | oklch(55.2% 0.016 285.938) | #71717B | |
| 600 | --color-zinc-600 | bg-zinc-600 | oklch(44.2% 0.017 285.786) | #52525C | |
| 700 | --color-zinc-700 | bg-zinc-700 | oklch(37% 0.013 285.805) | #3F3F46 | |
| 800 | --color-zinc-800 | bg-zinc-800 | oklch(27.4% 0.006 286.033) | #27272A | |
| 900 | --color-zinc-900 | bg-zinc-900 | oklch(21% 0.006 285.885) | #18181B | |
| 950 | --color-zinc-950 | bg-zinc-950 | oklch(14.1% 0.005 285.823) | #09090B |
Neutral
O cinza chroma-zero canônico do Tailwind, mantido por compatibilidade. Quase idêntico ao gray, sem o stop 0 e com os valores originais de 600 e 700.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-neutral-50 | bg-neutral-50 | oklch(98.5% 0 0) | #FAFAFA | |
| 100 | --color-neutral-100 | bg-neutral-100 | oklch(97% 0 0) | #F5F5F5 | |
| 200 | --color-neutral-200 | bg-neutral-200 | oklch(92.2% 0 0) | #E5E5E5 | |
| 300 | --color-neutral-300 | bg-neutral-300 | oklch(87% 0 0) | #D4D4D4 | |
| 400 | --color-neutral-400 | bg-neutral-400 | oklch(70.8% 0 0) | #A1A1A1 | |
| 500 | --color-neutral-500 | bg-neutral-500 | oklch(55.6% 0 0) | #737373 | |
| 600 | --color-neutral-600 | bg-neutral-600 | oklch(43.9% 0 0) | #525252 | |
| 700 | --color-neutral-700 | bg-neutral-700 | oklch(37.1% 0 0) | #404040 | |
| 800 | --color-neutral-800 | bg-neutral-800 | oklch(26.9% 0 0) | #262626 | |
| 900 | --color-neutral-900 | bg-neutral-900 | oklch(20.5% 0 0) | #171717 | |
| 950 | --color-neutral-950 | bg-neutral-950 | oklch(14.5% 0 0) | #0A0A0A |
Stone
Neutro quente, terroso. Mistura bem com as rampas amber e orange e com tons editoriais.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-stone-50 | bg-stone-50 | oklch(98.5% 0.001 106.423) | #FAFAF9 | |
| 100 | --color-stone-100 | bg-stone-100 | oklch(97% 0.001 106.424) | #F5F5F4 | |
| 200 | --color-stone-200 | bg-stone-200 | oklch(92.3% 0.003 48.717) | #E7E5E4 | |
| 300 | --color-stone-300 | bg-stone-300 | oklch(86.9% 0.005 56.366) | #D6D3D1 | |
| 400 | --color-stone-400 | bg-stone-400 | oklch(70.9% 0.01 56.259) | #A6A09B | |
| 500 | --color-stone-500 | bg-stone-500 | oklch(55.3% 0.013 58.071) | #79716B | |
| 600 | --color-stone-600 | bg-stone-600 | oklch(44.4% 0.011 73.639) | #57534D | |
| 700 | --color-stone-700 | bg-stone-700 | oklch(37.4% 0.01 67.558) | #44403B | |
| 800 | --color-stone-800 | bg-stone-800 | oklch(26.8% 0.007 34.298) | #292524 | |
| 900 | --color-stone-900 | bg-stone-900 | oklch(21.6% 0.006 56.043) | #1C1917 | |
| 950 | --color-stone-950 | bg-stone-950 | oklch(14.7% 0.004 49.25) | #0C0A09 |
Mauve
Neutro com viés violeta-rosado sutil, sintetizado para o Gremorie. Adiciona sofisticação sem sair do território neutro.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-mauve-50 | bg-mauve-50 | oklch(98.5% 0 0) | #FAFAFA | |
| 100 | --color-mauve-100 | bg-mauve-100 | oklch(96% 0.003 325.6) | #F3F1F3 | |
| 200 | --color-mauve-200 | bg-mauve-200 | oklch(92.2% 0.005 325.62) | #E7E4E7 | |
| 300 | --color-mauve-300 | bg-mauve-300 | oklch(86.5% 0.012 325.68) | #D7D0D7 | |
| 400 | --color-mauve-400 | bg-mauve-400 | oklch(71.1% 0.019 323.02) | #A89EA9 | |
| 500 | --color-mauve-500 | bg-mauve-500 | oklch(54.2% 0.034 322.5) | #79697B | |
| 600 | --color-mauve-600 | bg-mauve-600 | oklch(43.5% 0.029 321.78) | #594C5B | |
| 700 | --color-mauve-700 | bg-mauve-700 | oklch(36.4% 0.029 323.89) | #463947 | |
| 800 | --color-mauve-800 | bg-mauve-800 | oklch(26.3% 0.024 320.12) | #2A212C | |
| 900 | --color-mauve-900 | bg-mauve-900 | oklch(21.2% 0.019 322.12) | #1D161E | |
| 950 | --color-mauve-950 | bg-mauve-950 | oklch(14.5% 0.008 326) | #0C090C |
Olive
Neutro verde-amarelado, terroso, sintetizado para o Gremorie. Complementa amber e stone em layouts editoriais e interfaces orgânicas.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-olive-50 | bg-olive-50 | oklch(98.8% 0.003 106.5) | #FBFBF9 | |
| 100 | --color-olive-100 | bg-olive-100 | oklch(96.6% 0.005 106.5) | #F4F4F0 | |
| 200 | --color-olive-200 | bg-olive-200 | oklch(93% 0.007 106.5) | #E8E8E3 | |
| 300 | --color-olive-300 | bg-olive-300 | oklch(88% 0.011 106.6) | #D8D8D0 | |
| 400 | --color-olive-400 | bg-olive-400 | oklch(73.7% 0.021 106.9) | #ABAB9C | |
| 500 | --color-olive-500 | bg-olive-500 | oklch(58% 0.031 107.3) | #7C7C67 | |
| 600 | --color-olive-600 | bg-olive-600 | oklch(46.6% 0.025 107.3) | #5B5B4B | |
| 700 | --color-olive-700 | bg-olive-700 | oklch(39.4% 0.023 107.4) | #474739 | |
| 800 | --color-olive-800 | bg-olive-800 | oklch(28.6% 0.016 107.4) | #2B2B22 | |
| 900 | --color-olive-900 | bg-olive-900 | oklch(22.8% 0.013 107.4) | #1D1D16 | |
| 950 | --color-olive-950 | bg-olive-950 | oklch(15.3% 0.006 107.1) | #0C0C09 |
Mist
Neutro com micro-viés ciano, sintetizado para o Gremorie. Útil quando o produto pede um cinza mais frio que slate sem tombar para o azul.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-mist-50 | bg-mist-50 | oklch(98.7% 0.002 197.1) | #F9FBFB | |
| 100 | --color-mist-100 | bg-mist-100 | oklch(96.3% 0.002 197.1) | #F1F3F3 | |
| 200 | --color-mist-200 | bg-mist-200 | oklch(92.5% 0.005 214.3) | #E3E7E8 | |
| 300 | --color-mist-300 | bg-mist-300 | oklch(87.2% 0.007 219.6) | #D0D6D8 | |
| 400 | --color-mist-400 | bg-mist-400 | oklch(72.3% 0.014 214.4) | #9CA8AB | |
| 500 | --color-mist-500 | bg-mist-500 | oklch(56% 0.021 213.5) | #67787C | |
| 600 | --color-mist-600 | bg-mist-600 | oklch(45% 0.017 213.2) | #4B585B | |
| 700 | --color-mist-700 | bg-mist-700 | oklch(37.8% 0.015 216) | #394447 | |
| 800 | --color-mist-800 | bg-mist-800 | oklch(27.5% 0.011 216.9) | #22292B | |
| 900 | --color-mist-900 | bg-mist-900 | oklch(21.8% 0.008 223.9) | #161B1D | |
| 950 | --color-mist-950 | bg-mist-950 | oklch(14.8% 0.004 228.8) | #090B0C |
Taupe
Neutro morno entre stone e mauve, terroso com nuance rosada. Sintetizado para o Gremorie; o tema Claude usa taupe para texto muted e fills de chart.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-taupe-50 | bg-taupe-50 | oklch(98.6% 0.002 67.8) | #FBFAF9 | |
| 100 | --color-taupe-100 | bg-taupe-100 | oklch(96% 0.002 17.2) | #F3F1F1 | |
| 200 | --color-taupe-200 | bg-taupe-200 | oklch(92.2% 0.005 34.3) | #E8E4E3 | |
| 300 | --color-taupe-300 | bg-taupe-300 | oklch(86.8% 0.007 39.5) | #D8D2D0 | |
| 400 | --color-taupe-400 | bg-taupe-400 | oklch(71.4% 0.014 41.2) | #ABA09C | |
| 500 | --color-taupe-500 | bg-taupe-500 | oklch(54.7% 0.021 43.1) | #7C6D67 | |
| 600 | --color-taupe-600 | bg-taupe-600 | oklch(43.8% 0.017 39.3) | #5B4F4B | |
| 700 | --color-taupe-700 | bg-taupe-700 | oklch(36.7% 0.016 35.7) | #473C39 | |
| 800 | --color-taupe-800 | bg-taupe-800 | oklch(26.8% 0.011 36.5) | #2B2422 | |
| 900 | --color-taupe-900 | bg-taupe-900 | oklch(21.4% 0.009 43.1) | #1D1816 | |
| 950 | --color-taupe-950 | bg-taupe-950 | oklch(14.7% 0.004 49.3) | #0C0A09 |
Marca
A única rampa que existe por causa de uma marca, não de uma família
de hue. clay-500 é a cor de marca do Claude, exatamente, e os
outros dez stops derivam dela com claridade suave e chroma que
atinge o pico no meio da rampa.
Clay
Terracota coral quente ancorada na cor de marca do Claude: clay-500 é exatamente #D97757 e o resto da rampa deriva dela. O tema Claude usa clay-500 como primary no modo claro e clay-400 no escuro.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-clay-50 | bg-clay-50 | oklch(0.971 0.013 44) | #FEF3EE | |
| 100 | --color-clay-100 | bg-clay-100 | oklch(0.936 0.03 43) | #FCE4DA | |
| 200 | --color-clay-200 | bg-clay-200 | oklch(0.882 0.058 42) | #FBCCBB | |
| 300 | --color-clay-300 | bg-clay-300 | oklch(0.815 0.09 41) | #F5AF96 | |
| 400 | --color-clay-400 | bg-clay-400 | oklch(0.745 0.118 40) | #EC9272 | |
| 500 | --color-clay-500 | bg-clay-500 | oklch(0.672 0.131 38.76) | #D97757 | |
| 600 | --color-clay-600 | bg-clay-600 | oklch(0.57 0.135 38) | #B85637 | |
| 700 | --color-clay-700 | bg-clay-700 | oklch(0.5 0.118 36) | #9A4730 | |
| 800 | --color-clay-800 | bg-clay-800 | oklch(0.43 0.093 35) | #7A3B2B | |
| 900 | --color-clay-900 | bg-clay-900 | oklch(0.365 0.067 34) | #5D3026 | |
| 950 | --color-clay-950 | bg-clay-950 | oklch(0.268 0.042 33) | #381E18 |
Espectro quente
Vermelhos, laranjas, âmbares, amarelos, limas e verdes. A amplitude
vai do crítico (red, para destrutivo) ao orgânico (green,
lime). amber é uma das melhores cores para warning sem cair no
clichê do amarelo puro.
Red
Vermelho clássico, alto contraste. Reservado para destruição, falhas críticas e estados de erro inequívocos. O tema default liga destructive a red-600 (claro) e red-400 (escuro).
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-red-50 | bg-red-50 | oklch(97.1% 0.013 17.38) | #FEF2F2 | |
| 100 | --color-red-100 | bg-red-100 | oklch(93.6% 0.032 17.717) | #FFE2E2 | |
| 200 | --color-red-200 | bg-red-200 | oklch(88.5% 0.062 18.334) | #FFC9C9 | |
| 300 | --color-red-300 | bg-red-300 | oklch(80.8% 0.114 19.571) | #FFA2A2 | |
| 400 | --color-red-400 | bg-red-400 | oklch(70.4% 0.191 22.216) | #FF6467 | |
| 500 | --color-red-500 | bg-red-500 | oklch(63.7% 0.237 25.331) | #FB2C36 | |
| 600 | --color-red-600 | bg-red-600 | oklch(57.7% 0.245 27.325) | #E7000B | |
| 700 | --color-red-700 | bg-red-700 | oklch(50.5% 0.213 27.518) | #C10007 | |
| 800 | --color-red-800 | bg-red-800 | oklch(44.4% 0.177 26.899) | #9F0712 | |
| 900 | --color-red-900 | bg-red-900 | oklch(39.6% 0.141 25.723) | #82181A | |
| 950 | --color-red-950 | bg-red-950 | oklch(25.8% 0.092 26.042) | #460809 |
Orange
Quente e energético, mais aproximável que vermelho. Bom para CTAs entusiastas, alertas não-críticos e elementos de descoberta.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-orange-50 | bg-orange-50 | oklch(98% 0.016 73.684) | #FFF7ED | |
| 100 | --color-orange-100 | bg-orange-100 | oklch(95.4% 0.038 75.164) | #FFEDD4 | |
| 200 | --color-orange-200 | bg-orange-200 | oklch(90.1% 0.076 70.697) | #FFD6A7 | |
| 300 | --color-orange-300 | bg-orange-300 | oklch(83.7% 0.128 66.29) | #FFB86A | |
| 400 | --color-orange-400 | bg-orange-400 | oklch(75% 0.183 55.934) | #FF8904 | |
| 500 | --color-orange-500 | bg-orange-500 | oklch(70.5% 0.213 47.604) | #FF6900 | |
| 600 | --color-orange-600 | bg-orange-600 | oklch(64.6% 0.222 41.116) | #F54900 | |
| 700 | --color-orange-700 | bg-orange-700 | oklch(55.3% 0.195 38.402) | #CA3500 | |
| 800 | --color-orange-800 | bg-orange-800 | oklch(47% 0.157 37.304) | #9F2D00 | |
| 900 | --color-orange-900 | bg-orange-900 | oklch(40.8% 0.123 38.172) | #7E2A0C | |
| 950 | --color-orange-950 | bg-orange-950 | oklch(26.6% 0.079 36.259) | #441306 |
Amber
Dourado luminoso. Funciona bem em warnings, badges premium e highlights afetuosos.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-amber-50 | bg-amber-50 | oklch(98.7% 0.022 95.277) | #FFFBEB | |
| 100 | --color-amber-100 | bg-amber-100 | oklch(96.2% 0.059 95.617) | #FEF3C6 | |
| 200 | --color-amber-200 | bg-amber-200 | oklch(92.4% 0.12 95.746) | #FEE685 | |
| 300 | --color-amber-300 | bg-amber-300 | oklch(87.9% 0.169 91.605) | #FFD230 | |
| 400 | --color-amber-400 | bg-amber-400 | oklch(82.8% 0.189 84.429) | #FFB900 | |
| 500 | --color-amber-500 | bg-amber-500 | oklch(76.9% 0.188 70.08) | #FE9A00 | |
| 600 | --color-amber-600 | bg-amber-600 | oklch(66.6% 0.179 58.318) | #E17100 | |
| 700 | --color-amber-700 | bg-amber-700 | oklch(55.5% 0.163 48.998) | #BB4D00 | |
| 800 | --color-amber-800 | bg-amber-800 | oklch(47.3% 0.137 46.201) | #973C00 | |
| 900 | --color-amber-900 | bg-amber-900 | oklch(41.4% 0.112 45.904) | #7B3306 | |
| 950 | --color-amber-950 | bg-amber-950 | oklch(27.9% 0.077 45.635) | #461901 |
Yellow
Amarelo puro, alto valor. Use com cuidado: contraste sobre branco é traiçoeiro, prefira stops 600+ para texto.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-yellow-50 | bg-yellow-50 | oklch(98.7% 0.026 102.212) | #FEFCE8 | |
| 100 | --color-yellow-100 | bg-yellow-100 | oklch(97.3% 0.071 103.193) | #FEF9C2 | |
| 200 | --color-yellow-200 | bg-yellow-200 | oklch(94.5% 0.129 101.54) | #FFF085 | |
| 300 | --color-yellow-300 | bg-yellow-300 | oklch(90.5% 0.182 98.111) | #FFDF20 | |
| 400 | --color-yellow-400 | bg-yellow-400 | oklch(85.2% 0.199 91.936) | #FDC700 | |
| 500 | --color-yellow-500 | bg-yellow-500 | oklch(79.5% 0.184 86.047) | #F0B100 | |
| 600 | --color-yellow-600 | bg-yellow-600 | oklch(68.1% 0.162 75.834) | #D08700 | |
| 700 | --color-yellow-700 | bg-yellow-700 | oklch(55.4% 0.135 66.442) | #A65F00 | |
| 800 | --color-yellow-800 | bg-yellow-800 | oklch(47.6% 0.114 61.907) | #894B00 | |
| 900 | --color-yellow-900 | bg-yellow-900 | oklch(42.1% 0.095 57.708) | #733E0A | |
| 950 | --color-yellow-950 | bg-yellow-950 | oklch(28.6% 0.066 53.813) | #432004 |
Lime
Verde-limão ácido, jovem. Funciona em marcas tech-forward e fitness; difícil de combinar com paletas conservadoras.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-lime-50 | bg-lime-50 | oklch(98.6% 0.031 120.757) | #F7FEE7 | |
| 100 | --color-lime-100 | bg-lime-100 | oklch(96.7% 0.067 122.328) | #ECFCCA | |
| 200 | --color-lime-200 | bg-lime-200 | oklch(93.8% 0.127 124.321) | #D8F999 | |
| 300 | --color-lime-300 | bg-lime-300 | oklch(89.7% 0.196 126.665) | #BBF451 | |
| 400 | --color-lime-400 | bg-lime-400 | oklch(84.1% 0.238 128.85) | #9AE600 | |
| 500 | --color-lime-500 | bg-lime-500 | oklch(76.8% 0.233 130.85) | #7CCF00 | |
| 600 | --color-lime-600 | bg-lime-600 | oklch(64.8% 0.2 131.684) | #5EA500 | |
| 700 | --color-lime-700 | bg-lime-700 | oklch(53.2% 0.157 131.589) | #497D00 | |
| 800 | --color-lime-800 | bg-lime-800 | oklch(45.3% 0.124 130.933) | #3C6300 | |
| 900 | --color-lime-900 | bg-lime-900 | oklch(40.5% 0.101 131.063) | #35530E | |
| 950 | --color-lime-950 | bg-lime-950 | oklch(27.4% 0.072 132.109) | #192E03 |
Green
Verde clássico de crescimento. Em UI, sinaliza progresso e aprovação genérica.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-green-50 | bg-green-50 | oklch(98.2% 0.018 155.826) | #F0FDF4 | |
| 100 | --color-green-100 | bg-green-100 | oklch(96.2% 0.044 156.743) | #DCFCE7 | |
| 200 | --color-green-200 | bg-green-200 | oklch(92.5% 0.084 155.995) | #B9F8CF | |
| 300 | --color-green-300 | bg-green-300 | oklch(87.1% 0.15 154.449) | #7BF1A8 | |
| 400 | --color-green-400 | bg-green-400 | oklch(79.2% 0.209 151.711) | #05DF72 | |
| 500 | --color-green-500 | bg-green-500 | oklch(72.3% 0.219 149.579) | #00C950 | |
| 600 | --color-green-600 | bg-green-600 | oklch(62.7% 0.194 149.214) | #00A63E | |
| 700 | --color-green-700 | bg-green-700 | oklch(52.7% 0.154 150.069) | #008236 | |
| 800 | --color-green-800 | bg-green-800 | oklch(44.8% 0.119 151.328) | #016630 | |
| 900 | --color-green-900 | bg-green-900 | oklch(39.3% 0.095 152.535) | #0D542B | |
| 950 | --color-green-950 | bg-green-950 | oklch(26.6% 0.065 152.934) | #032E15 |
Espectro frio
Verdes-azulados (emerald, teal), ciano, os azuis e a transição
para o violeta. É a faixa mais "produto digital" da paleta, onde
moram os defaults para links, primary actions e charts categóricos.
emerald é o tom usual de sucesso; sky é o tom usual de info.
Emerald
Verde mais frio e sofisticado, o tom usual de sucesso. Combina bem com slate e gray.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-emerald-50 | bg-emerald-50 | oklch(97.9% 0.021 166.113) | #ECFDF5 | |
| 100 | --color-emerald-100 | bg-emerald-100 | oklch(95% 0.052 163.051) | #D0FAE5 | |
| 200 | --color-emerald-200 | bg-emerald-200 | oklch(90.5% 0.093 164.15) | #A4F4CF | |
| 300 | --color-emerald-300 | bg-emerald-300 | oklch(84.5% 0.143 164.978) | #5EE9B5 | |
| 400 | --color-emerald-400 | bg-emerald-400 | oklch(76.5% 0.177 163.223) | #00D492 | |
| 500 | --color-emerald-500 | bg-emerald-500 | oklch(69.6% 0.17 162.48) | #00BC7D | |
| 600 | --color-emerald-600 | bg-emerald-600 | oklch(59.6% 0.145 163.225) | #009966 | |
| 700 | --color-emerald-700 | bg-emerald-700 | oklch(50.8% 0.118 165.612) | #007A55 | |
| 800 | --color-emerald-800 | bg-emerald-800 | oklch(43.2% 0.095 166.913) | #006045 | |
| 900 | --color-emerald-900 | bg-emerald-900 | oklch(37.8% 0.077 168.94) | #004F3B | |
| 950 | --color-emerald-950 | bg-emerald-950 | oklch(26.2% 0.051 172.552) | #002C22 |
Teal
Equilíbrio entre verde e azul, ideal para marcas calmas e produtos de saúde, finanças ou bem-estar.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-teal-50 | bg-teal-50 | oklch(98.4% 0.014 180.72) | #F0FDFA | |
| 100 | --color-teal-100 | bg-teal-100 | oklch(95.3% 0.051 180.801) | #CBFBF1 | |
| 200 | --color-teal-200 | bg-teal-200 | oklch(91% 0.096 180.426) | #96F7E4 | |
| 300 | --color-teal-300 | bg-teal-300 | oklch(85.5% 0.138 181.071) | #46ECD5 | |
| 400 | --color-teal-400 | bg-teal-400 | oklch(77.7% 0.152 181.912) | #00D5BE | |
| 500 | --color-teal-500 | bg-teal-500 | oklch(70.4% 0.14 182.503) | #00BBA7 | |
| 600 | --color-teal-600 | bg-teal-600 | oklch(60% 0.118 184.704) | #009689 | |
| 700 | --color-teal-700 | bg-teal-700 | oklch(51.1% 0.096 186.391) | #00786F | |
| 800 | --color-teal-800 | bg-teal-800 | oklch(43.7% 0.078 188.216) | #005F5A | |
| 900 | --color-teal-900 | bg-teal-900 | oklch(38.6% 0.063 188.416) | #0B4F4A | |
| 950 | --color-teal-950 | bg-teal-950 | oklch(27.7% 0.046 192.524) | #022F2E |
Cyan
Azul-claro vibrante, quase elétrico. Um acento tech sem ir para o azul corporativo.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-cyan-50 | bg-cyan-50 | oklch(98.4% 0.019 200.873) | #ECFEFF | |
| 100 | --color-cyan-100 | bg-cyan-100 | oklch(95.6% 0.045 203.388) | #CEFAFE | |
| 200 | --color-cyan-200 | bg-cyan-200 | oklch(91.7% 0.08 205.041) | #A2F4FD | |
| 300 | --color-cyan-300 | bg-cyan-300 | oklch(86.5% 0.127 207.078) | #53EAFD | |
| 400 | --color-cyan-400 | bg-cyan-400 | oklch(78.9% 0.154 211.53) | #00D3F2 | |
| 500 | --color-cyan-500 | bg-cyan-500 | oklch(71.5% 0.143 215.221) | #00B8DB | |
| 600 | --color-cyan-600 | bg-cyan-600 | oklch(60.9% 0.126 221.723) | #0092B8 | |
| 700 | --color-cyan-700 | bg-cyan-700 | oklch(52% 0.105 223.128) | #007595 | |
| 800 | --color-cyan-800 | bg-cyan-800 | oklch(45% 0.085 224.283) | #005F78 | |
| 900 | --color-cyan-900 | bg-cyan-900 | oklch(39.8% 0.07 227.392) | #104E64 | |
| 950 | --color-cyan-950 | bg-cyan-950 | oklch(30.2% 0.056 229.695) | #053345 |
Sky
Azul céu, leve e arejado, o tom usual de info. Mais acolhedor que blue sem perder o caráter técnico.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-sky-50 | bg-sky-50 | oklch(97.7% 0.013 236.62) | #F0F9FF | |
| 100 | --color-sky-100 | bg-sky-100 | oklch(95.1% 0.026 236.824) | #DFF2FE | |
| 200 | --color-sky-200 | bg-sky-200 | oklch(90.1% 0.058 230.902) | #B8E6FE | |
| 300 | --color-sky-300 | bg-sky-300 | oklch(82.8% 0.111 230.318) | #74D4FF | |
| 400 | --color-sky-400 | bg-sky-400 | oklch(74.6% 0.16 232.661) | #00BCFF | |
| 500 | --color-sky-500 | bg-sky-500 | oklch(68.5% 0.169 237.323) | #00A6F4 | |
| 600 | --color-sky-600 | bg-sky-600 | oklch(58.8% 0.158 241.966) | #0084D1 | |
| 700 | --color-sky-700 | bg-sky-700 | oklch(50% 0.134 242.749) | #0069A8 | |
| 800 | --color-sky-800 | bg-sky-800 | oklch(44.3% 0.11 240.79) | #00598A | |
| 900 | --color-sky-900 | bg-sky-900 | oklch(39.1% 0.09 240.876) | #024A70 | |
| 950 | --color-sky-950 | bg-sky-950 | oklch(29.3% 0.066 243.157) | #052F4A |
Blue
Azul clássico de produto digital. O default seguro e versátil para links e primary actions.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-blue-50 | bg-blue-50 | oklch(97% 0.014 254.604) | #EFF6FF | |
| 100 | --color-blue-100 | bg-blue-100 | oklch(93.2% 0.032 255.585) | #DBEAFE | |
| 200 | --color-blue-200 | bg-blue-200 | oklch(88.2% 0.059 254.128) | #BEDBFF | |
| 300 | --color-blue-300 | bg-blue-300 | oklch(80.9% 0.105 251.813) | #8EC5FF | |
| 400 | --color-blue-400 | bg-blue-400 | oklch(70.7% 0.165 254.624) | #51A2FF | |
| 500 | --color-blue-500 | bg-blue-500 | oklch(62.3% 0.214 259.815) | #2B7FFF | |
| 600 | --color-blue-600 | bg-blue-600 | oklch(54.6% 0.245 262.881) | #155DFC | |
| 700 | --color-blue-700 | bg-blue-700 | oklch(48.8% 0.243 264.376) | #1447E6 | |
| 800 | --color-blue-800 | bg-blue-800 | oklch(42.4% 0.199 265.638) | #193CB8 | |
| 900 | --color-blue-900 | bg-blue-900 | oklch(37.9% 0.146 265.522) | #1C398E | |
| 950 | --color-blue-950 | bg-blue-950 | oklch(28.2% 0.091 267.935) | #162456 |
Indigo
Azul profundo com puxada violeta. Mais editorial e premium que blue; funciona em produtos noturnos e marcas técnicas.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-indigo-50 | bg-indigo-50 | oklch(96.2% 0.018 272.314) | #EEF2FF | |
| 100 | --color-indigo-100 | bg-indigo-100 | oklch(93% 0.034 272.788) | #E0E7FF | |
| 200 | --color-indigo-200 | bg-indigo-200 | oklch(87% 0.065 274.039) | #C6D2FF | |
| 300 | --color-indigo-300 | bg-indigo-300 | oklch(78.5% 0.115 274.713) | #A3B3FF | |
| 400 | --color-indigo-400 | bg-indigo-400 | oklch(67.3% 0.182 276.935) | #7C86FF | |
| 500 | --color-indigo-500 | bg-indigo-500 | oklch(58.5% 0.233 277.117) | #615FFF | |
| 600 | --color-indigo-600 | bg-indigo-600 | oklch(51.1% 0.262 276.966) | #4F39F6 | |
| 700 | --color-indigo-700 | bg-indigo-700 | oklch(45.7% 0.24 277.023) | #432DD7 | |
| 800 | --color-indigo-800 | bg-indigo-800 | oklch(39.8% 0.195 277.366) | #372AAC | |
| 900 | --color-indigo-900 | bg-indigo-900 | oklch(35.9% 0.144 278.697) | #312C85 | |
| 950 | --color-indigo-950 | bg-indigo-950 | oklch(25.7% 0.09 281.288) | #1E1A4D |
Violet
Roxo equilibrado. Funciona como acento sem dominar a paleta.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-violet-50 | bg-violet-50 | oklch(96.9% 0.016 293.756) | #F5F3FF | |
| 100 | --color-violet-100 | bg-violet-100 | oklch(94.3% 0.029 294.588) | #EDE9FE | |
| 200 | --color-violet-200 | bg-violet-200 | oklch(89.4% 0.057 293.283) | #DDD6FF | |
| 300 | --color-violet-300 | bg-violet-300 | oklch(81.1% 0.111 293.571) | #C4B4FF | |
| 400 | --color-violet-400 | bg-violet-400 | oklch(70.2% 0.183 293.541) | #A684FF | |
| 500 | --color-violet-500 | bg-violet-500 | oklch(60.6% 0.25 292.717) | #8E51FF | |
| 600 | --color-violet-600 | bg-violet-600 | oklch(54.1% 0.281 293.009) | #7F22FE | |
| 700 | --color-violet-700 | bg-violet-700 | oklch(49.1% 0.27 292.581) | #7008E7 | |
| 800 | --color-violet-800 | bg-violet-800 | oklch(43.2% 0.232 292.759) | #5D0EC0 | |
| 900 | --color-violet-900 | bg-violet-900 | oklch(38% 0.189 293.745) | #4D179A | |
| 950 | --color-violet-950 | bg-violet-950 | oklch(28.3% 0.141 291.089) | #2F0D68 |
Purple
Roxo mais saturado que violet, quase magenta no stop 500. Use para criatividade, beta features e diferenciação.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-purple-50 | bg-purple-50 | oklch(97.7% 0.014 308.299) | #FAF5FF | |
| 100 | --color-purple-100 | bg-purple-100 | oklch(94.6% 0.033 307.174) | #F3E8FF | |
| 200 | --color-purple-200 | bg-purple-200 | oklch(90.2% 0.063 306.703) | #E9D4FF | |
| 300 | --color-purple-300 | bg-purple-300 | oklch(82.7% 0.119 306.383) | #DAB2FF | |
| 400 | --color-purple-400 | bg-purple-400 | oklch(71.4% 0.203 305.504) | #C27AFF | |
| 500 | --color-purple-500 | bg-purple-500 | oklch(62.7% 0.265 303.9) | #AD46FF | |
| 600 | --color-purple-600 | bg-purple-600 | oklch(55.8% 0.288 302.321) | #9810FA | |
| 700 | --color-purple-700 | bg-purple-700 | oklch(49.6% 0.265 301.924) | #8200DB | |
| 800 | --color-purple-800 | bg-purple-800 | oklch(43.8% 0.218 303.724) | #6E11B0 | |
| 900 | --color-purple-900 | bg-purple-900 | oklch(38.1% 0.176 304.987) | #59168B | |
| 950 | --color-purple-950 | bg-purple-950 | oklch(29.1% 0.149 302.717) | #3C0366 |
Acentos
Magentas, rosas e rosa-vermelhos para produtos que pedem mais
personalidade. rose combina particularmente bem com stone e
taupe.
Fuchsia
Magenta vibrante, quase neon. Cor de descoberta e novidade; difícil de combinar com paletas conservadoras.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-fuchsia-50 | bg-fuchsia-50 | oklch(97.7% 0.017 320.058) | #FDF4FF | |
| 100 | --color-fuchsia-100 | bg-fuchsia-100 | oklch(95.2% 0.037 318.852) | #FAE8FF | |
| 200 | --color-fuchsia-200 | bg-fuchsia-200 | oklch(90.3% 0.076 319.62) | #F6CFFF | |
| 300 | --color-fuchsia-300 | bg-fuchsia-300 | oklch(83.3% 0.145 321.434) | #F4A8FF | |
| 400 | --color-fuchsia-400 | bg-fuchsia-400 | oklch(74% 0.238 322.16) | #ED6AFF | |
| 500 | --color-fuchsia-500 | bg-fuchsia-500 | oklch(66.7% 0.295 322.15) | #E12AFB | |
| 600 | --color-fuchsia-600 | bg-fuchsia-600 | oklch(59.1% 0.293 322.896) | #C800DE | |
| 700 | --color-fuchsia-700 | bg-fuchsia-700 | oklch(51.8% 0.253 323.949) | #A800B7 | |
| 800 | --color-fuchsia-800 | bg-fuchsia-800 | oklch(45.2% 0.211 324.591) | #8A0194 | |
| 900 | --color-fuchsia-900 | bg-fuchsia-900 | oklch(40.1% 0.17 325.612) | #721378 | |
| 950 | --color-fuchsia-950 | bg-fuchsia-950 | oklch(29.3% 0.136 325.661) | #4B004F |
Pink
Rosa quente, social. Funciona em interfaces que querem carinho e proximidade, como comunidade e bem-estar.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-pink-50 | bg-pink-50 | oklch(97.1% 0.014 343.198) | #FDF2F8 | |
| 100 | --color-pink-100 | bg-pink-100 | oklch(94.8% 0.028 342.258) | #FCE7F3 | |
| 200 | --color-pink-200 | bg-pink-200 | oklch(89.9% 0.061 343.231) | #FCCEE8 | |
| 300 | --color-pink-300 | bg-pink-300 | oklch(82.3% 0.12 346.018) | #FDA5D5 | |
| 400 | --color-pink-400 | bg-pink-400 | oklch(71.8% 0.202 349.761) | #FB64B6 | |
| 500 | --color-pink-500 | bg-pink-500 | oklch(65.6% 0.241 354.308) | #F6339A | |
| 600 | --color-pink-600 | bg-pink-600 | oklch(59.2% 0.249 0.584) | #E60076 | |
| 700 | --color-pink-700 | bg-pink-700 | oklch(52.5% 0.223 3.958) | #C6005C | |
| 800 | --color-pink-800 | bg-pink-800 | oklch(45.9% 0.187 3.815) | #A3004C | |
| 900 | --color-pink-900 | bg-pink-900 | oklch(40.8% 0.153 2.432) | #861043 | |
| 950 | --color-pink-950 | bg-pink-950 | oklch(28.4% 0.109 3.907) | #510424 |
Rose
Rosa-vermelho, elegante. Combina particularmente bem com stone e taupe.
| Amostra | Passo | CSS Token | Classe Tailwind | OKLCH | HEX |
|---|---|---|---|---|---|
| 50 | --color-rose-50 | bg-rose-50 | oklch(96.9% 0.015 12.422) | #FFF1F2 | |
| 100 | --color-rose-100 | bg-rose-100 | oklch(94.1% 0.03 12.58) | #FFE4E6 | |
| 200 | --color-rose-200 | bg-rose-200 | oklch(89.2% 0.058 10.001) | #FFCCD3 | |
| 300 | --color-rose-300 | bg-rose-300 | oklch(81% 0.117 11.638) | #FFA1AD | |
| 400 | --color-rose-400 | bg-rose-400 | oklch(71.2% 0.194 13.428) | #FF637E | |
| 500 | --color-rose-500 | bg-rose-500 | oklch(64.5% 0.246 16.439) | #FF2056 | |
| 600 | --color-rose-600 | bg-rose-600 | oklch(58.6% 0.253 17.585) | #EC003F | |
| 700 | --color-rose-700 | bg-rose-700 | oklch(51.4% 0.222 16.935) | #C70036 | |
| 800 | --color-rose-800 | bg-rose-800 | oklch(45.5% 0.188 13.697) | #A50036 | |
| 900 | --color-rose-900 | bg-rose-900 | oklch(41% 0.159 10.272) | #8B0836 | |
| 950 | --color-rose-950 | bg-rose-950 | oklch(27.1% 0.105 12.094) | #4D0218 |
Boas práticas
- Não use stops 50 a 200 para texto sobre branco: contraste insuficiente. Use-os como surfaces.
- O stop 400 é traiçoeiro: bom como divisor visual entre primário e secundário, perigoso para texto crítico (o ratio varia muito entre rampas).
- Dark mode espelha, não inverte: 950 vira o background e 50 o foreground. Não troque os tons do meio na lógica; escolha primitivos diferentes no tema.
- Cinco rampas são específicas do Gremorie (
mauve,mist,olive,taupe,clay). Se você exportar o sistema para fora, documente que elas não são padrão Tailwind.