Sistemas de diseño que no se fosilizan: un playbook práctico para agencias con componentes flexibles a escala
La mayoría de los sistemas de diseño en agencias no fallan porque la UI sea mala: fallan porque el sistema se convierte en un guardián. Aquí tienes cómo construir restricciones flexibles, gobernanza ligera y rutas de migración que permitan seguir entregando rápido entre clientes y marcas.
Un sistema de diseño no es un producto. En el mundo de las agencias, es un servicio—uno que tiene que sobrevivir a alcances cambiantes, equipos rotativos, nuevas marcas y la ocasional petición de “necesitamos esto en producción para el viernes”.
Si tu sistema está ralentizando la entrega, no es “maduro”. Está fosilizado.
El objetivo no es la consistencia perfecta. El objetivo es el cambio predecible—sin romper la calidad, la accesibilidad ni la velocidad.
Este playbook es para líderes de agencia, responsables de sistemas de diseño y desarrolladores frontend que necesitan un sistema que escale entre clientes y se mantenga lo bastante flexible como para evolucionar.
Por qué la mayoría de los sistemas de diseño fallan en el entorno de agencia
Los sistemas de diseño suelen colapsar bajo presiones que parecen exclusivamente “de agencia”, pero que en realidad son solo la realidad multiproducto.
Modo de fallo #1: La librería de componentes se convierte en el sistema
Los equipos entregan un conjunto pulido de componentes (botones, tarjetas, modales), declaran victoria y luego la realidad golpea:
- Un nuevo cliente tiene una marca con una voz tipográfica distinta
- Un sitio legacy tiene rarezas de layout que no encajan limpiamente
- Marketing necesita una landing puntual que rompe la retícula
Cuando el sistema se define como “los componentes”, cualquier desviación se siente como una traición. Los diseñadores empiezan a rodear el sistema. Los desarrolladores empiezan a bifurcarlo.
Conclusión: Una librería de componentes es un resultado. El sistema son las reglas que generan resultados.
Modo de fallo #2: La gobernanza se convierte en un cuello de botella
Las agencias a menudo copian patrones de gobernanza enterprise (comités, consejos, ciclos de revisión de varias semanas) porque suena “responsable”. Pero los plazos de agencia castigan la burocracia.
Síntomas:
- Los PRs se quedan esperando aprobación
- Los diseñadores dejan de contribuir porque es “demasiado proceso”
- El sistema se convierte en un artefacto mantenido por un único héroe
Conclusión: La gobernanza debería aumentar la confianza y la velocidad, no crear un segundo backlog.
Modo de fallo #3: No hay historia de migración (así que el sistema se queda en lo teórico)
Si tu sistema solo funciona para proyectos greenfield, se convierte en una presentación.
Las agencias conviven con:
- espagueti de CSS legacy
- ecosistemas multi-marca
- rediseños parciales
Sin estrategias de migración, los equipos no pueden adoptar el sistema de forma incremental—así que no lo adoptan en absoluto.
Conclusión: La adopción es un problema de producto. Trata la migración como el onboarding.
Construye las bases correctas: tokens, primitivas, accesibilidad
Si quieres componentes que no se fosilicen, necesitas restricciones flexibles: reglas que creen consistencia sin dictar cada forma final.
Define “restricciones flexibles” (y por qué superan a las librerías rígidas)
Una librería de componentes rígida dice: “Usa esta tarjeta”.
Las restricciones flexibles dicen:
- Estos son los pasos de espaciado
- Estas son las escalas tipográficas
- Estos son los patrones de interacción
- Estos son los requisitos de accesibilidad
Entonces los componentes se vuelven componibles y adaptables a la marca.
Piensa en términos de física, no de arquitectura: define las fuerzas (tokens + guardarraíles), no el edificio.
Empieza con tokens que mapeen a decisiones, no a valores
Los tokens no son solo variables. Son decisiones con nombre.
Una jerarquía práctica de tokens que funciona entre clientes:
-
Tokens base (valores en bruto):
color.blue.600: #2563EBspace.4: 16pxradius.2: 8px
-
Tokens semánticos (significado):
color.text.primarycolor.surface.defaultcolor.border.subtlespace.stack.md(ritmo vertical)
-
Tokens de componente (opcionales, para componentes con alta variabilidad):
button.primary.bgbutton.primary.text
Regla general para agencias:
- Si varias marcas van a compartir el sistema, invierte más en tokens semánticos.
- Si una marca tiene muchos productos, los tokens de componente pueden reducir el churn.
Herramientas que facilitan esto:
- Figma Variables para modelado de tokens del lado de diseño
- Style Dictionary (Amazon) o Tokens Studio para pipelines de tokens
- Storybook para documentar el uso de tokens en contexto
Construye primitivas antes que componentes
Las primitivas son los “átomos” del sistema que hacen que los componentes sean flexibles.
Un set pragmático de primitivas:
- Tipografía:
Text,Heading,Link - Layout:
Stack,Inline,Grid,Container - Superficie:
Card,Panel,Divider - Básicos de formularios:
Input,Select,Checkbox,Radio - Feedback:
Toast,Alert,Tooltip
La jugada clave son las primitivas de layout. Las agencias a menudo se las saltan y luego se preguntan por qué cada página es custom.
Conclusión concreta: Si tu sistema tiene 40 componentes pero no tiene Stack o Grid, estás construyendo muebles sin madera estándar.
Integra la accesibilidad en la base (no en la fase de QA)
La accesibilidad es el indicador más rápido de si tu sistema es real.
Guardarraíles no negociables:
- Contraste de color: los tokens deben cumplir objetivos WCAG (AA por defecto; saber dónde importa AAA)
- Estados de foco: anillos de foco visibles para navegación con teclado
- HTML semántico: los botones son botones; los enlaces son enlaces
- ARIA solo cuando sea necesario: evita “ARIA como styling”
Flujo de trabajo práctico:
- Añade criterios de aceptación de accesibilidad a cada componente (ver abajo)
- Usa patrones con axe DevTools, Lighthouse y Testing Library
- Documenta interacciones de teclado en Storybook (no solo lo visual)
Si un componente no es accesible por defecto, no es un componente: es un pasivo.
Gobernanza sin burocracia
La gobernanza no es un comité. Es un conjunto de mecanismos ligeros que mantienen la calidad alta mientras permiten que los equipos avancen.
Elige un modelo de gobernanza que encaje con la realidad de agencia
Tres modelos que realmente funcionan:
-
Modelo de mantenedores (mejor para equipos pequeños)
- 1–2 mantenedores se encargan de estándares y merges
- Los contribuyentes abren PRs con plantillas
- Ventana semanal de revisión de 30 minutos
-
Modelo federado (mejor para agencias con múltiples squads)
- Cada squad tiene un “representante del sistema”
- Los representantes rotan mensualmente
- Backlog compartido + cadencia de revisión predecible
-
Modelo embebido en el cliente (mejor para retainers largos)
- La agencia mantiene el core
- El equipo del cliente se encarga de extensiones específicas del producto
- Límites claros: qué es core vs. qué es local
Conclusión: Estás optimizando para throughput + confianza, no para consenso.
El proceso mínimo viable: plantilla de PR + changelog + cadencia de releases
Si solo implementas tres artefactos de gobernanza, que sean estos:
- Plantilla de PR que obligue a la claridad
- Changelog que diga a los equipos qué cambió y por qué
- Cadencia de releases (aunque sea “cada dos semanas”)
Una plantilla de PR que evita el caos:
- ¿Qué problema resuelve esto?
- ¿Es un cambio breaking?
- Checklist de accesibilidad (teclado, foco, notas de lector de pantalla)
- Capturas de regresión visual
- Notas de migración (si aplica)
Conecta diseño e ingeniería con un lenguaje compartido
La mayoría de los problemas de “alineación diseño-dev” en realidad son problemas de naming.
Crea un lenguaje común del sistema:
- Nombres de tokens que coincidan con la intención (
surface.default, nogray.50) - Props de componentes que mapeen a decisiones de diseño (
tone,emphasis,density) - Definiciones claras: qué es un patrón vs. un componente vs. una plantilla
Luego añade criterios de aceptación que ambos lados puedan aprobar.
Ejemplo de criterios de aceptación para un Button:
- Soporta activación por teclado (Enter/Espacio)
- El estado de foco visible cumple requisitos de contraste
- El estado deshabilitado no se basa solo en color (cursor + opacidad + aria-disabled cuando haga falta)
- El estado de carga anuncia el progreso (aria-busy o patrón de live region)
- Los tamaños mapean a tokens de espaciado (sin padding puntual)
Conclusión: “Hecho” debería ser comprobable, no basado en sensaciones.
Evolucionar el sistema: versionado, deprecación, migraciones
Un sistema que no puede cambiar con seguridad terminará dejando de cambiar.
Versiona como un producto (aunque sea “solo una librería”)
Usa versionado semántico si distribuyes código:
- MAJOR: cambios breaking de API o visuales que requieren migración
- MINOR: nuevos componentes/funcionalidades, compatible hacia atrás
- PATCH: correcciones
Si principalmente documentas patrones (común en stacks con mucho Webflow), aun así versiona:
- Versiona tus guías
- Versiona tus tokens
- Versiona tus componentes/patrones como un conjunto
Herramientas:
- GitHub Releases + automatización de changelog
- Changesets para monorepos
- Despliegues versionados de Storybook
La deprecación es una funcionalidad
Las agencias a menudo evitan la deprecación porque parece overhead. Pero sin ella, obtienes divergencia silenciosa.
Una política limpia de deprecación:
- Marcar como deprecated en la documentación de inmediato
- Mantenerlo funcionando durante un ciclo de release minor (o una ventana de tiempo)
- Proporcionar un codemod o notas de migración
- Eliminar en el siguiente major
La deprecación es cómo te mantienes flexible sin acumular deuda de diseño.
Estrategias de migración para sitios legacy y ecosistemas multi-marca
La mayoría de los sistemas de agencia necesitan coexistir con legacy durante un tiempo. Planifícalo.
Estrategia 1: Adopción “strangler” (recomendada)
Primero envuelve páginas legacy con nuevas primitivas:
- Sustituye espaciado y tipografía por tokens
- Introduce primitivas de layout (
Stack,Grid) para reducir CSS custom - Cambia a componentes solo donde el ROI sea obvio (formularios, navegación)
Esto reduce el riesgo y evita un rewrite de big-bang.
Estrategia 2: Theming en ejecución dual para multi-marca
Para ecosistemas multi-marca, quieres estructura compartida con skins específicos por marca:
- Primitivas compartidas + APIs de componentes
- Temas de marca expresados como tokens semánticos
- Overrides de marca como capas pequeñas y explícitas
Aquí es donde brillan las variables CSS:
:rootdefine tokens semánticos[data-brand="x"]los sobreescribe
Estrategia 3: “Componentes adaptadores” para patrones legacy incómodos
A veces el markup legacy no puede cambiar rápido (restricciones de CMS, exports de Webflow, etc.). Crea adaptadores:
LegacyCardmapea el DOM antiguo a nuevos tokensLegacyButtonnormaliza estados
Haz que los adaptadores sean temporales y regístralos como deuda de migración.
Conclusión: La migración no es un proyecto de una sola vez. Es una pista de despegue gestionada.
Métricas y tooling para mantenerlo vivo
Si no puedes medir la salud del sistema, acabarás recurriendo a opiniones—y las opiniones no escalan entre equipos.
Mide lo que importa: reutilización, velocidad, accesibilidad
Tres métricas prácticas que los líderes de agencia realmente pueden usar:
-
Tasa de reutilización
- % de UI construida con componentes/primitivas del sistema
- Medir por uso de imports en código, uso de clases en Webflow o auditorías
-
Tiempo hasta entregar
- Cycle time para trabajo común (nueva landing, nuevo formulario, nueva sección de marketing)
- Vigila retrasos inducidos por gobernanza (tiempo de espera de revisión)
-
Cobertura de accesibilidad
- % de componentes con comportamiento de teclado documentado
- % cubierto por checks automatizados de a11y (axe)
- Número de regresiones por release
Si la reutilización es alta pero el tiempo de entrega empeora, tu sistema se está convirtiendo en una puerta—no en una palanca.
Stack de herramientas que encaja con flujos de trabajo de agencia
Una base sólida y moderna:
- Figma (Variables + propiedades de componentes)
- Storybook (docs + pruebas de interacción)
- Chromatic (regresión visual)
- axe-core + Testing Library (a11y + comportamiento)
- Changesets o workflows de GitHub Release (versionado)
- Notion/Linear/Jira para backlog del sistema con etiquetas claras
Si tu producción está muy centrada en Webflow:
- Trata tu página de Style Guide de Webflow como un artefacto de despliegue
- Replica tokens en variables CSS y fuerza su uso mediante convenciones de clases
- Documenta patrones con secciones reales, copiables y pegables (no capturas)
Conclusión: Invierte en la cadena de herramientas que reduce el debate y aumenta la repetibilidad.
Una plantilla de sprint de “mantenimiento del sistema”
La mayoría de los sistemas mueren porque nunca se les asigna tiempo real en el calendario. Así que prográmalo.
Aquí tienes una plantilla ligera de sprint que las agencias pueden ejecutar mensualmente (o cada 6 semanas) sin descarrilar el trabajo de clientes.
Objetivo del sprint
Mantener el sistema listo para entregar: reducir la deriva, desbloquear equipos y mejorar la calidad.
1) Intake (1–2 horas)
Recoge solicitudes de squads y equipos del cliente:
- Necesidades de nuevos componentes
- Huecos de tokens
- Reportes de bugs
- Problemas de accesibilidad
- Notas de “tuvimos que hacer un apaño con X”
Output: un backlog priorizado con etiquetas:
bug,a11y,migration,new,docs,breaking
2) Triage + registro de decisiones (1 hora)
Haz una reunión corta con una pareja de mantenedores: diseñador + ingeniero.
Decide:
- ¿Es una necesidad core o una extensión específica del producto?
- ¿Requiere cambios en tokens/primitivas?
- ¿Hay riesgo de cambio breaking?
Output: una entrada en el registro de decisiones (1 párrafo cada una). Esto se convierte en tu memoria institucional.
3) Construir + validar (2–4 días, según alcance)
Para cada ítem:
- Actualiza tokens/primitivas primero (cuando aplique)
- Implementa cambios de componentes
- Añade/ajusta criterios de aceptación
- Añade tests (unit + interacción + a11y)
- Añade ejemplos en Storybook (incluyendo edge cases)
4) Release + comunicar (2–3 horas)
Entrega con:
- Incremento de versión
- Entradas de changelog escritas para humanos
- Notas de migración
- Mensaje de “qué cambió / qué hacer ahora” en Slack/Teams
5) Seguimiento de adopción (1–2 horas)
Elige un proyecto real y aplica la actualización:
- Actualiza una plantilla de página
- Refactoriza un patrón legacy
- Elimina un componente adaptador
Conclusión: Cada sprint de mantenimiento debería terminar con adopción en producción, no solo con mejoras en la librería.
Conclusión: construye un sistema que pueda decir “sí” más a menudo
Un sistema de diseño que sobrevive al trabajo de agencia no es el que tiene más componentes. Es el que tiene:
- Restricciones flexibles (tokens + primitivas + guardarraíles)
- Gobernanza ligera (revisiones rápidas, versionado claro, changelogs reales)
- Lenguaje compartido entre diseño e ingeniería (más criterios de aceptación comprobables)
- Rutas de migración que respetan la realidad legacy
- Métricas que revelan cuándo el sistema ayuda—o cuándo te está frenando en silencio
Si quieres componentes que no se fosilicen, deja de tratar tu sistema como un museo. Trátalo como un producto que operas.
Los mejores sistemas de diseño para agencias no imponen consistencia: habilitan velocidad con estándares.
Si quieres, también puedo proporcionar una plantilla de PR lista para copiar y pegar, un checklist de criterios de aceptación para componentes comunes y un esquema de naming de tokens que funcione en clientes multi-marca.
