Este template define la estructura recomendada para la guía de diseño de un proyecto construido con AI coding agents. Está extraído de la GUIA_DISENO.md de Virso (1134 líneas co-creadas con Claude Code durante 5 fases de implementación). Principio: Este documento es EVOLUTIVO. No se escribe completo al inicio. Se empieza con las secciones obligatorias y crece conforme se implementa. Cada sesión de implementación puede agregar gotchas, componentes, o patrones nuevos. Relación con otros documentos:
UX_PATTERNS_PROTOCOL.md= principios agnósticos (Capa 1, no cambia entre proyectos)GUIA_DISENO.md= especificaciones de proyecto (Capa 2, este documento, único por proyecto)
Cómo usar este template
- Copiar como
docs/GUIA_DISENO.mden tu proyecto - Llenar las secciones marcadas como [OBLIGATORIO] antes de la primera sesión de implementación de UI
- Las secciones [CRECE CON EL PROYECTO] se van llenando conforme se implementa
- Las secciones [OPCIONAL] se agregan si el proyecto las necesita
- Eliminar toda la guía de uso y los comentarios
<!-- -->cuando el documento esté en uso
Índice
- Paleta de colores — OBLIGATORIO
- Tipografía — OBLIGATORIO
- Espaciado y bordes — OBLIGATORIO
- Sistema de temas — OBLIGATORIO si hay dark mode
- Layout principal — OBLIGATORIO
- Componentes UI — CRECE CON EL PROYECTO
- Patrones de página — CRECE CON EL PROYECTO
- Animaciones y motion — OPCIONAL
- Iconografía — OBLIGATORIO
- Accesibilidad — OBLIGATORIO
- Internacionalización — OPCIONAL
- Gotchas del framework CSS — CRECE CON EL PROYECTO
- Responsive design — OBLIGATORIO
- Estructura de archivos UI — OBLIGATORIO
- Efectos visuales especiales — OPCIONAL
- Checklist para nuevas funcionalidades — OBLIGATORIO
Principio fundamental
{Tu principio fundamental de diseño aquí.}1. Paleta de colores [OBLIGATORIO]
1.1 Colores principales
1.2 Reglas de contraste
- {Color problemático}: ratio {X:1} contra {fondo}. Solución: {token alternativo}
- Regla:
{clase para texto de marca}para texto legible, NUNCA{clase primary}sobre fondos claros
1.3 Tokens del tema
1.4 Tokens semánticos de estado [CRECE CON EL PROYECTO]
1.5 Fondos semánticos (transparencias) [CRECE CON EL PROYECTO]
2. Tipografía [OBLIGATORIO]
2.1 Font stacks
2.2 Escala tipográfica
2.3 Reglas
- {Fuente} en todos los headings y títulos
- Nunca
{peso prohibido}(ej: font-thin, font-light) - {Otras reglas tipográficas del proyecto}
3. Espaciado y bordes [OBLIGATORIO]
3.1 Border radius
Patrón:
{radio grande} para containers, {radio pequeño} para controles internos.
3.2 Sombras
3.3 Espaciado común
4. Sistema de temas [OBLIGATORIO si hay dark mode]
4.1 Arquitectura
4.2 Reglas de adaptación entre modos
Fórmula para nuevos colores: {ej: subir lightness +0.07, bajar chroma -0.03, invertir foreground}
4.3 Qué NO hacer
- NO dejar el mismo color idéntico en ambos modos
- NO invertir el color simplemente
- {Otras reglas específicas del proyecto}
5. Layout principal [OBLIGATORIO]
5.1 Estructura
5.2 Sidebar
- Modo: {collapsible, fixed, drawer, etc.}
- Ancho expandido: {valor}
- Ancho colapsado: {valor}
- Mobile: {Sheet, drawer, overlay, etc.}
- Persistencia: {cookie, localStorage, etc.}
- Keyboard shortcut: {atajo}
5.3 TopBar / Header
5.4 Focus layout (segundo nivel) [si aplica]
Header del focus layout
6. Componentes UI [CRECE CON EL PROYECTO]
6.1 Biblioteca base
{Cantidad} componentes en{ruta}:
{Lista de componentes}
6.2 Componentes con reglas especiales
{Nombre del componente}
- Variantes: {listar}
- Regla especial: {lo que la AI debe saber}
- Gotcha: {error común al usarlo}
7. Patrones de página [CRECE CON EL PROYECTO]
7.1 {Nombre del patrón} (ej: Auth Pages)
{Descripción breve del layout y comportamiento}7.2 {Nombre del patrón} (ej: Listado con filtros)
{Descripción breve del layout y comportamiento}7.3 Empty state
{Icono} + heading + subtítulo + CTA8. Animaciones y motion [OPCIONAL]
8.1 Keyframes
8.2 Reglas
- Solo animar
transformyopacitypara 60fps - Duraciones: {micro}ms (micro), {standard}ms (transiciones), {entrance}ms (entradas)
- NO animar
height,width,top,left will-change: transformsolo donde sea estrictamente necesario
8.3 Reduced motion
9. Iconografía [OBLIGATORIO]
Librería: {nombre} — única librería de iconos.- Iconos decorativos:
aria-hidden="true" - NO mezclar librerías de iconos
10. Accesibilidad [OBLIGATORIO]
10.1 Contraste WCAG AA
- Texto normal: 4.5:1 mínimo
- Texto grande: 3:1 mínimo
- {Notas específicas del proyecto sobre contraste}
10.2 Focus visible
Todos los interactivos:{clases de focus}
10.3 ARIA patterns
10.4 Formularios accesibles
10.5 Landmarks
10.6 Heading hierarchy
11. Internacionalización [OPCIONAL]
- Librería: {nombre y versión}
- Idiomas: {idiomas soportados}
- Mensajes:
{ruta a archivos de mensajes}
- NUNCA hardcodear strings de UI
- {Reglas de formato, variables, pluralización}
12. Gotchas del framework CSS [CRECE CON EL PROYECTO]
12.1 {Gotcha 1}
Problema: {qué sale mal} Solución: {cómo resolverlo} Ejemplo:12.2 {Gotcha 2}
13. Responsive design [OBLIGATORIO]
13.1 Breakpoints
13.2 Patrones responsive por componente
14. Estructura de archivos UI [OBLIGATORIO]
15. Efectos visuales especiales [OPCIONAL]
15.1 {Nombre del efecto}
- Cómo funciona: {descripción técnica breve}
- Dónde se usa: {componentes que lo usan}
- Reglas:
- {Regla 1 — qué respetar para que el efecto funcione}
- {Regla 2 — qué NO hacer}
16. Checklist para nuevas funcionalidades [OBLIGATORIO]
Colores y tokens
- Cero colores hardcodeados — solo tokens semánticos
- {Regla de contraste específica del proyecto}
Componentes
- Reutilizar componentes existentes de
{librería} - {Librería de iconos} para todos los iconos
- {Patrón de border-radius} respetado
Tema (si aplica dark mode)
- Funcional en light y dark sin glitches
- Contraste WCAG AA verificado
Accesibilidad
- Focus visible en todos los interactivos
-
aria-labelen botones de solo ícono -
aria-hidden="true"en iconos decorativos -
role="alert"en errores dinámicos - Heading hierarchy correcta
- {Otras reglas de a11y del proyecto}
i18n (si aplica)
- Textos via sistema de i18n — no hardcodeados
Responsive
- Funciona en mobile ({ancho mínimo}) y desktop
Framework CSS
- {Gotcha 1 verificado}
- {Gotcha 2 verificado}
Notas sobre este template
Secciones obligatorias (llenar antes de implementar UI)
- Paleta de colores (tokens mínimos)
- Tipografía (font stacks + escala)
- Espaciado y bordes (radios + espaciado común)
- Layout principal (estructura + sidebar)
- Iconografía (librería + tamaños)
- Accesibilidad (contraste + ARIA + landmarks)
- Responsive (breakpoints)
- Estructura de archivos UI
- Checklist
Secciones que crecen con el proyecto
- Componentes UI → agregar cada componente nuevo con sus reglas
- Patrones de página → agregar cada tipo de página implementado
- Gotchas → agregar cada bug/gotcha descubierto
- Tokens de estado → agregar conforme se definen estados del dominio
- Fondos semánticos → agregar conforme se establecen patrones de color
Secciones opcionales (agregar si el proyecto las necesita)
- Sistema de temas (solo si hay dark mode)
- Animaciones (solo si hay un sistema definido)
- i18n (solo si hay multi-idioma)
- Efectos visuales especiales (glassmorphism, gradientes, etc.)
Señales de que tu guía necesita actualización
- La AI genera un componente con estilos que no siguen la guía → agregar la regla
- Descubres un bug de CSS que la AI repite → agregar a gotchas
- Implementas un patrón de página nuevo → documentar en sección 7
- Cambias tokens de color → actualizar sección 1
- Agregas un componente a la librería → documentar en sección 6 si tiene reglas especiales
Tamaño esperado
- Al inicio: ~100-150 líneas (secciones obligatorias con valores mínimos)
- Proyecto maduro: ~500-1000+ líneas (como la guía de Virso con 1134 líneas)
- Esto es normal y esperado — la guía DEBE crecer con el proyecto