La versión corta
- Los colores de Tailwind son familias con nombre, como blue, violet y slate, cada una con tonos que van del 50, el más claro, al 950, el más oscuro.
- En Tailwind v4 cada color es una variable CSS como
--color-blue-500, definida en OKLCH, y los colores se añaden o se sustituyen dentro de un bloque@themeen tu CSS. - Cualquier variable que llames
--color-algoen@themese convierte en un juego completo de utilidades, comobg-algo,text-algoyborder-algo. - El modificador de opacidad, como en
bg-sky-500/50, también funciona con colores personalizados, porque v4 mezcla la transparencia concolor-mix(). - El contraste depende de la pareja, no del número de tono, así que comprueba las combinaciones de texto y fondo en lugar de dar por hecho que un 500 sobre blanco se lee bien.
En esta página
Los colores de Tailwind son un conjunto de familias con nombre, de red a rose más una serie de grises como slate, gray, zinc, neutral y stone, cada una con once tonos numerados 50, de 100 a 900 de cien en cien, y 950. Se aplican con utilidades como bg-blue-600, text-slate-900 y border-rose-300. En Tailwind v4 toda la paleta está definida en OKLCH como variables CSS, que amplías o sustituyes en un bloque @theme en lugar de en un archivo de configuración JavaScript.
Cómo está organizada la paleta por defecto
Todas las familias siguen la misma escala. Del 50 al 200 son tintes para fondos y rellenos de hover, el 300 y el 400 son acentos suaves, el 500 y el 600 son el centro saturado, y del 700 al 950 sirven para texto, bordes y superficies oscuras. Como cada familia usa los mismos pasos, cambiar blue por violet en un componente suele funcionar sin más.
Uso habitual
Uso habitual
Uso habitual
Uso habitual
Familias
Uso habitual
Elige un gris y no te muevas de él. Mezclar texto gray-500 con bordes slate-200 da un aspecto ligeramente sucio que cuesta nombrar y es fácil de evitar.
Cómo usar los colores de Tailwind en tu marcado
Hay utilidades de color para casi todas las propiedades que admiten un color: bg-*, text-*, border-*, ring-*, fill-*, stroke-*, decoration-*, shadow-*, accent-*, caret-* y las paradas de degradado from-*, via-* y to-*. Añade una barra y un número para fijar la opacidad.
<div class="rounded-xl bg-slate-900 p-6 text-slate-100">
<p class="text-sm text-slate-400">Status</p>
<p class="text-2xl font-semibold">All systems normal</p>
<span class="mt-4 inline-flex rounded-full bg-emerald-500/15 px-3 py-1 text-emerald-300">
Live
</span>
</div>
<!-- One off values when nothing in the palette fits -->
<button class="bg-[#0b5c4a] text-[oklch(97%_0.02_160)]">Book a table</button>En v4 cada tono es además una variable que puedes usar en CSS normal: color: var(--color-slate-400). Así es fácil dar estilo a widgets de terceros, SVG o un canvas con los mismos colores que tus utilidades.
Cómo añadir colores personalizados en Tailwind v4
En v4 el tema se configura en CSS. Cualquier variable que empiece por --color- dentro de @theme se convierte en un color, con todas sus utilidades generadas. Nombra los colores por función o por marca, y dales una escala completa si vas a necesitar tintes.
@import "tailwindcss";
@theme {
/* A brand ramp on one hue, written in OKLCH */
--color-ember-50: oklch(97% 0.02 45);
--color-ember-100: oklch(94% 0.04 45);
--color-ember-200: oklch(88% 0.07 45);
--color-ember-300: oklch(80% 0.11 45);
--color-ember-400: oklch(71% 0.15 45);
--color-ember-500: oklch(63% 0.17 45);
--color-ember-600: oklch(55% 0.16 45);
--color-ember-700: oklch(47% 0.14 45);
--color-ember-800: oklch(39% 0.11 45);
--color-ember-900: oklch(31% 0.08 45);
--color-ember-950: oklch(22% 0.05 45);
/* Single role colours */
--color-ink: oklch(18% 0.02 270);
--color-paper: oklch(98% 0.01 85);
}bg-ember-500, text-ink, border-ember-200/60 y from-ember-400.Construir la escala en OKLCH es la razón de que funcione. La luminosidad en OKLCH coincide con lo claro que parece un color, así que los pasos iguales se ven iguales, algo que HSL no puede prometer. OKLCH explicado profundiza más, y oklch.com es un buen sitio para probar valores.
Cómo sustituir la paleta por completo
Para quitar los colores por defecto y quedarte solo con los tuyos, reinicia primero el espacio de nombres con --color-*: initial; al principio de @theme. Utilidades como bg-blue-500 dejarán de existir, lo que es una buena protección en un proyecto con una marca estricta.
Colores personalizados en Tailwind v3
Los proyectos más antiguos aún configuran los colores en JavaScript. Usa extend para añadir colores junto a los de por defecto, o define colors directamente para sustituirlos.
// tailwind.config.js (v3)
module.exports = {
theme: {
extend: {
colors: {
ember: {
50: '#fff1ea',
500: '#d95f19',
900: '#502007',
},
ink: '#14121f',
},
},
},
}@theme como --color-ember-500 y similares.Contraste: qué tonos son seguros para el texto
Los números de tono no son una escala de contraste. El texto blanco sobre blue-600 supera el 4,5:1 que las WCAG piden para el texto normal, mientras que el blanco sobre blue-500 no. Comprueba la pareja concreta, con las ratios de abajo o con una herramienta de WebAIM, y lee contraste de color y accesibilidad para conocer las reglas.
Contraste
Texto normal
Contraste
Texto normal
Contraste
Texto normal
Contraste
Texto normal
Contraste
Texto normal
Contraste
Texto normal
Haz tuya la paleta
La paleta por defecto se usa en una cantidad enorme de webs, y por eso tantos productos comparten el mismo botón indigo-600 y el mismo fondo slate-50. Esa uniformidad es la versión web de por qué todos los feeds se parecen.
Parece cualquier otra web
- El indigo o el blue por defecto como color de marca
- Varias familias de grises mezcladas
- El color de acento usado en todo
- Los colores del tema claro reutilizados en modo oscuro
Se parece a ti
- Una escala personalizada en tu propio tono
- Un solo gris, teñido hacia el tono de la marca
- El acento reservado para acciones y un único resaltado
- Un juego oscuro elegido aparte, consulta degradados para modo oscuro
- 1
Elige un tono
Parte del color de tu marca y lee su tono en OKLCH. Combinaciones de colores para webs te ayuda si todavía no tienes uno.
- 2
Construye la escala
Mantén el tono, escalona la luminosidad de un 97% a un 22% aproximadamente y baja el croma en los dos extremos.
- 3
Nombra también las funciones
Añade
--color-ink,--color-papery similares, para que los componentes digan para qué sirve cada color. - 4
Mantén una sola fuente
Trata el bloque
@themecomo tus design tokens, y reutiliza los mismos valores en tus gráficos.
El último paso es donde las marcas suelen desviarse: la web recibe la nueva escala mientras las publicaciones en redes y las diapositivas mantienen los colores del año pasado. Un kit de marca de Gradiently guarda tus paletas junto a tus tipografías y logotipos, así que el Designer maqueta las publicaciones con los mismos colores que usa tu tema de Tailwind, y un Mark da a la marca un estilo degradado que ninguna otra web comparte.
Preguntas frecuentes
¿Qué colores trae Tailwind por defecto?
Familias que van de red, orange, amber y yellow a rose pasando por verdes, azules, morados y rosas, más grises como slate, gray, zinc, neutral y stone. Cada una tiene los tonos 50, de 100 a 900 y 950, además de black y white.
¿Cómo añado colores personalizados en Tailwind v4?
Define variables como --color-brand-500 dentro de un bloque @theme en tu CSS. Tailwind genera a partir de ella bg-brand-500, text-brand-500 y todas las demás utilidades de color.
¿Tailwind usa OKLCH?
Sí. Desde v4 la paleta por defecto está definida en OKLCH, y puedes escribir tus propios colores en OKLCH, hex, RGB o cualquier otro formato de color CSS.
¿Cómo uso un color de Tailwind en CSS normal?
En v4 usa la variable directamente, por ejemplo var(--color-slate-400). En v3 usa la función theme(), como theme(colors.slate.400).
¿Qué tonos de Tailwind son accesibles para texto?
Depende de la pareja. Sobre blanco, gray-500 y los más oscuros aprueban para texto normal, y el texto blanco aprueba sobre blue-600 pero no sobre blue-500, así que comprueba siempre la combinación concreta.
Escrito por Gradiently
El equipo detrás de Gradiently, una herramienta de diseño creada en torno a los Marks: degradados vivos que hacen que todo lo que diseñas parezca tuyo.
Ver nuestro perfil