Actualizado 18 de junio de 2026 12 min de lectura
Junior Fundamentos

Design Tokens de Figma: La Guía Completa para Diseñadores UI/UX

Guía 2026 de design tokens en Figma: Variables, primitivos, alias semánticos, dark mode, exportación DTCG y handoff CSS/TypeScript para equipos UI.

Design Tokens de Figma: La Guía Completa para Diseñadores UI/UX

Los design tokens de Figma son ranuras con nombre, agnósticas a la plataforma, para decisiones visuales - implementadas de forma nativa como Variables - que desacoplan el nombre de un token de su valor para que una actualización de colección única se propague instantáneamente en todos los componentes. Cambiar al modo oscuro o aplicar un cambio de marca significa editar valores en un solo lugar, no buscar códigos hex en cientos de capas. Esta guía cubre el flujo de trabajo completo: capas primitiva vs semántica, colecciones, modos, nomenclatura, alcances, exportación de código y el estándar DTCG.

Flujos relacionados: Modo oscuro con Variables Figma para la configuracion de temas claro/oscuro, Paridad Figma-Codigo para sincronizar tokens con el repositorio, y Flujos de IA del Sistema de Diseno para exportar tokens DTCG que los agentes de IA puedan leer.

¿Qué Son los Design Tokens?

Los design tokens son el contrato compartido entre diseño y código - una decisión con nombre que ambas partes referencian en lugar de valores en bruto. El concepto fue popularizado por el equipo del Sistema de Diseño Lightning de Salesforce y ahora está siendo estandarizado por el Grupo Comunitario de Design Tokens del W3C (DTCG) para que las herramientas y las bases de código puedan intercambiar archivos de tokens sin parsers personalizados. En Figma, los tokens viven como Variables: una ranura con nombre mantiene el valor, y cada componente que lo referencia se actualiza en el momento en que el valor cambia. Esa indirección es lo que hace que el modo oscuro, las opciones de densidad y los cambios de marca sean manejables sin reconstruir componentes: actualiza el valor detrás de un token y cada componente que lo referencia lo sigue automáticamente.

Variables de Figma vs Design Tokens: ¿Cuál es la Diferencia?

Los design tokens son el concepto - una decisión con nombre (un color, un valor de espaciado, un tamaño de fuente) que tanto el diseño como el código referencian en lugar de un valor en bruto. Las Variables de Figma son el mecanismo nativo que implementa ese concepto dentro de Figma: una ranura tipada (Color, Número, Cadena o Booleano) que guarda valores y soporta alias y modos. Cada Variable de Figma que creas es efectivamente un design token; la distinción importa al conectar Figma con una canalización de construcción, porque no todos los flujos de trabajo de tokens requieren Variables de Figma - algunos equipos mantienen archivos de tokens en JSON fuera de Figma completamente. En un flujo de trabajo Figma-first, los dos términos se usan de forma intercambiable en la práctica.

Tokens Primitivos vs Semánticos

Cada sistema de tokens de grado de producción necesita dos capas - primitivas y semánticas - o la primera solicitud de tema lo rompe todo. Las primitivas guardan valores en bruto sin significado de producto (pasos de paleta, incrementos de espaciado, tamaños de tipo); las semánticas los alias por rol de interfaz (fondo de página, acción primaria, texto destructivo). Sin esa separación, los componentes se vinculan directamente a valores en bruto, y añadir un segundo tema significa anular manualmente cada uno. Al construir Atomize, Vitalina revisó cientos de bibliotecas de Figma y encontró que la mayoría tenía primitivas pero no capa semántica - los botones estaban conectados a blue/600 en lugar de interactive/default, por lo que el modo oscuro requería cirugía a nivel de componentes en lugar de un cambio de modo. Un relleno de botón que referencia blue/600 en lugar de interactive/default se ve idéntico en modo claro pero se rompe en el momento en que intentas añadir un segundo tema. La arquitectura de dos capas se siente como trabajo extra al principio, pero se devuelve inmediatamente la primera vez que alguien pide un interruptor de modo oscuro.

Arquitectura de tokens de dos capas: los tokens Primitivos que guardan valores en bruto fluyen hacia tokens Semánticos que se resuelven de forma diferente en los modos Claro y Oscuro, luego se vinculan a los Componentes
La Capa 1 guarda valores en bruto (primitivas). La Capa 2 los alias por rol de interfaz (semánticas). Los componentes solo se vinculan a la Capa 2 - por lo que un cambio de modo actualiza todo automáticamente.

Color

Las primitivas guardan pasos de paleta en bruto sin significado de producto. Las semánticas los alias por rol de interfaz. Un relleno de botón referencia interactive/default, nunca un hex - por lo que el modo oscuro es solo un cambio de modo en la colección semántica con cero cambios en los componentes.

/* Primitivas */
gray/50   →  #f9fafb
gray/950  →  #030712
blue/600  →  #2563eb
red/600   →  #dc2626

/* Semántica - modo Claro */
background/default       →  gray/50 (#f9fafb)
text/primary             →  gray/950 (#030712)
text/subdued             →  gray/600 (#4b5563)
interactive/default      →  blue/600 (#2563eb)
interactive/destructive  →  red/600 (#dc2626)

/* Semántica - modo Oscuro (mismos nombres, diferentes valores) */
background/default       →  gray/950 (#030712)
text/primary             →  gray/50 (#f9fafb)

Tipografía

Tamaños de tipo primitivos: font/size/12, font/size/14, font/size/16, font/size/20, font/size/24, font/size/32. Presets semánticos: text/body/sm usa font/size/12, weight/regular, lineheight/150%; text/body/md usa font/size/14; text/heading/lg usa font/size/24, weight/semibold, lineheight/110%. Los presets agrupan primitivas para que tu producto use un subconjunto controlado de la escala completa.

Espaciado, radio, elevación, movimiento

El espaciado, radio y movimiento usan variables Numéricas para que los campos de padding de auto-layout, gap, radio de esquina y efecto se mantengan en escala automáticamente.

/* Espaciado - variables Numéricas, escala base 4 */
space/1= 4px
space/2= 8px
space/3= 12px
space/4= 16px
space/6= 24px
space/8= 32px
space/12= 48px
space/16= 64px

/* Radio */
radius/none= 0
radius/sm= 4px
radius/md= 8px
radius/lg= 12px
radius/full= 9999px

/* Duración de movimiento */
duration/fast= 150ms
duration/base= 250ms
duration/slow= 400ms

Variables de Figma como Tu Motor de Tokens

Las Variables de Figma son el motor de tokens nativo - cuatro tipos (Color, Número, Cadena, Booleano) agrupados en colecciones, cada uno con soporte para múltiples modos para conjuntos de valores paralelos. La mayoría de los equipos los subutilizan: crean variables de color pero dejan el espaciado y el radio como números en bruto, por lo que el auto-layout se sale de escala y el padding diverge entre diseñadores. Los usuarios de Atomize que pueblan completamente las colecciones Numéricas para espacio, radio y movimiento ven que las revisiones de componentes caen de horas a minutos porque cada valor se rastrea hasta un token con nombre. Alias las primitivas en semánticas usando el selector de variables (el icono de cubo) para que la relación sea explícita, navegable y aplicada dentro del archivo.

Configuración mínima de colecciones

  1. Crea ‘Primitivas - Color’: pasos de paleta en bruto, sin modos. Restringe la edición a los propietarios del sistema.
  2. Crea ‘Semántica - Color’: variables aliasadas a primitivas. Añade modos Claro y Oscuro; establece valores por modo.
  3. Crea ‘Primitivas - Espacio’: variables Numéricas para tu escala de espaciado.
  4. Crea ‘Primitivas - Radio’ y ‘Primitivas - Movimiento’ como variables Numéricas.
  5. En cada componente, vincula rellenos, trazos, padding, gap, radio de esquina y texto a Variables - nunca a valores en bruto.

Modos: temas sin componentes duplicados

Los modos viven en una colección y definen conjuntos de valores paralelos. La colección Semántica - Color tiene modos Claro y Oscuro; cada variable semántica obtiene dos valores. Aplica el modo a nivel de frame para previsualizar el flujo completo en tema oscuro sin tocar un solo componente. Añade modos solo cuando toda la colección necesite valores paralelos; los ejes no relacionados (temas de color vs densidad) pertenecen a colecciones separadas.

Alcances: dónde se permite una variable

Los alcances controlan en qué propiedades de diseño aparece una variable. Una variable de color de texto con alcance en ‘Relleno de Texto’ no aparecerá en el selector de trazo. Una variable de espaciado con alcance en ‘Gap’ y ‘Padding’ no aparecerá en el radio de esquina. Los alcances ajustados previenen la aplicación incorrecta accidental y reducen el ruido del selector a medida que la biblioteca crece.

Cómo Configurar Design Tokens en Figma: Paso a Paso

  1. Crea una colección Primitivas - Color: pasos de paleta en bruto (gray/50 hasta gray/950, blue/600, red/600). Sin modos, sin alias - solo valores. Restringe el acceso de edición a los propietarios del sistema.
  2. Crea una colección Semántica - Color: añade modos Claro y Oscuro. Alias cada variable semántica a una primitiva usando el icono de cubo en el selector de valores - nunca introduzcas valores hex directamente.
  3. Crea colecciones Primitivas - Espacio y Primitivas - Radio usando variables Numéricas. Establece tu escala de espaciado (4, 8, 12, 16, 24, 32, 48, 64) y pasos de radio (0, 4, 8, 12, 9999).
  4. Vincula cada componente: rellenos y trazos a variables Semántica - Color, padding y gap a Primitivas - Espacio, radio de esquina a Primitivas - Radio. Nunca vincules un componente directamente a una variable Primitiva - Color.
  5. Configura la exportación: usa Atomize o haz clic derecho en una colección → Exportar a JSON para generar propiedades personalizadas CSS, constantes TypeScript o JSON DTCG. Añade este paso a tu lista de verificación de publicación de biblioteca para que los archivos de tokens estén actualizados con cada lanzamiento.

Nombrar Tokens

Los nombres de los tokens son la API pública compartida por diseñadores y desarrolladores - los malos nombres crean deriva que rompe silenciosamente el tema. La restricción es que los nombres semánticos deben mantenerse significativos en todos los modos: text/gray es incorrecto porque deja de tener sentido en el momento en que añades un tema oscuro; text/subdued es correcto porque describe la intención, no un tono. El patrón category/role/variant (color/text/primary, spacing/gap/md) se mapea directamente a las convenciones de propiedades personalizadas CSS (--color-text-primary), por lo que las rutas de Figma y los nombres de código se mantienen sincronizados sin capa de traducción. Acuerda el caso y las convenciones de nomenclatura una vez, documéntalos en las descripciones de variables y aplícalos en las revisiones de biblioteca.

El patrón de nomenclatura incorrecta más común que Atomize marca en las auditorías son los nombres semánticos codificados por tono: text/blue, border/gray-300, background/white. Pasan la revisión en modo claro porque el nombre y el valor resuelto coinciden. Se rompen silenciosamente en el momento en que se asigna un valor de modo oscuro - la variable todavía existe y se resuelve en algo, pero el nombre ahora miente sobre a qué apunta. La primera vez que un ingeniero abre las herramientas de desarrollador del navegador y ve --text-blue resolviéndose en casi blanco, la confianza en el sistema de tokens queda dañada. Renombra con una ventana de deprecación, documenta el reemplazo basado en roles en la descripción de la variable y elimina el nombre antiguo en la próxima versión mayor.

Exportar Tokens al Código

Los tokens solo se convierten en un contrato compartido cuando los mismos nombres se envían a la base de código - un token que solo existe en Figma es una nota privada. Sin una canalización de sincronización, las actualizaciones de diseño y los valores de código divergen silenciosamente: los ingenieros codifican valores hex porque no pueden leer de forma fiable el archivo de Figma, y el sistema de tokens se vuelve decorativo. Atomize lee tus Variables de Figma directamente y exporta archivos de tokens estructurados - JSON, propiedades personalizadas CSS o constantes TypeScript - para que el repositorio siempre refleje el estado actual de la biblioteca sin copiar y pegar manualmente. Conecta la canalización una vez y cada publicación de biblioteca se convierte en una actualización de código.

Una exportación CSS típica de una colección de color semántica. En modo oscuro los mismos nombres de variable se resuelven en diferentes valores - la aplicación cambia de tema alternando un atributo de datos, no cargando una segunda hoja de estilos.

/* Tokens de color semántico - modo Claro */
--color-background-default:     #f9fafb;
--color-text-primary:           #111827;
--color-text-subdued:           #4b5563;
--color-interactive-default:    #2563eb;
--color-interactive-destructive: #dc2626;

/* Modo oscuro: alternado via [data-theme="dark"] en <html> */
[data-theme="dark"] {
  --color-background-default:   #030712;
  --color-text-primary:         #f9fafb;
  --color-text-subdued:         #9ca3af;
  --color-interactive-default:  #3b82f6;
}

Un token solo en Figma es una nota privada. Un token en Figma y en la canalización de construcción es un contrato compartido.

Comparación de formatos de exportación de tokens

FormatoIdeal paraSoporte de herramientasLimitación clave
Propiedades personalizadas CSSProyectos web, todos los navegadores modernosAtomize, Style Dictionary, todas las principales herramientasSin metadatos de tipo de token; no compila para plataformas nativas
JSON DTCGCanalizaciones multiplataforma (web, iOS, Android)Style Dictionary, Theo, Token TransformerRequiere $type limpio en cada token; estructura estricta
Constantes TypeScriptBases de código de tipo seguro, autocompletado de design tokensAtomize, scripts de construcción personalizadosSe requiere paso de construcción; no útil para proyectos solo CSS
Variables SCSSProyectos web heredados, hojas de estilos de diseño intensivoLa mayoría de los plugins de exportaciónSin soporte de alias; los valores se duplican en lugar de referenciarse

Mejores Prácticas

  • Lanza las primitivas antes que las semánticas; alias, nunca dupliques valores en bruto en componentes.
  • Restringe el acceso de edición a las colecciones primitivas; el trabajo del día a día ocurre en las semánticas.
  • Usa las descripciones de variables para la intención, los pares de contraste y los avisos de deprecación.
  • Versiona las exportaciones de tokens junto con los lanzamientos de biblioteca - mismo ritmo, mismo changelog.
  • Tokeniza las decisiones recurrentes; los casos extremos puntuales no necesitan un token.
  • Audita anualmente: fusiona duplicados, elimina tokens no utilizados, documenta cualquier renombrado que rompa compatibilidad.

Errores Comunes

  • Vincular primitivas directamente en los componentes - pierdes la indirección semántica; los cambios de tema requieren ediciones manuales de componentes.
  • Demasiados modos en una sola colección - divide los ejes no relacionados (temas de color vs densidad) en colecciones separadas.
  • Variables de cadena para cada número - usa el tipo Numérico para espacio y radio para que la matemática de auto-layout permanezca consistente.
  • Palabras de tono en nombres semánticos (text/blue, background/white) - se rompen cuando cambia la paleta.
  • Sin canalización de exportación - ingeniería inventa nombres paralelos; la deriva está garantizada.

Interoperabilidad DTCG

El cumplimiento de DTCG protege tu sistema de tokens contra los cambios de cadena de herramientas al establecer un formato JSON portátil y agnóstico al parser. La mayoría de los equipos hoy en día usan esquemas de exportación propietarios vinculados a un único plugin - cuando ese plugin queda obsoleto o se añade una nueva plataforma, todo el archivo de tokens debe migrarse manualmente. La especificación DTCG del W3C da a cada token un $value y un $type (color, dimensión, duración, sombra, etc.), y herramientas como Style Dictionary y Token Transformer leen ese formato de forma nativa sin parsers personalizados. La dirección de exportación de Variables de Figma se alinea con DTCG, por lo que la nomenclatura category/role/variant se mapea limpiamente a la jerarquía de grupos y sobrevive los cambios de cadena de herramientas sin renombrar. Estructura tus tokens como si fueran a dejar Figma - porque eventualmente lo harán.

Lectura Relacionada

Veredicto final - Design Tokens de Figma

Los design tokens construidos sobre una arquitectura de dos capas son la única base que escala - las primitivas guardan valores en bruto, las semánticas son dueñas de la intención del producto y la brecha entre ellas es donde el modo oscuro, los cambios de marca y las variantes de densidad viven de forma gratuita. La inversión es al principio: obtener correctamente las colecciones, la nomenclatura y la canalización de exportación en el primer sprint significa que cada cambio futuro es una edición de valor en lugar de una cirugía de componentes. Los usuarios de Atomize informan consistentemente que la primera exportación completa de tokens a CSS es el momento en que el sistema de diseño deja de ser un artefacto de Figma y empieza a ser un activo de ingeniería compartido. Construye la estructura temprano, trata el archivo de tokens como fuente de verdad y el sistema paga rendimientos compuestos durante toda la vida del producto.

Las Variables son cómo implementas los design tokens en Figma. 'Design token' es el concepto (un valor con nombre para una decisión de interfaz de usuario); las Variables son el mecanismo nativo - colecciones, alias, modos - que reemplaza los estilos ad-hoc para valores sistemáticos.
Variables para cualquier cosa que necesite tema, alias o valores multimodo. Los estilos siguen siendo útiles para presets de texto únicos o efectos, pero un sistema token-first centraliza las decisiones en Variables y las referencia desde estilos o componentes según sea necesario.
Empieza con dos por preocupación: primitivas y semánticas para color; lo mismo para espacio si la escala no es trivial. Añade colecciones cuando la propiedad, los ejes de modo o el ritmo de lanzamiento difieren - no para cada experimento.
Introduce primero las variables semánticas y alias a tus valores de color existentes. Vuelve a vincular los componentes una categoría a la vez (rellenos antes que trazos antes que texto). Publica notas de migración; nunca renombres tokens sin una ventana de deprecación.
Un archivo estructurado (JSON, propiedades personalizadas CSS o constantes TypeScript) con nombres estables que coincidan con las rutas de Variables en Figma, más un documento corto para cualquier excepción específica de plataforma. Atomize genera ese artefacto automáticamente desde tus Variables.
Comienza con una colección Primitivas - Color con valores hex en bruto, luego crea una colección Semántica - Color donde cada variable alias una primitiva usando el icono de cubo. Añade variables Numéricas para espaciado y radio en colecciones separadas. Vincula los componentes únicamente a variables semánticas. Consulta la sección de configuración paso a paso anterior para la secuencia completa.
Los design tokens son el concepto - un valor con nombre que comparten diseño y código en lugar de valores hex o píxeles en bruto. Las Variables de Figma son la implementación nativa de ese concepto dentro de Figma: ranuras tipadas (Color, Número, Cadena, Booleano) que soportan alias y modos. En la práctica los términos se usan de forma intercambiable en un flujo de trabajo Figma-first.
Haz clic derecho en cualquier colección de Variables y elige Exportar a JSON para obtener un archivo alineado con DTCG, luego ejecútalo a través de Style Dictionary para generar propiedades personalizadas CSS. Atomize automatiza esto de extremo a extremo: lee tus colecciones de Variables y escribe un archivo CSS listo para importar con correcta separación de modos para temas claro y oscuro, sin paso de construcción manual.
Ver todo

Síguenos en todas las plataformas