Mercado
Precios
Iniciar sesiónEmpezar
Guía prácticaCSS y web
CSS y web

Design tokens: una sola fuente de verdad para color y tipografía

Un color de marca que vive en cuarenta archivos acabará desviándose. Un token vive en un solo sitio y todas las plataformas lo leen de ahí. Así se estructuran los design tokens, se nombran para que duren y llegan al código y al diseño.

GradientlyCuenta verificada de Gradiently·1 de octubre de 2026·6 min de lectura
Portada: Topaz Temple · GR·N058·5B

La versión corta

  • Los design tokens son valores con nombre e independientes de la plataforma para decisiones de diseño como colores, familias tipográficas, tamaños, espaciado, radios, sombras y tiempos de animación.
  • La mayoría de los sistemas de tokens usan tres niveles: los tokens primitivos guardan valores en bruto, los semánticos describen un propósito y los de componente aplican propósitos a piezas concretas.
  • El formato del W3C Design Tokens Community Group guarda los tokens en JSON con las propiedades $value y $type y hace referencia a otros tokens con llaves.
  • Herramientas como Style Dictionary transforman un único archivo de tokens en propiedades personalizadas de CSS, JavaScript y recursos de iOS y Android.
  • El modo oscuro y las marcas múltiples se reducen a cambiar los valores que hay detrás de los tokens semánticos, mientras los componentes no cambian.
En esta página
Cómo es un design tokenTokens primitivos, semánticos y de componenteNombrar los design tokens para que durenDel archivo de tokens a CSS y a las appsModo oscuro y varias marcasImplantar design tokens

Los design tokens son valores con nombre para cada decisión de diseño que una marca repite: colores, tipografías, tamaños de letra, espaciado, radios de esquina, sombras y tiempos de animación. En lugar de escribir #5b21b6 en una hoja de estilos, un archivo de Figma y una app de iOS, defines color.brand.700 una vez, en un solo archivo, y generas a partir de él el formato de cada plataforma. Cambias el token y todos los productos se actualizan a la vez. Esa única fuente de verdad es todo el sentido.

Cómo es un design token

Un token tiene un nombre, un valor y un tipo. El formato que publica el W3C Design Tokens Community Group los escribe en JSON, con propiedades que empiezan por el símbolo del dólar para que no choquen con los nombres de grupo.

json
{
  "color": {
    "violet": {
      "100": { "$type": "color", "$value": "#ede9fe" },
      "500": { "$type": "color", "$value": "#8b5cf6" },
      "700": { "$type": "color", "$value": "#6d28d9" },
      "900": { "$type": "color", "$value": "#4c1d95" }
    },
    "ink": { "$type": "color", "$value": "#14121f" },
    "paper": { "$type": "color", "$value": "#faf8ff" }
  },
  "font": {
    "heading": { "$type": "fontFamily", "$value": ["Fraunces", "Georgia", "serif"] },
    "body": { "$type": "fontFamily", "$value": ["Inter", "system-ui", "sans-serif"] }
  },
  "radius": {
    "control": { "$type": "dimension", "$value": { "value": 10, "unit": "px" } }
  },
  "duration": {
    "quick": { "$type": "duration", "$value": { "value": 160, "unit": "ms" } }
  }
}
Tokens primitivos en el formato del grupo comunitario. Los grupos se anidan libremente; la ruta, como color.violet.700, pasa a ser el nombre del token.
Los tokens de color de arriba como muestras. Son ingredientes en bruto: todavía nada dice cuál es un botón o un titular.

Tokens primitivos, semánticos y de componente

Una lista plana de colores es una paleta, no un sistema. La estructura que aguanta años tiene tres niveles, y cada uno hace referencia al de abajo. Los componentes nunca tocan valores en bruto; piden un propósito.

Primitivo

Nombre de ejemplo

color.violet.700

Valor

#6d28d9

Cambia cuando

Se rediseña la paleta
Semántico

Nombre de ejemplo

color.action.primary

Valor

{color.violet.700}

Cambia cuando

Una función pasa a otro color
Semántico

Nombre de ejemplo

color.text.default

Valor

{color.ink}

Cambia cuando

Modo oscuro, una marca nueva
Componente

Nombre de ejemplo

button.primary.background

Valor

{color.action.primary}

Cambia cuando

Un componente necesita una excepción
NivelNombre de ejemploValorCambia cuando
Primitivocolor.violet.700#6d28d9Se rediseña la paleta
Semánticocolor.action.primary{color.violet.700}Una función pasa a otro color
Semánticocolor.text.default{color.ink}Modo oscuro, una marca nueva
Componentebutton.primary.background{color.action.primary}Un componente necesita una excepción
Las referencias entre llaves son alias. Cambia color.violet.700 y todos los tokens que apuntan a él lo siguen.
json
{
  "color": {
    "action": {
      "primary": { "$type": "color", "$value": "{color.violet.700}" },
      "primary-hover": { "$type": "color", "$value": "{color.violet.900}" }
    },
    "text": {
      "default": { "$type": "color", "$value": "{color.ink}" },
      "on-action": { "$type": "color", "$value": "{color.paper}" }
    },
    "surface": {
      "page": { "$type": "color", "$value": "{color.paper}" },
      "tint": { "$type": "color", "$value": "{color.violet.100}" }
    }
  }
}
Los tokens semánticos describen para qué sirve un color. Es la capa en la que deberían hablar diseñadores e ingenieros.

Muchos equipos se quedan en dos niveles, primitivo y semántico, y añaden tokens de componente solo donde un componente es realmente distinto. Así el archivo sigue siendo lo bastante pequeño para entenderlo.

Nombrar los design tokens para que duren

Los nombres sobreviven a los valores. Un token llamado color.purple se rompe el día que la marca pasa a verde azulado; uno llamado color.action.primary lo aguanta. Nombra los tokens semánticos por su función y deja que los nombres primitivos describan el valor.

Nombres que envejecen mal

  • color.purple usado para botones
  • text.dark, que es claro en modo oscuro
  • spacing.16 usado como regla de maquetación
  • blue2, blueNew, blueFinal
  • hero.gradient.lisa con el nombre de una persona

Nombres que duran

  • color.action.primary
  • color.text.default
  • space.section apuntando a {space.16}
  • Una escala numerada como blue.100 a blue.900
  • gradient.hero con sus paradas como tokens

Elige un patrón, como categoría, luego función, luego variante y luego estado, y déjalo por escrito en tu guía de estilo de marca. La coherencia en los nombres importa más que el patrón que elijas.

Del archivo de tokens a CSS y a las apps

El archivo de tokens no se publica tal cual. Un paso de compilación lo transforma en lo que necesita cada plataforma. Style Dictionary es la herramienta de código abierto más usada para esto, y otras leen el mismo formato. En la web, el resultado suele ser propiedades personalizadas de CSS.

css
:root {
  --color-violet-100: #ede9fe;
  --color-violet-700: #6d28d9;
  --color-violet-900: #4c1d95;
  --color-ink: #14121f;
  --color-paper: #faf8ff;

  --color-action-primary: var(--color-violet-700);
  --color-text-default: var(--color-ink);
  --color-surface-page: var(--color-paper);

  --font-heading: Fraunces, Georgia, serif;
  --radius-control: 10px;
  --duration-quick: 160ms;
}

.button {
  background: var(--color-action-primary);
  color: var(--color-paper);
  border-radius: var(--radius-control);
  transition: background var(--duration-quick) ease;
}
Resultado generado. Los alias se convierten en referencias var(), así que la capa semántica llega hasta el navegador. Mira variables CSS para temas.

Si usas Tailwind v4, el bloque @theme ya es una capa de tokens: cada variable --color-* se convierte en utilidades. Colores de Tailwind muestra cómo conectar ahí una escala de tokens. El mismo archivo puede generar también constantes de Swift y recursos de Android, y ahí es donde los tokens se amortizan en equipos multiplataforma.

Modo oscuro y varias marcas

Como los componentes solo leen tokens semánticos, un tema no es más que otro conjunto de valores para esa capa. El modo oscuro redefine color.text.default y color.surface.page; una segunda marca redefine color.action.primary. En los componentes no cambia nada.

css
@media (prefers-color-scheme: dark) {
  :root {
    --color-text-default: #e9e5f5;
    --color-surface-page: #0b0a14;
    --color-action-primary: var(--color-violet-500);
  }
}

[data-brand="harbour"] {
  --color-action-primary: #0f766e;
}
Dos sobrescrituras, ningún componente editado. Los degradados también merecen sus propios valores oscuros; degradados en modo oscuro explica cómo ajustarlos.

Tokens en las herramientas de diseño

Las Variables de Figma admiten colecciones y modos, que encajan muy bien con tokens primitivos y semánticos y con temas claro y oscuro. Mantén el archivo de tokens como fuente y sincroniza hacia la herramienta de diseño, no al revés, o en un mes no coincidirán.

Implantar design tokens

  1. 1

    Audita lo que existe

    Reúne cada color, tamaño de letra y valor de espaciado en uso. Cuenta con duplicados que difieren en un solo dígito hex.

  2. 2

    Define los primitivos

    Redúcelos a escalas claras. Construir las escalas de color en OKLCH mantiene los pasos uniformes; mira OKLCH explicado.

  3. 3

    Añade la capa semántica

    Nombra funciones: texto, superficie, borde, acción, feedback. Apunta cada una a un primitivo.

  4. 4

    Automatiza la compilación

    Genera el CSS y los recursos de las apps a partir del archivo en tu compilación, nunca a mano.

  5. 5

    Protégelo

    Usa un linter que detecte valores hex en bruto en los componentes, para que el código nuevo use tokens desde el primer día.

Los tokens mantienen coherente el producto, pero las marcas también se desvían en los gráficos que se hacen fuera de él: publicaciones, presentaciones, banners. Un kit de marca de Gradiently guarda las mismas decisiones, tus paletas de color, fuentes de títulos y texto, logos y tono, para que los diseños hechos en el Studio encajen. Y como Gradiently funciona dentro de ChatGPT, Claude y otros asistentes compatibles con servidores MCP remotos, un asistente con una clave de API limitada puede crear diseños fieles a la marca desde el mismo espacio de trabajo. Coherencia de marca cubre el hábito en general.

Conecta tu asistente de IA

Deja que Claude o cualquier cliente MCP busque Marks y cree diseños que se abren en el estudio.

Leer la documentación para desarrolladores

Preguntas frecuentes

¿Qué son los design tokens?

Valores con nombre para decisiones de diseño como colores, fuentes, espaciado, radios y movimiento, guardados en un archivo independiente de la plataforma y transformados en CSS, código de apps y variables de herramientas de diseño.

¿Qué diferencia hay entre tokens primitivos y semánticos?

Los tokens primitivos guardan valores en bruto, como color.violet.700. Los semánticos describen un propósito, como color.action.primary, y apuntan a un primitivo.

¿Los design tokens son lo mismo que las variables CSS?

No. Los tokens son la fuente, guardada en un formato neutro como JSON; las propiedades personalizadas de CSS son uno de los resultados que se generan a partir de ellos, junto a los de otras plataformas.

¿Existe un formato estándar para los design tokens?

El W3C Design Tokens Community Group publica un formato JSON con $value, $type y alias entre llaves, que herramientas como Style Dictionary pueden leer.

¿Cómo gestionan los design tokens el modo oscuro?

Los componentes leen tokens semánticos, y un tema oscuro aporta otros valores para esos tokens, así que los componentes no necesitan cambios.

Compartir esta guía

Escrito por GradientlyCuenta verificada de 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

En esta página

Cómo es un design tokenTokens primitivos, semánticos y de componenteNombrar los design tokens para que durenDel archivo de tokens a CSS y a las appsModo oscuro y varias marcasImplantar design tokens

Compartir esta guía

Siguiente en CSS y web

Degradado lineal CSS: guía completa de linear-gradient()

Sigue leyendo

Todas las guías de CSS y web
CSS y web

Crea un tema con variables CSS: modo claro, oscuro y colores de marca

6 min de lectura

Los temas fallan cuando los colores se nombran por cómo se ven en lugar de por lo que hacen. Nombra los roles, apúntalos a una paleta, y el modo claro, el modo oscuro y una segunda marca se quedan en unas pocas líneas cada uno.

CSS y web

Colores de Tailwind: cómo usar y ampliar la paleta

6 min de lectura

La paleta por defecto es un buen punto de partida y un mal punto de llegada, porque la comparten miles de webs. Así funcionan los colores de Tailwind en v4, y así se añaden los tuyos sin romper nada.

Marca

Cómo hacer una guía de estilo de marca que la gente use de verdad

5 min de lectura

La mayoría de las guías de estilo se abren una vez y se olvidan. Las que funcionan son breves, muestran cada regla y viven donde la gente diseña. Así se escribe una de esas.

Encuentra el look que es solo tuyo.

Cada Mark es un fondo vivo con un único dueño. Prueba uno que siga disponible y reserva el tuyo cuando te convenza.

Empieza a diseñar

Comprobar un certificado

Escribe un número de certificado o el código de un Mark para ver de quién es.

Funciona con ChatGPT y Claude

Pídele un diseño a tu IA. Lo crea en tu Mark, listo para editar.

ChatGPTClaude
Cómo conectarlo

Producto

  • Mercado
  • Explorar
  • Precios
  • Certificados

Aprende

  • Guía práctica
  • Centro de ayuda
  • Novedades

Desarrolladores

  • Introducción
  • ChatGPT y Claude
  • Referencia de la API
  • Claves de API

Empresa

  • Quiénes somos
  • Contacto
  • Iniciar sesión

Legal

  • Términos
  • Privacidad
  • Reembolsos
  • Protección de Marks
  • Cookies
  • Todas las políticas
Recorre las letras. Cada una lleva un Mark real.Toca una letra para ver su Mark.Un nombre. Diez Marks dentro.
© 2026 Gradiently