Design System: El Motor de Escala

Design System: El Motor de Escala

Arquitectura de Design Tokens y componentes reutilizables integrados con Nuxt UI y Tailwind, el sistema que hizo posible todo lo demás.

Duración
2022-2026
Rol
Sr. Product Designer · Design System Lead
~40%
Reducción en tiempo de diseño (de 2-3 horas a 20 minutos en tablas complejas)
40
Componentes en V2 con documentación en Figma y código
300+
Tokens totales. Sistema bilingüe: diseño e ingeniería
234
Iconos homologados. Librería limpia, sin redundancias
34
Imágenes documentadas, usadas en producción y centralizadas
5
Plataformas servidas: Client, Staff, Supplier, Employee y Website
01El problema

Sin un sistema compartido, diseño e ingeniería hablaban idiomas distintos. En producción, cada componente existía en tres versiones simultáneas.

El producto de GroWrk funcionaba sobre una base frágil. Los diseños originales habían nacido en PowerPoint y Google Slides. Había una paleta de colores en Figma, pero no un sistema. Cada feature nueva obligaba a reinventar decisiones ya tomadas.

El problema se volvió crítico al tercer año, durante la actualización de identidad visual. En producción convivían decenas de versiones del mismo botón, cada developer lo había resuelto a su manera. El Design System de Figma existía, pero ingeniería no lo implementaba: eran dos mundos paralelos.

El objetivo quedó claro: una sola fuente de verdad, compartida por diseño e ingeniería, construida sin detener el producto.

02El proceso: 3 etapas, 3 aprendizajes

Un Design System no se construye de una vez. Se cultiva.

El sistema pasó por dos iteraciones sobre una misma base y, finalmente, un rearranque tecnológico. Cada etapa resolvió el límite de la anterior.

V12022

La primera versión

  • Construida en paralelo al producto, sin congelar features
  • 31 componentes base, 250 tokens en 6 categorías, 330 iconos
  • Único usuario: yo
💡 El sistema existía pero nadie más lo usaba.
03Tokens

La capa atómica del sistema.

Definí más de 300 tokens de color, tipografía, espaciado, radios y sombras, organizados en una nomenclatura compartida por diseño e ingeniería. Un cambio en un token se propaga a todo el producto sin editar una sola pantalla a mano.

Los tokens de color se estructuraron en primitivos (valores base del brand) mapeados a tokens semánticos. Esto eliminó los overrides manuales entre temas y redujo el riesgo de error humano en diseños listos para producción. El espaciado y los radios se estandarizaron en escalas fijas, y los breakpoints se definieron como variables para automatizar el comportamiento responsivo.

GroWrk DS · V.1

Color

NameLight
Amber/100
#FFEFCC
Amber/200
#FFE3A3
Amber/400
#FFCA52
Amber/600
#FFB100
Amber/800
#8F6300
Blue/100
#C0D4F6
Blue/200
#9CBBF1
Blue/600
#1D5DCD
Blue/800
#0F306B
Charcoal/50
#F2F4F6
Charcoal/100
#E6EAED
Charcoal/200
#CED6DC
Charcoal/400
#9FAEBA
Charcoal/600
#708698
Charcoal/900
#3C4852
Charcoal/200-60%
#CED6DC
Charcoal/900-50%
#3C4852
Green/100
#E0F0D8
Green/200
#C8E4BB
Green/600
#6AB547
Green/800
#3B6427
Indigo/50
#F1F4FA
Indigo/100
#DCE4F3
Indigo/200
#B3C3E4
Indigo/600
#304D86
Indigo/800
#121E34
Inkwell/100
#CFD6DD
Inkwell/200
#C9D1D8
Inkwell/400
#99A9B6
Inkwell/600
#596C7C
Inkwell/900
#2A333B
Inkwell/200-60%
#C9D1D8
Inkwell/900-50%
#2A333B
Orange/100
#FEF4EB
Orange/200
#FCDFC4
Orange/600
#F38B2A
Orange/800
#A45409
Pink/100
#FEC7DF
Pink/200
#FD9FC8
Pink/600
#F4056D
Pink/800
#86033C
Purple/100
#CFC2E0
Purple/200
#B9A8D2
Purple/600
#66498D
Purple/800
#312343
Rred/100
#FBD2DB
Rred/200
#F8ADBD
Rred/600
#EA1744
Rred/800
#850C26
Yellow/100
#FEF9E3
Yellow/200
#FDF1BB
Yellow/600
#F8CF1D
Yellow/800
#A08305
White/white
#FFFFFF
White/white-50%
#FFFFFF
White/transparent
#FFFFFF
04Componentes

Del token al componente compuesto.

Sobre los tokens se construyó la librería: 40 componentes documentados en Figma y código, cada uno con sus variantes y estados. El objetivo del refactor fue reducir variantes duplicadas y componer en lugar de multiplicar.

button

From this file

Type
Color
Size
Disabled
State
Icon
Text
Text
Show icon trailing
05Documentación

Un componente sin documentación es una sugerencia, no un estándar.

Toda la fuente de verdad vive en Notion, conectada a Figma y al código. Cada componente tiene su propia entrada con la misma estructura, para que cualquier persona (diseño, ingeniería o alguien que acaba de entrar) sepa exactamente cómo y cuándo usarlo sin preguntar.

components-documentation-notion.jpg

Cada entrada documenta:

  • Reglas de uso. Las condiciones bajo las que el componente aplica, y las que no.
  • Tokens exactos. Los valores precisos que viven en Figma (color, espaciado, tipografía, radios), enlazados a su token, no copiados a mano.
  • Contexto de uso. En qué pantallas y flujos se usa, y con qué propósito.
  • Do's and Don'ts. Ejemplos concretos de uso correcto e incorrecto, para cerrar la puerta a la interpretación.
  • Histórico de cambios. Un registro de cada modificación que ha sufrido el componente, con fecha y motivo. Y un espacio para proponer cambios futuros que se discuten con el equipo antes de aplicarse.

El histórico es la pieza que mantiene vivo el sistema. Ningún componente cambia por decisión unilateral: cada ajuste queda documentado y se consulta con el equipo. Eso evita que el DS se fragmente con el tiempo, que es exactamente el problema del que partimos.

La documentación no es el final del trabajo de diseño. Es lo que lo vuelve reutilizable.

06Decisiones clave

Un Design System es una serie de decisiones sobre cómo quieres que un equipo trabaje.

Tratar el DS como producto, no como entregable.

Al inicio el sistema era mi proyecto: lo construía y lo mantenía solo. Cambié el proceso e introduje workshops por componente antes de publicarlo, con decisiones colectivas sobre funcionalidad, variantes y estados. La adopción dejó de ser una imposición: quien participa en definir, adopta. La diseñadora Jr. pasó de usar el sistema a proponer mejoras que retroalimentaron cada versión.

ProductCard: custom sobre base NUXT.

NUXT UI resolvía los componentes estándar, pero las cards de producto de GroWrk requerían lógica que UTable o UCard no cubrían de forma nativa. Construí el ProductCard combinando múltiples componentes NUXT en uno reutilizable. Las necesidades nuevas se integran como variante, no como componente nuevo. Menos deuda de consistencia, más velocidad de implementación.

Migrar a NUXT/Tailwind.

El DS custom de Figma estaba bien construido, pero el responsivo exigía mantenimiento en código que diseño no controlaba. La migración fue iniciativa de ingeniería y decidí abrazarla en lugar de defender el sistema propio. Adapté NUXT al lenguaje visual de GroWrk y documenté cada ajuste en Figma y código. El responsivo dejó de ser un conflicto y el sistema bilingüe cerró un gap de tres años.

Auditoría de iconos: de 330 a 234.

La librería había acumulado 330 iconos en dos años, muchos redundantes o sin uso en producción. Una auditoría completa de uso real eliminó redundancias, homologó estilos y dejó 234 iconos activos con nomenclatura consistente. El equipo dejó de perder tiempo eligiendo entre tres versiones del mismo icono.

07La siguiente capa - Diseño con IA

¿Y si el Design System pudiera diseñar contigo?

Con el sistema maduro y la documentación centralizada, las reglas ya estaban escritas y ordenadas. El siguiente paso fue convertirlas en contexto para que una IA generara UI fiel al sistema desde el primer prompt.

Esa exploración se volvió un proyecto por derecho propio. El Design System fue la base que lo hizo posible: sin tokens, componentes y reglas bien definidas, no habría contexto que darle a la IA.

Ver el caso completo: AI Playground →