UI/UX Playbook
Las grandes interfaces surgen de tres cosas hechas juntas: un punto de vista claro (quién, qué trabajo, qué sensación), un sistema coherente (tokens + componentes) y cientos de detalles correctos (estados, animación, accesibilidad, copy). Este playbook orquesta el arsenal de skills que cubren cada parte.
Flujo de trabajo para cualquier tarea de UI
Escálalo: un ajuste de botón necesita los pasos 5–7; una app nueva los necesita todos.
- Brief — Quién es la persona, cuál es el trabajo (verbo), qué contexto/dispositivo, qué sensación debería transmitir (palabras concretas). Infiere desde el código y la solicitud; haz solo una pregunta si una restricción crítica es desconocida (plataforma, marca existente, audiencia).
- Dirección — elige el carácter estético y de interacción antes del código. Mira 2–4 referencias reales para este tipo de pantalla (
ui-stack-advisor/references/inspiration.md). - Sistema — tokens y DESIGN.md (
design-system-builder; colores víacolor-theory). ¿Proyecto existente? Lee y sigue su sistema; extiéndelo, no lo bifurques. - Stack — librerías de componentes/animación (
ui-stack-advisor). Usa primitivas accesibles; no implementes a mano diálogos, menús, comboboxes, selectores de fecha, toasts. - Construcción — estructura y jerarquía primero (layout, tipografía, espaciado), luego color, luego detalle. Contenido real, no lorem ipsum. Todos los estados: carga, vacío, error, parcial, éxito, deshabilitado, contenido largo.
- Animación — solo donde tenga un propósito (feedback, continuidad, cambio de estado); consulta los skills de animación.
- Verificar mirando — renderízalo (servidor de desarrollo + Playwright/Chrome MCP/simulador), verifica en tamaños reales (390, 768, 1280+; teléfono pequeño, tablet), ambos temas, solo teclado, zoom al 200% / Dynamic Type más grande. Corrige lo que veas en lotes.
- Revisión — ejecuta la lista de verificación previa al envío a continuación o un skill de revisión.
Qué skill para qué (enrutamiento)
| Necesidad | Cargar |
|---|---|
| Dirección estética para landing pages, marketing, diseño visual distintivo | frontend-design |
| UI de producto (dashboards, SaaS, admin, herramientas) con memoria de diseño persistente | interface-design |
| Sistema de diseño, tokens, tematización, tokens multiplataforma, DESIGN.md | design-system-builder |
| Elegir/derivar colores, paletas, colores para modo oscuro, contraste, seguridad para daltonismo | color-theory (genera) · better-colors (audita) |
| Tipografía: escala, ajuste de línea, características tipográficas, truncamiento | better-typography |
| Layout: agrupación, alineación, responsive, espacio para i18n | better-layout |
| Pulido: radio, sombras, iconos, alineación óptica | better-ui |
| Revisión/corrección de accesibilidad (WCAG 2.2) | better-accessibility |
| Copy UX, etiquetas, errores, estados vacíos | better-writing |
| Revisión clasificada de toda la pantalla en todos los aspectos anteriores | better-interface · revisión de rama/PR: interface-review |
| Elegir librerías de componentes/animación/widgets | ui-stack-advisor |
| Filosofía de animación, easing, duraciones, springs, sensación de componentes | emil-design-eng |
| Construir una animación web | animate · varios elementos juntos: choreograph |
| Revisar / auditar / corregir animaciones con problemas | review-animations · improve-animations · animation-performance |
| Movimiento fluido al estilo Apple, gestos, materiales (web o nativo) | apple-design |
| Web móvil con sensación nativa (PWA, táctil, 100vh, safe areas) | mobile-native |
| Diseño y revisión de React Native / Expo | mobile-design · animación: animate-expo · skills de plugins Expo: expo-native-ui, expo-ui, expo-design-system, expo-animation, expo-router |
| Específicos de shadcn/ui | shadcn (plugin de Vercel) |
| Galería de variantes / máquina de estados / test de estrés | variant · state-machine · break (invocado por el usuario) |
| Visualización de datos para gráficos y dashboards | dataviz |
| Figma ↔ código | Skills de Figma MCP (figma-design-to-code, figma-generate-library, …) |
Regla de conflicto: cuando dos skills discrepan, gana el DESIGN.md/sistema existente del proyecto, luego el brief del usuario, luego el skill más específico (ej. animate-expo sobre emil-design-eng en una app Expo). No apiles múltiples skills de dirección estética en una misma tarea — elige uno (frontend-design o interface-design).
Chuleta de estándares
Accesibilidad (WCAG 2.2 AA — línea base legal en EE. UU. (ADA/508), UE (Acta Europea de Accesibilidad, en vigor desde junio de 2025) y muchos otros)
- Contraste 4.5:1 texto, 3:1 texto grande y componentes de UI/gráficos significativos
- Todo operable con teclado; foco visible (2.4.7) no oculto por UI fija (2.4.11); orden lógico
- Tamaño de objetivo ≥ 24×24 CSS px (2.5.8) — diseña para 44×44
- Arrastrar tiene una alternativa de un solo puntero (2.5.7)
- Etiquetas para cada entrada, errores identificados en texto, ninguna información solo por color
- El texto se redimensiona al 200% / se reajusta a 320 px de ancho sin desplazamiento horizontal (1.4.10)
- Respeta movimiento reducido; sin destellos > 3/s; contenido en movimiento automático > 5s se puede pausar
- Ubicación de ayuda consistente (3.2.6), sin reingreso redundante (3.3.7), autenticación accesible — sin pruebas cognitivas, permitir pegar/gestores de contraseñas (3.3.8)
- HTML semántico primero; ARIA solo para llenar vacíos. Nativo: etiquetas de accesibilidad/traits (iOS), contentDescription/semantics (Android/Compose),
accessibilityLabel/accessibilityRole(RN)
Plataformas
- iOS (HIG): objetivos 44×44pt, barra de pestañas para navegación de nivel superior (≤5), pila de navegación con deslizamiento hacia atrás, hojas con detentes, SF Symbols, Dynamic Type, colores semánticos, Liquid Glass para la capa de control (iOS 26+), hápticos para eventos significativos
- Android (Material 3 / Expressive): objetivos 48×48dp, barra/riel/cajón de navegación por clase de ancho, retroceso predictivo, edge-to-edge con insets, color dinámico, escala tipográfica M3
- Detalles y diferencias:
references/mobile-standards.md
Rendimiento (Core Web Vitals, percentil 75): LCP ≤ 2.5s · INP ≤ 200ms · CLS ≤ 0.1. Responde a la entrada en ~100ms; muestra progreso para cualquier cosa > 400ms (umbral de Doherty); skeletons para contenido, spinners para acciones; UI optimista cuando sea seguro. Móvil: 60/120fps, mantén el hilo de JS libre (Reanimated worklets), listas virtualizadas.
Principios de UX: 10 heurísticas de Nielsen + Leyes de UX (Fitts, Hick, Jakob, Miller/agrupación, Tesler, Doherty, peak-end, estética-usabilidad, Von Restorff, Gestalt). Guía de patrones para formularios, navegación, búsqueda, tablas, onboarding, estados vacío/error/carga, notificaciones, configuraciones, acciones destructivas: references/ux-principles-and-patterns.md.
Ética: sin patrones oscuros (confirmshaming, cancelación en trampa para ratones, consentimiento previamente marcado, urgencia falsa, costos ocultos, molestias persistentes). Son cada vez más ilegales (EU DSA/DMA, reglas FTC click-to-cancel, reglas de consentimiento GDPR) y erosionan la confianza.
Lista de verificación previa al envío
- Propósito de cada pantalla obvio en 5 segundos; una acción principal por vista
- Jerarquía legible al entrecerrar los ojos (tamaño/peso/contraste, no solo color)
- Espaciado, radio, tipografía, color solo desde tokens; coherente con DESIGN.md
- Estados de carga, vacío, error, parcial, sin conexión y contenido largo diseñados
- Formularios: etiquetas, tipos de input/autocompletado correctos, errores en línea, entrada preservada al error, sin bloqueo de pegado
- Teclado: orden de tabulación, foco visible, Escape cierra superposiciones, el foco vuelve al activador
- Lector de pantalla: nombres/roles/estados, regiones vivas para actualizaciones asíncronas, estructura de encabezados
- Contraste medido en ambos temas; nada comunicado solo por color
- Responsive en 320 / 390 / 768 / 1024 / 1440; objetivos táctiles ≥ 44; sin affordances solo hover
- Animación con propósito, ≤ 300ms para UI, interrumpible, movimiento reducido respetado
- Copy: verbos específicos en botones, errores explican la corrección, terminología coherente, preparado para i18n (sin cadenas concatenadas, espacio para +30–40% de texto, propiedades lógicas seguras para RTL)
- Rendimiento: imágenes dimensionadas/carga diferida, fuentes precargadas/intercambiadas, sin desplazamiento de layout, listas largas virtualizadas
- Revisado el resultado renderizado (capturas de pantalla en tamaños reales), no solo el código
Auditoría de código web con el conjunto completo de reglas (foco, formularios, animación, tipografía, contenido, imágenes, rendimiento, navegación, táctil, tematización, i18n, hidratación, copy, antipatrones): lee references/web-interface-guidelines.md e informa como archivo:línea - problema.
Referencias
references/web-interface-guidelines.md— Guías de Interfaz Web de Vercel (vendidas, MIT) para auditorías de códigoreferences/ux-principles-and-patterns.md— heurísticas, Leyes de UX y mejores prácticas a nivel de patrónreferences/mobile-standards.md— iOS HIG + Material 3 esencial y diferencias entre plataformasreferences/arsenal.md— cada skill de UI instalado: fuente, licencia, para qué sirve, cómo actualizar; extras opcionales