Saltar al contenido
CRM Postventa documentación

Arquitectura / Decisiones

ADR-06 Un sistema de tokens compartido

ADR-06 · Un sistema de tokens compartido

Estado: aceptada · Impacto: alto

Contexto

Dos aplicaciones —React web y React Native— tienen que verse como el mismo producto. Sin un mecanismo, divergen en semanas.

Decisión

Un paquete de tokens en tres niveles que compila a artefactos para las dos plataformas. Ver Los tres niveles.

Por qué no una guía de estilos

Una guía de estilos es un documento que se desactualiza. Un sistema de tokens es código que se compila: si alguien cambia el verde de marca, la web y la app cambian en el mismo commit, y no pueden desincronizarse porque ninguna de las dos tiene el color escrito.

El truco que hace posible la paridad

Los colores se emiten como canales RGB sueltos (--crm-primary: 21 125 77) y el preset los envuelve en rgb(var(--crm-primary) / <alpha-value>). Eso hace que bg-primary, bg-primary/40 o text-fg-muted existan y signifiquen lo mismo en Tailwind y en NativeWind, con soporte de tema oscuro por la misma clase .dark.

Prueba de que funciona

Al construir la app móvil se verificó la paridad midiendo el estilo calculado de cada badge y comparándolo con tokens.json. Coinciden exactamente en claro y en oscuro.

Y una prueba indirecta más convincente: cuando lucide 1.x retiró los iconos de marca y Facebook dejó de existir, bastó cambiarlo en el token para que las dos plataformas sustituyeran igual. Sin el sistema, cada una habría elegido un icono distinto.

Relacionado: Los tres niveles · Paridad entre web y móvil

Enlazan aquí