Explicación de los tokens de color semánticos

Un token de color semántico nombra un color por lo que hace, no por cómo se ve: --primary, --muted-foreground, --border. Define los roles una vez para el modo claro y oscuro, aplica estilos basándote en esos nombres y todo tu tema de interfaz será coherente. Este es el modelo detrás de shadcn/ui y la tematización de Tailwind.

Actualizado 2026-07-13

Color semántico vs. color puro

Un token de color puro nombra el color en sí: --blue-500, --gray-900. Un token semántico nombra la función que cumple el color: --primary, --background, --muted-foreground. De este modo, los componentes pueden ignorar los matices literales de la marca. Un botón con el estilo bg-primary text-primary-foreground funcionará con verde salvia, rosa intenso o en un tema oscuro porque el rol permanece fijo mientras su valor cambia.

Este es el modelo que popularizó shadcn/ui y sobre el cual se construye la tematización de Tailwind. Con tokens semánticos, cambiar el tema de una aplicación puede limitarse a un solo bloque :root. Las clases fijas como bg-gray-900 y text-white convierten ese mismo cambio en una búsqueda exhaustiva por todo el código.

La regla de emparejamiento foreground

La mayoría de los roles base vienen con un rol -foreground emparejado para el texto o los iconos sobre esa superficie: --primary / --primary-foreground, --card / --card-foreground, --muted / --muted-foreground. Usa --primary-foreground sobre --primary en lugar de esperar que el foreground por defecto tenga suficiente contraste. Cada par debe verificarse igualmente en ambos modos.

Los 28 roles que necesita un sistema completo

Una paleta mínima de tres colores deja 25 decisiones sin definir: estados hover, texto atenuado, bordes, anillos de enfoque, series de gráficos, modo oscuro. Un sistema completo las nombra todas. Los kits de Identity Forge definen estos 28 roles, agrupados por su función, para los modos claro y oscuro:

  • Superficies: background / foreground, card / card-foreground, popover / popover-foreground. La página, los paneles elevados y las capas flotantes, cada uno con su color de texto legible.
  • Marca y énfasis: primary / primary-foreground, secondary / secondary-foreground, accent / accent-foreground. La acción principal, la de apoyo y el elemento destacado.
  • Sutiles y neutros: muted / muted-foreground. Fondos atenuados y texto secundario.
  • Estado: destructive / destructive-foreground, success / success-foreground, warning / warning-foreground. Errores, confirmaciones y advertencias.
  • Formularios y enfoque: border, input, ring. Divisores y contornos, superficies de campos de formulario e indicadores de enfoque.
  • Datos: chart-1, chart-2, chart-3, chart-4, chart-5. Cinco colores de serie distintos y alineados con la marca para que los gráficos no recurran a una paleta genérica por defecto.

Por qué importan cinco colores de gráfico

La visualización de datos es donde los sistemas mal especificados fallan de forma más visible: un dashboard con tres colores de marca y un arcoíris aleatorio para su gráfico de barras. Definir chart-1...5 desde el principio mantiene los gráficos dentro del mismo lenguaje visual que el resto de la aplicación.

Mira los roles en un kit real

A continuación se muestra el kit gratuito ambient-sage renderizado íntegramente con estos tokens. La fila de muestras es --primary, --secondary, --accent y los cinco roles de gráficos; el botón usa --primary con --primary-foreground; las superficies usan --background, --card y --muted. Nada aquí es un color fijo:

Ambient Sage

Live render

Rendered from the kit's actual tokens, fonts, and treatments

AmbientSage/Dashboard
Search...⌘K
AS

Dashboard

Welcome back — here's how AmbientSage is performing today.

Jan 1 – Jan 30, 2026
Overview
Analytics
Reports
Notifications

Active users

15.1k

+5%

Trending up this month

vs. previous 30 days

MRR

$49.1k

+3%

Strong recurring growth

Net of churn

Retention

89%

+2%

Engagement above target

Rolling 28-day window

NPS

69

+3

Meets growth projections

Survey · n=1,204

Total revenue

Last 12 months

$49.1k+18.2%

12m30d7d
JanFebMarAprMayJunJulAugSepOctNovDec

Recent sales

You closed 265 deals this month.

AR

Alex Rivera

alex@ambientsage.com

+$1,999.00
MO

Mira Okonkwo

mira@ambientsage.com

+$39.00
JF

Jonas Feld

jonas@ambientsage.com

+$299.00
SQ

Sana Qureshi

sana@ambientsage.com

+$99.00
TL

Theo Lindgren

theo@ambientsage.com

+$2,400.00

Recent transactions

View all
CustomerStatusDateAmount
AR

Alex Rivera

Founder & CEO

Paid2m ago$1,999.00
MO

Mira Okonkwo

Head of Product

Pending1h ago$39.00
JF

Jonas Feld

Design Lead

Processing3h ago$299.00
SQ

Sana Qureshi

Engineering Lead

PaidYesterday$99.00
TL

Theo Lindgren

Brand Director

Refunded2d ago$2,400.00

Typography

Plus Jakarta Sans

Color system

28 semantic roles, light + dark

Agent outputs

DESIGN.md, CSS, Tailwind, shadcn

Cada color que ves es un token semántico. Cambia de kit y cada rol tomará un nuevo valor mientras el código del componente permanece idéntico.

Obtén un conjunto completo de tokens

Puedes definir los 28 roles a mano, pero es tedioso mantener el equilibrio y la accesibilidad entre el modo claro y oscuro. Cada kit de Identity Forge los incluye completos en ambos modos, exportables como variables CSS, @theme de Tailwind v3/v4, un elemento del registro de shadcn o JSON de DTCG/W3C. La forma más rápida de añadir un conjunto completo a un proyecto shadcn/ui:

npx shadcn add https://identityforge.io/r/ambient-sage.json
Instala los 28 roles semánticos (claro + oscuro) en tu tema

Los tokens son también la mitad de un DESIGN.md: los valores a los que hace referencia el brief escrito. Juntos son lo que puedes darle a un agente de programación para que su interfaz sea coherente.

Preguntas frecuentes

¿Qué son los tokens de color semánticos?

Variables de color nombradas por su rol en lugar de su matiz: `--primary`, `--background`, `--muted-foreground` en lugar de `--blue-500`. Los componentes aplican estilos basándose en el nombre del rol, por lo que cambiar de tema o pasar al modo oscuro nunca requiere editar los componentes.

¿Cuántos tokens de color necesita un sistema de diseño?

Identity Forge utiliza 28 roles semánticos: superficies con sus respectivos foregrounds, roles de marca y atenuados, colores de estado, roles de formulario y cinco colores para gráficos. Cada rol tiene un valor para modo claro y otro para oscuro.

¿Cuál es la convención -foreground?

La mayoría de los roles base se emparejan con un rol `-foreground` para el texto o los iconos colocados sobre esa superficie: `--primary` con `--primary-foreground`. El emparejamiento garantiza un contraste legible tanto en modo claro como oscuro sin tener que adivinar.

¿Cómo exporto un conjunto completo de tokens semánticos?

Cada kit de Identity Forge exporta sus 28 roles (claro + oscuro) como variables CSS, @theme de Tailwind v3/v4, un elemento del registro de shadcn o JSON de DTCG/W3C. Para shadcn/ui, `npx shadcn add https://identityforge.io/r/<slug>.json` los instala directamente.