🎨 Sistema de diseño y estándares de desarrollo de MenuQR

Este documento establece las directrices obligatorias para el diseño y desarrollo del ecosistema MenuQR.


1. Sistema de Diseño (Corporate SaaS)

Estilo Linear/Stripe: denso, limpio, basado en bordes, profesional.

A. Variables CSS (src/app.css)

VariableValorUso
--bg-app#fafafaFondo de la aplicación
--bg-surface#ffffffSuperficies/cards
--border-default#e2e8f0Bordes principales
--text-primary#111827Texto principal
--text-secondary#6b7280Texto secundario
--text-tertiary#9ca3afTexto terciario/placeholders
--brand-600#2563ebAcento/brand
--danger#ef4444Errores/peligro
--radius-sm6pxBadges, chips
--radius-md8pxCards, inputs, botones
--radius-lg10pxModales, contenedores

B. Tipografía (Inter)

ElementoTamañoWeightLetter-spacing
Base (html)15px--
H11.5rem600-0.02em
H21.25rem600-0.015em
H31.1rem600-0.01em
Body0.95rem500-
Labels0.7rem6000.05em (uppercase)

Regla: Máximo font-weight 600. NUNCA usar 700/800/900.

C. Geometría

  • Bordes: 1px solid en lugar de sombras pesadas
  • Radios máximos: 10px (—radius-lg). NUNCA > 12px
  • Sombras: mínimas o inexistentes. Preferir bordes
  • Padding: compacto (0.75rem - 1.25rem)
  • Iconografía: @lucide/svelte exclusivamente

D. Clases Globales (app.css)

ClasePropósito
.btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-iconBotones
.badge, .badge-gray, .badge-green, .badge-red, .badge-blue, .badge-yellowBadges semánticos
.cardContenedor card con borde
.page-container, .page-headerLayout de página
.table-containerContenedor de tabla
.empty-state, .loading-stateEstados
.modal-overlay, .modalModales

2. Estándares Técnicos

A. Reactividad

MenuQR utiliza Svelte 5 y TypeScript:

  • Runes: $state y $derived (no stores de Svelte 4)
  • Stores de negocio: src/lib/store/ (business, cart, notifications)
  • Transiciones: fade, slide, fly de Svelte
  • Notificaciones sonoras: Web Audio API (AudioContext), no <audio> tag

B. Arquitectura SaaS (3 Niveles)

  1. Staff / Super Admin (/staff): Gestión global, merchants, planes, soporte
  2. Merchant Admin (/dashboard): Catálogo, pedidos (Kanban), configuración
  3. Customer UI (/c/[slug]): Menú público, carrito, checkout

C. Package Manager y Comandos

  • Package manager: pnpm@11.1.2 (obligatorio)
  • Node: >=20
  • Verificación: pnpm check antes de cualquier commit

3. Reglas para Agentes de IA

  1. NUNCA usar font-weight 700, 800 o 900. Usar 500 o 600.
  2. NUNCA usar border-radius mayor a 12px. Preferir —radius-sm/md/lg.
  3. NUNCA usar sombras grandes. Preferir bordes 1px solid.
  4. SIEMPRE usar las clases globales de app.css antes de crear estilos inline.
  5. SIEMPRE mantener la lógica de <script> intacta al rediseñar templates.
  6. SIEMPRE ejecutar pnpm check después de cambios.

🔗 Documentación Relacionada