InicioHerramientasGenerador de paletas accesibles
Generador de paletas de colores accesibles a partir de tu marca
Introduce un color de marca y obtén una escala de diez pasos, del 50 al 900, construida en el espacio perceptual OKLCH. Cada paso muestra su contraste con texto blanco y negro, la paleta indica qué parejas de pasos cumplen WCAG AA y el resultado se exporta como propiedades personalizadas de CSS, colores de Tailwind o design tokens.
—
| Token | Color | OKLCH | Texto blanco | Texto negro | APCA Lc B / N |
|---|
Parejas de texto y fondo que cumplen AA (4,5:1)
Paso de fondo → pasos de la misma paleta que pueden ir encima como texto.
Método. Los pasos se reparten de forma uniforme en la luminosidad OKLCH entre el color de marca y los extremos de la escala (L ≈ 97,5 % para 50, ≈ 25 % para 900); el tono no cambia, el croma se atenúa hacia el blanco y los colores fuera de gamut pierden croma hasta caber en sRGB. Contraste: relación WCAG 2.2, sin redondear hacia arriba.
Todo se calcula en tu navegador: nada de lo que escribes se envía a ningún sitio.
Cómo usarla
- Introduce tu color de marcaPega el HEX de tu manual de marca o elígelo. El generador busca el paso cuya luminosidad encaja y construye tintes más claros por encima y sombras más oscuras por debajo.
- Revisa la tabla de contrasteCada paso muestra su contraste con texto blanco y con texto negro. «AA» significa 4,5:1 para texto normal; «Grande», solo 3:1 para texto grande y componentes de interfaz.
- Elige parejas de texto y fondoLa lista de parejas indica qué pasos pueden usarse como texto sobre cada fondo; por ejemplo, texto 700 sobre fondo 50 para un aviso informativo.
- ExportaElige variables CSS, configuración de Tailwind, JSON o design tokens del W3C, pon nombre a la paleta y copia el código en tu proyecto.
Por qué generar tintes y sombras en OKLCH
La forma más sencilla de aclarar u oscurecer un color es mezclarlo con blanco o negro en sRGB o cambiar la L de HSL. Ambas dan escalas desiguales. La luminosidad de HSL no es perceptual: un amarillo al 50 % parece mucho más claro que un azul al 50 %, así que el «mismo» paso tiene un contraste muy distinto según el tono. Mezclar con blanco en sRGB desplaza el tono: los azules viran a morado y los rojos, a rosa.
OKLCH, la forma cilíndrica del espacio OKLab que Björn Ottosson publicó en 2020 y que hoy forma parte de CSS Color Level 4, separa las tres cosas que importan al diseñar:
Como L sigue lo claro que parece un color, los pasos iguales de L dan escalas que se perciben uniformes en cualquier tono, y el contraste con blanco o negro cambia de forma predecible de un paso a otro. Por eso Tailwind CSS v4 define su paleta por defecto en OKLCH.
Cómo construye la escala este generador
- El color de marca se convierte a OKLCH y se sitúa en el paso con la luminosidad de referencia más cercana (o en el paso que elijas). Conserva su HEX exacto.
- Los pasos más claros se reparten de forma uniforme en L entre el color de marca y L ≈ 97,5 % (paso 50); los más oscuros, entre el color de marca y L ≈ 25 % (paso 900).
- El tono no cambia. El croma se atenúa hacia el extremo claro —los tintes muy claros con todo el croma parecen fluorescentes— y baja como mucho un tercio hacia el oscuro.
- Cualquier color fuera del gamut sRGB vuelve a él reduciendo el croma y manteniendo L y H, como recomienda CSS Color 4.
- Cada HEX se redondea a 8 bits por canal y el contraste se calcula con ese valor redondeado, que es el que acabarás usando.
Cómo leer las columnas de contraste
Para cada paso, la tabla muestra la relación de contraste WCAG 2.2 con texto blanco puro (#fff) y negro puro (#000):
- AA — al menos 4,5:1: apto para texto normal, etiquetas y enlaces.
- Grande — entre 3:1 y 4,5:1: solo para texto desde 24 px (18,66 px en negrita) y elementos no textuales como iconos, bordes e indicadores de foco (WCAG 1.4.11).
- No — por debajo de 3:1: solo decoración, nunca texto.
Como los pasos siguen la luminosidad perceptual, el resultado es parecido en casi todos los tonos: el texto blanco cumple AA en 600–900 y el negro en 50–500. Prácticamente ningún color cumple con ambos: 4,5:1 frente a blanco y frente a negro a la vez solo es posible en una franja muy estrecha de luminancia relativa (0,175–0,183). Por eso los sistemas de diseño usan 600 o 700 para los botones principales con texto blanco y reservan 400–500 para rellenos, gráficos y texto grande.
La columna APCA muestra el contraste de luminosidad (Lc) del borrador de WCAG 3 para texto blanco y negro. Por encima de 75 es cómodo para texto de lectura, por encima de 60 para etiquetas de interfaz y por encima de 45 para titulares. APCA aún no es un estándar: úsalo para elegir entre opciones que ya cumplen WCAG 2.2.
Parejas dentro de la paleta
Las interfaces tintadas —avisos informativos, filas seleccionadas, etiquetas, pistas de onboarding— ponen un paso oscuro sobre un paso claro del mismo tono. La lista de parejas indica, para cada fondo, qué pasos de texto alcanzan 4,5:1. Como regla general, los pasos separados por cinco o más posiciones (50 con 600, 100 con 700) suelen cumplir; los contiguos, nunca.
Cómo usar la paleta en un sistema de diseño
- Nombra por función, no por valor. Exporta la escala como
--brand-50 … --brand-900y asigna funciones encima:--color-primary: var(--brand-600),--color-primary-text: var(--brand-700),--color-info-bg: var(--brand-50). Si la marca cambia, solo tocas una lista. - Documenta las parejas aprobadas. Deja por escrito qué paso de texto va sobre qué fondo para que nadie ponga texto 400 sobre fondo 100 con prisas.
- El tema oscuro es otra asignación. Reutiliza la escala al revés —pasos claros para texto, oscuros para superficies— y vuelve a comprobar las parejas: combinaciones oscuras que cumplen WCAG 2 pueden verse apagadas, algo que APCA muestra mejor.
- Los estados también necesitan contraste. Hover y pulsado suelen bajar un paso; el indicador de foco necesita 3:1 frente al fondo que lo rodea.
- Los colores semánticos (éxito, aviso, error) se generan igual, cada uno desde su color base. El amarillo y el verde lima solo se reconocen en pasos claros, donde el texto blanco no cumple: ponles texto oscuro.
Para comprobar una pareja concreta, incluidos colores fuera de la paleta o capas semitransparentes, usa el comprobador de contraste de color.
Fuentes
- Ottosson B. A perceptual color space for image processing, 2020 — OKLab y OKLCH, matrices de conversión.
- W3C. CSS Color Module Level 4 — notación oklch() y ajuste de gamut reduciendo el croma.
- W3C. Web Content Accessibility Guidelines (WCAG) 2.2 — criterios 1.4.3, 1.4.6 y 1.4.11, luminancia relativa y relación de contraste.
- Somers A. APCA — Accessible Perceptual Contrast Algorithm, apca-w3 0.0.98G-4g — valores Lc.
- W3C Design Tokens Community Group. Design Tokens Format Module, borrador — estructura $type y $value de la exportación de tokens.
Preguntas frecuentes
¿Qué significan los números del 50 al 900 en una paleta?
Son pasos de luminosidad de un mismo tono, popularizados por Material Design y Tailwind CSS: 50 es el tinte más claro, 900 la sombra más oscura, y 500 o 600 suele estar cerca del color de marca. Los números son nombres, no medidas, así que cualquier paso se puede ajustar.
¿Por qué usar OKLCH en lugar de HSL para generar tonos?
La luminosidad de OKLCH coincide con el brillo percibido y la de HSL no: un amarillo y un azul con la misma luminosidad HSL se ven muy distintos y tienen contrastes muy diferentes. Los pasos iguales en OKLCH dan escalas uniformes en cualquier tono y sin desviaciones de matiz al aclarar.
¿Qué paso de la paleta uso para texto sobre blanco?
El primer paso con al menos 4,5:1 frente a blanco en la tabla. En las paletas de este generador suele ser el 600, porque los pasos siguen la luminosidad perceptual; en paletas basadas en HSL, el amarillo, el lima y el cian a menudo necesitan 800 o más oscuro. Para texto grande e iconos basta con 3:1, así que puede servir un paso más claro.
¿Por qué ningún paso cumple con texto blanco y negro a la vez?
Para alcanzar 4,5:1 frente a blanco y frente a negro al mismo tiempo, un color necesita una luminancia relativa entre 0,175 y 0,183, una franja tan estrecha que casi ningún paso cae en ella. Es lo esperable: usa los pasos oscuros con texto blanco y los claros con texto oscuro.
¿Mi color de marca exacto estará en la paleta?
Sí. El color de marca conserva su HEX exacto en el paso donde mejor encaja su luminosidad, o en el que elijas, y el resto de pasos se construye a su alrededor.
¿Cómo uso la exportación en Tailwind CSS?
En Tailwind v3, pega la exportación de Tailwind en theme.extend.colors dentro de tailwind.config.js y usa clases como bg-brand-600. En Tailwind v4, exporta variables CSS y renómbralas a --color-brand-600 dentro de un bloque @theme.
Más en Diseño de producto
- Comprobador de contraste de color
¿Cumple este par de colores de texto y fondo WCAG AA o AAA?
- Generador de escala tipográfica
¿Qué tamaños de fuente forman una escala tipográfica coherente y fluida?
- Tiempo de lectura de tooltips y tours
¿Tienen los usuarios tiempo de leer un tooltip o un paso del tour?
- Revisor de textos de tooltips
¿Es este tooltip breve, claro y orientado a la acción?
- Calculadora SUS
¿Qué puntuación SUS tiene la interfaz y es buena su usabilidad?