01Design Tokens — Color
Usa siempre el token semántico, nunca el valor hexadecimal directo en código.
CTAs, links activos, focus rings
Hover sobre primario
Fondos suaves, chips, badges
Acciones secundarias, acentos cálidos
Completado, activo, positivo
Alertas, pausado, pendiente
Errores, eliminaciones, crítico
Texto principal, headings
02Tipografía
Tres familias con responsabilidades distintas. No mezclar fuera de su rol.
03Espaciado
Escala fija de 8 pasos. Nunca usar valores arbitrarios fuera de esta escala.
05Badges de Estado
Indican el estado del plan nutricional. Solo texto semántico; nunca comunicar estado sólo por color.
06Inputs de Formulario
Para el registro de comidas, peso y objetivos. Altura mínima 44px. Mensajes de error inline siempre.
07Plan Cards
Elemento central del dashboard. Muestra resumen del plan nutricional del usuario.
08Reglas de Accesibilidad
Cada criterio es testable. Si no puedes escribir un test para él, no es una regla.
09Anti-patrones
Ejemplos de lo que NO hacer — extrae a tickets de deuda técnica si los encuentras.
Usar #7C61D4 directamente en un componente en lugar del token var(--color-primary).
Resultado: al cambiar la paleta global, ese componente queda huérfano y hay que cazarlo manualmente.
Usar siempre el token semántico: background: var(--color-primary).
Un cambio en :root se propaga a toda la UI de forma predecible.
Poner dos botones btn-primary juntos ("Guardar" y "Publicar") con el mismo peso visual.
Genera ambigüedad de acción principal y aumenta tasa de error del usuario.
Una acción primary + la secundaria como btn-ghost. Jerarquía visual clara.
El usuario sabe cuál es la acción recomendada sin leer ambos labels.
Indicar un estado de error solo cambiando el borde del input a rojo, sin texto explicativo.
Falla WCAG 1.4.1 (uso del color) — usuarios daltónicos no perciben el cambio.
Color rojo en borde + icono de error + mensaje de texto con role="alert" inline.
Supera WCAG 1.4.1 y es legible por lectores de pantalla.
10QA Checklist — Code Review
Ejecuta antes de cada PR que toque componentes UI. Falla el PR si algún must falla.