Saltar al contenido

Primitivos

Escalas de color

El método con el que DesignToken101 construye la escala del acento y la de los neutros a partir del color de marca, el resultado con su contraste y cómo crear las variables en Figma.

Última revisión:

Con el espacio de color decidido, puedes construir las escalas. DesignToken101 parte de un único color de marca, #33CC99, y genera dos escalas de once pasos: la del acento y la de los neutros. En esta lección verás el método paso a paso, el resultado y lo que dice sobre el uso de cada color.

En esta página

El método

  1. Convertir la marca a oklch, #33CC99 → L 0,755 · C 0,145 · H 165,4
  2. Elegir una curva de referencia, L y C de green de Tailwind CSS
  3. Colocar la marca en su paso, El de L más cercana: 500
  4. Escalar el croma, 0,145 ÷ 0,219 ≈ 0,66 en todos los pasos
  5. Mantener el tono, H 165,4 en los once pasos
  6. Ajustar a sRGB, Reducir el croma si no cabe
  7. Comprobar el contraste, WCAG 2.2 sobre el hex
Los siete pasos para construir la escala del acento a partir del color de marca.

1. Convertir la marca a oklch. #33CC99 es oklch(0.755 0.145 165.4). Por qué oklch lo viste en Espacio de color.

2. Elegir una curva de referencia. Una escala de once pasos necesita once luminosidades (L) y once cromas (C). Se pueden decidir a ojo, pero es difícil que los saltos queden regulares. El método copia esas cifras de una escala ya probada: la curva de referencia.

"Curva" significa cómo cambian L y C a lo largo de los pasos. En una escala como las de Tailwind CSS, la L baja del 50 (casi blanco) al 950 (casi negro), y el C sube hacia los pasos centrales y vuelve a bajar en los extremos, porque los colores muy claros o muy oscuros admiten menos croma (puedes verlo en oklch.com: la gama se estrecha arriba y abajo).

DesignToken101 toma la curva de green de Tailwind CSS v4, porque su tono (≈150) es cercano al de la marca (165,4) (Tailwind CSS: Colors). Los valores del script coinciden con el CSS fuente de Tailwind CSS 4.3.3 (theme.css). De green se toman dos columnas, L y C; el tono es el de la marca. Así queda la referencia y lo que sale de ella:

PasoL de greenC de greenL de emeraldC de emerald
500,9820,0180,9820,012
1000,9620,0440,9620,029
2000,9250,0840,9250,056
3000,8710,1500,8710,099
4000,7920,2090,7920,139
5000,7230,2190,7550,145 (marca)
6000,6270,1940,6270,129
7000,5270,1540,5270,102
8000,4480,1190,4480,079
9000,3930,0950,3930,063
9500,2660,0650,2660,043

La L de emerald es la de green en todos los pasos menos en el 500, que es la de la marca. El C de emerald es el de green multiplicado por 0,66 (paso 4).

3. Colocar la marca en su paso. La marca va exacta, sin retocar, en el paso cuya L se parece más a la suya. Su L es 0,755; en la curva de green, el 400 tiene 0,792 y el 500, 0,723. El más cercano es el 500.

4. Escalar el croma. La marca es menos intensa que la referencia: en el paso 500, 0,145 frente a 0,219. El croma de todos los pasos se multiplica por esa proporción, 0,66. Así la escala entera tiene la intensidad de la marca.

5. Mantener el tono. Todos los pasos usan el tono de la marca, 165,4. De la referencia se toman L y C, nunca el tono.

6. Ajustar a sRGB. Si un paso no cabe en sRGB, se reduce su croma y se conservan L y H. Con este color de marca ningún paso lo necesita.

7. Comprobar el contraste. Se calcula con la fórmula de WCAG 2.2 sobre el hex de cada paso (Understanding 1.4.3).

Recomendación

El método es nuestro, no una norma. Lo elegimos porque se puede reproducir con un script y porque el color de marca aparece tal cual en la escala. Si tu marca tiene otro tono, usa como referencia la curva de Tailwind CSS cuyo tono se parezca más al suyo: el método funciona igual, porque de la referencia toma L y C, no el tono.

La escala del acento

  1. 50, #F2FCF7
  2. 100, #E1F9EE
  3. 200, #C4F3DD
  4. 300, #93EAC5
  5. 400, #4FD7A6
  6. 500, #33CC99, Color de marca
  7. 600, #0EA075
  8. 700, #1A7D5C
  9. 800, #1F624A
  10. 900, #1F503E
  11. 950, #0D2C20
Escala emerald: el acento de DesignToken101, del paso 50 al 950.
PasooklchHexContraste con blancoContraste con neutral/950
500.982 0.012 165.4#F2FCF71,0518,86
1000.962 0.029 165.4#E1F9EE1,1117,86
2000.925 0.056 165.4#C4F3DD1,2216,19
3000.871 0.099 165.4#93EAC51,4213,94
4000.792 0.139 165.4#4FD7A61,8110,92
5000.755 0.145 165.4#33CC99 (marca)2,059,63
6000.627 0.129 165.4#0EA0753,335,93
7000.527 0.102 165.4#1A7D5C5,083,89
8000.448 0.079 165.4#1F624A7,232,73
9000.393 0.063 165.4#1F503E9,232,14
9500.266 0.043 165.4#0D2C2015,021,32

Fíjate en el 500: su L (0,755) no es la de la referencia (0,723), porque es la de la marca. Es el único paso que no sigue la curva.

La escala de neutros

Los neutros son los grises de la interfaz: fondos, texto y bordes. Tailwind CSS tiene dos escalas grises: neutral, sin croma, y gray, con un ligero tinte azulado (theme.css). El método mezcla las dos y les da el tono de la marca:

  • L de neutral.
  • C de gray multiplicado por 0,5: un tinte suave.
  • H de la marca, 165,4.
  1. 50, #F9FAFA
  2. 100, #F4F5F5
  3. 200, #E3E6E5
  4. 300, #D1D5D3
  5. 400, #9BA39F
  6. 500, #6C7671
  7. 600, #4B5550
  8. 700, #38433E
  9. 800, #1F2924
  10. 900, #101A15
  11. 950, #050C09
Escala neutral: grises con un tinte suave del tono de la marca.
PasooklchHexContraste con blancoContraste con neutral/950
500.985 0.001 165.4#F9FAFA1,0518,89
1000.970 0.002 165.4#F4F5F51,0918,09
2000.922 0.003 165.4#E3E6E51,2615,73
3000.870 0.005 165.4#D1D5D31,4813,33
4000.708 0.011 165.4#9BA39F2,587,65
5000.556 0.013 165.4#6C76714,704,20
6000.439 0.015 165.4#4B55507,742,55
7000.371 0.017 165.4#38433E10,291,92
8000.269 0.017 165.4#1F292414,991,32
9000.205 0.017 165.4#101A1517,791,11
9500.145 0.014 165.4#050C0919,761,00

Recomendación

Neutros tintados con el tono de la marca, con un tinte suave. Un gris puro también funciona; el tinte busca que los grises y el acento parezcan de la misma familia. Es una decisión estética: si tu marca no la necesita, usa tint=0.

Lo que la escala dice sobre su uso

WCAG 2.2 pide un contraste mínimo de 4,5:1 para el texto normal y de 3:1 para el texto grande (Understanding 1.4.3). Las tablas ya te dicen qué combinaciones sirven:

  • El color de marca no admite texto blanco: 2,05:1. Con texto oscuro (neutral/950) llega a 9,63:1.
  • Para texto blanco sobre el acento hace falta el 700 o más oscuro: 5,08:1.
  • Para un enlace sobre fondo blanco tampoco sirve el 500. El 700 sí.
  • El gris más claro que sirve para texto sobre blanco es neutral/500: 4,70:1.

Qué combinación usa la web para cada cosa se decide en los tokens semánticos (Semánticos de color), y el contraste se estudia a fondo en el módulo Accesibilidad (Contraste de texto).

El nombre de las paletas

La paleta del acento se llama emerald: su tono, 165,4, está cerca del de emerald de Tailwind CSS, entre 162 y 173 según el paso (theme.css). No se llama brand ni accent, por la regla que viste en Qué es un primitivo.

La de los neutros se llama neutral, como la escala gris de Tailwind CSS: se nombra por su naturaleza, no por un tono.

En Figma

En la colección Primitives, crea una variable Color por paso: color/emerald/50 … color/emerald/950 y color/neutral/50 … color/neutral/950 (Figma: Create and manage variables).

  1. Escribe el valor en hex, el de la tabla o el que te dé el script.
  2. En el scope, desmarca todas las propiedades.
  3. Marca Hide from publishing (Figma: Hide styles, components, and variables when publishing).
  4. Añade el code syntax Web: var(--t101-color-emerald-500).

Recomendación

Los primitivos de color no tienen scope y se ocultan al publicar: nadie los aplica a un diseño. Su única función es ser el destino de los tokens semánticos. Así, quien diseña con la biblioteca elige color/text/neutral/default, y no neutral/900. Lo ampliamos en La colección completa.

Lo que te llevas

  • Una escala de color tiene once pasos, del 50 al 950, con la curva de luminosidad y croma de una escala de referencia.
  • El color de marca va exacto en su paso, y el croma se ajusta a su intensidad.
  • La tabla de contraste dice qué pasos sirven para texto y cuáles no.

Fuentes