# Análisis Exhaustivo UX/UI y Arquitectura de Producto **EMERGES TES - Diagnóstico Completo de Estructura Visual y Navegación** --- ## 📋 Índice 1. [Estructura Visual Actual](#1-estructura-visual-actual) 2. [Arquitectura de Navegación](#2-arquitectura-de-navegación) 3. [Organización del Contenido](#3-organización-del-contenido) 4. [Patrones de Diseño Reutilizados](#4-patrones-de-diseño-reutilizados) 5. [Problemas de Escalabilidad](#5-problemas-de-escalabilidad) 6. [Elementos que Merece la Pena Conservar](#6-elementos-que-merece-la-pena-conservar) --- ## 1. Estructura Visual Actual ### 1.1 Jerarquía Visual Global **Layout Principal:** ``` ┌─────────────────────────────────────────┐ │ Header (fixed, z-50, h-14) │ ← Navegación superior │ - Logo TES │ │ - Estado online/offline │ │ - Búsqueda + Menú │ ├─────────────────────────────────────────┤ │ Main Content (pt-14 pb-safe) │ │ ┌─────────────────────────────────────┐ │ │ │ Container (max-w-2xl, mx-auto) │ │ ← Ancho máximo 672px │ │ └── Contenido de página │ │ │ └─────────────────────────────────────┘ │ ├─────────────────────────────────────────┤ │ BottomNav (fixed, bottom-0, z-50, h-16) │ ← Navegación inferior │ - 6 items principales │ └─────────────────────────────────────────┘ ``` **Características del Layout:** - **Ancho máximo:** `max-w-2xl` (672px) - Diseño centrado, legible - **Padding superior:** `pt-14` - Compensación para Header fijo - **Padding inferior:** `pb-safe` - Compensación para BottomNav + safe area - **Contenedor:** Centrado con `mx-auto` - **Z-index:** Header (50), BottomNav (50), Modales (90-100) ### 1.2 Sistema de Colores y Tema **Paleta de Colores:** - **Tema base:** Dark mode por defecto (optimizado para uso nocturno) - **Color primario:** Rojo emergencia (`--primary: 0 84% 50%`) - **Color secundario:** Azul médico (`--secondary: 217 91% 52%`) - **Colores de emergencia:** - Critical: `--emergency-critical` (rojo) - High: `--emergency-high` (naranja) - Medium: `--emergency-medium` (amarillo) - Low: `--emergency-low` (verde) **Variables CSS Críticas:** - `--background`, `--foreground` - Colores base - `--card`, `--card-foreground` - Tarjetas y contenedores - `--muted`, `--muted-foreground` - Elementos secundarios - `--border` - Bordes y separadores - `--radius` - Border radius global (0.75rem) **Contraste y Legibilidad:** - Alto contraste para uso con guantes - Touch targets mínimos: 48px (min-h-touch) - Focus states visibles: `ring-2 ring-primary` ### 1.3 Tipografía **Fuente Principal:** - **Familia:** IBM Plex Sans (Google Fonts) - **Fallback:** system-ui, -apple-system, sans-serif - **Tamaños:** - `text-2xs`: 0.625rem (10px) - Texto muy pequeño - `text-sm`: 0.875rem (14px) - Texto secundario - `text-base`: 1rem (16px) - Texto normal - `text-lg`: 1.125rem (18px) - Subtítulos - `text-xl`: 1.25rem (20px) - Títulos de sección - `text-2xl`: 1.5rem (24px) - Títulos de página - `text-3xl`: 1.875rem (30px) - Títulos principales **Jerarquía Tipográfica:** - **H1:** `text-3xl font-bold` - Títulos principales de página - **H2:** `text-2xl font-semibold` - Títulos de sección - **H3:** `text-xl font-medium` - Subtítulos - **Body:** `text-base` o `text-sm` - Contenido - **Muted:** `text-muted-foreground` - Texto secundario ### 1.4 Espaciado y Grid **Sistema de Espaciado:** - **Base:** Tailwind spacing scale (0.25rem = 4px) - **Espaciado vertical:** `space-y-{n}` (4, 6, 8 más comunes) - **Espaciado horizontal:** `gap-{n}` (2, 3, 4 más comunes) - **Padding de cards:** `p-4`, `p-6` (16px, 24px) - **Border radius:** `rounded-lg` (0.5rem), `rounded-xl` (0.75rem) **Patrones de Grid:** - **Grid 2 columnas:** `grid grid-cols-2 gap-3` (Home - Emergency Buttons) - **Flex horizontal:** `flex gap-2` (Tabs, chips) - **Flex vertical:** `flex flex-col space-y-4` (Listas) - **Sin grid complejo:** La app evita grids complejos, prefiere flex ### 1.5 Componentes Visuales Principales **Cards y Contenedores:** - **Card estándar:** `bg-card border border-border rounded-xl p-6` - **Card de procedimiento:** `.card-procedure` (clase CSS reutilizable) - **Card expandible:** ProcedureCard, DrugCard (accordion pattern) **Botones:** - **Emergency Button:** Variantes critical, high, medium - **Botón primario:** `bg-primary text-primary-foreground` - **Botón secundario:** `bg-secondary text-secondary-foreground` - **Botón ghost:** `hover:bg-muted` (transparente) **Badges y Etiquetas:** - **Badge de prioridad:** Variantes critical, high, medium, low - **Badge de categoría:** `bg-muted rounded-full px-3 py-1` - **Badge de edad:** Con iconos User/Baby **Tabs:** - **Tabs horizontales:** `flex gap-2 overflow-x-auto scrollbar-hide` - **Tab activo:** `bg-primary text-primary-foreground` - **Tab inactivo:** `bg-muted text-muted-foreground hover:bg-accent` --- ## 2. Arquitectura de Navegación ### 2.1 Navegación Principal **BottomNav (Navegación Inferior):** - **Ubicación:** Fixed bottom, visible en todas las páginas - **Items:** 6 elementos principales - Home (`/`) - Soporte (`/soporte-vital`) - Patologías (`/patologias`) - Escena (`/escena`) - Fármacos (`/farmacos`) - Herramientas (`/herramientas`) - **Patrón:** Icono + Label corto - **Estado activo:** `text-primary` con clase `.active` **Header (Navegación Superior):** - **Ubicación:** Fixed top, visible en todas las páginas - **Elementos:** - Botón retroceso (condicional, si no está en `/`) - Logo TES - Título "EMERGES TES" (solo desktop) - Estado online/offline - Botón búsqueda - Botón menú - **Funcionalidad:** Acceso rápido a búsqueda y menú lateral ### 2.2 Navegación Secundaria **MenuSheet (Menú Lateral):** - **Trigger:** Botón menú en Header - **Contenido:** - Manual Completo - Protocolos Transtelefónicos - Guiones de Comunicación - Checklists Material - Favoritos - Historial - Compartir App - Ajustes - Acerca de - **Patrón:** Sheet/Drawer desde la derecha - **Z-index:** 90-95 **SearchModal (Búsqueda Global):** - **Trigger:** Botón búsqueda en Header - **Funcionalidad:** - Búsqueda en tiempo real (mínimo 2 caracteres) - Filtros por tipo (procedimiento/fármaco) - Filtros por categoría - Historial de búsquedas - **Resultados:** Máximo 12 items - **Z-index:** 100 ### 2.3 Navegación por Contenido **Navegación en Páginas:** - **BackButton:** Componente reutilizable para volver atrás - **Breadcrumbs:** No implementado (solo BackButton) - **Navegación entre secciones:** ManualViewer tiene anterior/siguiente **Navegación Contextual:** - **Enlaces relacionados:** Secciones "Protocolos Relacionados" en páginas - **Deep linking:** Soporte con `?id=` para destacar items - **Navegación por tabs:** Páginas con múltiples vistas (RCP, Farmacos, Herramientas) ### 2.4 Rutas y Estructura de URLs **Estructura de Rutas:** ``` / → Home /soporte-vital → Lista de protocolos /soporte-vital?id=X → Protocolo destacado /patologias → Lista de patologías /escena → Protocolos de escena /farmacos → Vademécum /farmacos?id=X → Fármaco destacado /herramientas → Calculadoras y herramientas /material → Checklists de material /telefono → Protocolos transtelefónicos /comunicacion → Guiones de comunicación /manual → Índice del manual /manual/:parte/:bloque/:capitulo → Capítulo del manual /rcp → Página específica RCP /ictus → Página específica Ictus /shock → Página específica Shock /via-aerea → Página específica Vía Aérea /favoritos → Favoritos del usuario /historial → Historial de búsquedas /ajustes → Configuración /acerca → Información de la app ``` **Patrones de URL:** - **Rutas planas:** Mayoría de páginas principales - **Rutas con parámetros:** Manual con estructura jerárquica - **Query params:** `?id=` para destacar items específicos ### 2.5 Flujos de Navegación Principales **Flujo 1: Búsqueda → Resultado** ``` Header (búsqueda) → SearchModal → Resultado → Página específica ``` **Flujo 2: Home → Emergencia** ``` Home → EmergencyButton → Página de protocolo (RCP, Ictus, etc.) ``` **Flujo 3: BottomNav → Categoría → Item** ``` BottomNav → Categoría → Lista → Item expandido ``` **Flujo 4: Manual → Capítulo** ``` MenuSheet → Manual → ManualIndex → Capítulo → ManualViewer ``` **Flujo 5: Favoritos/Historial → Item** ``` MenuSheet → Favoritos/Historial → Item → Página específica ``` --- ## 3. Organización del Contenido ### 3.1 Tipos de Contenido **1. Protocolos Operativos:** - **Ubicación:** `src/data/procedures.ts` - **Estructura:** Categorías (soporte_vital, patologias, escena) - **Visualización:** ProcedureCard (expandible) - **Páginas:** SoporteVital, Patologias, Escena **2. Fármacos:** - **Ubicación:** `src/data/drugs.ts`, `src/data/tes-medication.ts` - **Estructura:** Categorías (cardiovascular, respiratorio, etc.) - **Visualización:** DrugCard, TESMedicationCard (expandibles) - **Página:** Farmacos **3. Manual Completo:** - **Ubicación:** `public/manual/` (archivos .md) - **Estructura:** Parte → Bloque → Capítulo - **Índice:** `src/data/manual-index.ts` - **Visualización:** ManualViewer con MarkdownViewer - **Páginas:** ManualIndex, ManualViewer **4. Guías de Refuerzo:** - **Ubicación:** `docs/consolidado/` (archivos .md) - **Estructura:** 8 secciones por guía (SECCION_01 a SECCION_08) - **Estado:** ❌ NO implementado visualmente - **Datos JSON:** Existe ejemplo en `src/data/guia-refuerzo-rcp-adulto-svb.json` **5. Herramientas:** - **Ubicación:** `src/components/tools/` (10 calculadoras) - **Estructura:** Tabs (calculadoras, perfusiones, anatomía, códigos) - **Visualización:** Componentes individuales - **Página:** Herramientas **6. Referencias:** - **Ubicación:** `src/components/references/`, `src/data/` - **Tipos:** Terminología anatómica, farmacológica, etc. - **Visualización:** Componentes específicos ### 3.2 Jerarquía de Información **Nivel 1: Categorías Principales** - Soporte Vital - Patologías - Escena - Fármacos - Herramientas - Manual **Nivel 2: Subcategorías** - Soporte Vital: RCP, Vía Aérea, Shock - Patologías: Respiratorias, Circulatorias, Neurológicas, etc. - Fármacos: TES, Cardiovascular, Respiratorio, etc. - Herramientas: Calculadoras, Perfusiones, Anatomía, Códigos **Nivel 3: Items Individuales** - Protocolos específicos - Fármacos específicos - Capítulos del manual - Calculadoras individuales ### 3.3 Organización de Datos **Estructura de Datos:** - **TypeScript interfaces:** Tipos estrictos para todos los datos - **Archivos de datos:** Separados por dominio (procedures.ts, drugs.ts, etc.) - **Índices:** manual-index.ts para navegación del manual - **Búsqueda:** Funciones de búsqueda por dominio (searchProcedures, searchDrugs) **Metadatos:** - **Prioridad:** critico, alto, medio, bajo - **Grupo de edad:** adulto, pediatrico, todos - **Categoría:** Soporte vital, patologías, etc. - **Palabras clave:** Para búsqueda - **Relaciones:** Enlaces relacionados entre items ### 3.4 Contenido Dinámico vs Estático **Contenido Estático:** - **Protocolos:** Definidos en `procedures.ts` - **Fármacos:** Definidos en `drugs.ts` - **Herramientas:** Componentes React estáticos **Contenido Dinámico:** - **Manual:** Archivos Markdown cargados dinámicamente - **Guías de refuerzo:** Archivos Markdown (no implementado) - **Búsqueda:** Resultados generados dinámicamente - **Favoritos/Historial:** Almacenados en localStorage --- ## 4. Patrones de Diseño Reutilizados ### 4.1 Patrón: Card Expandible (Accordion) **Implementación:** - **Componentes:** ProcedureCard, DrugCard, TESMedicationCard - **Comportamiento:** - Estado colapsado por defecto - Click en card para expandir/colapsar - ChevronUp/ChevronDown indica estado - Contenido expandido con `border-t` separador **Estructura:** ```tsx
{isExpanded && (
{/* Contenido expandido */}
)}
``` **Uso:** - Listas de protocolos - Listas de fármacos - Items con información detallada ### 4.2 Patrón: Tabs Horizontales **Implementación:** - **Páginas:** RCP, Farmacos, Herramientas, Patologias - **Comportamiento:** - Tabs horizontales con scroll - Tab activo destacado - Contenido cambia según tab activo - Estado local con `useState` **Estructura:** ```tsx
{tabs.map(tab => ( ))}
{activeTab === 'x' && } ``` **Uso:** - Filtrar contenido por categoría - Cambiar vista de contenido - Organizar información relacionada ### 4.3 Patrón: Búsqueda con Filtros **Implementación:** - **Componente:** SearchModal - **Comportamiento:** - Búsqueda en tiempo real (mínimo 2 caracteres) - Filtros por tipo y categoría - Resultados limitados (12 items) - Historial de búsquedas **Estructura:** ```tsx {results.map(result => ( ))} ``` **Uso:** - Búsqueda global - Búsqueda en páginas específicas (Farmacos) ### 4.4 Patrón: Lista con Badges **Implementación:** - **Componentes:** ProcedureCard, DrugCard - **Comportamiento:** - Badges de prioridad/categoría/edad - Iconos en badges - Colores semánticos **Estructura:** ```tsx
Crítico Adulto
``` **Uso:** - Identificar prioridad de protocolos - Categorizar contenido - Indicar grupo de edad ### 4.5 Patrón: Header de Página **Implementación:** - **Páginas:** RCP, Ictus, Shock, ViaAerea - **Comportamiento:** - Icono + Título + Subtítulo - Badge de prioridad - BackButton opcional **Estructura:** ```tsx

Título

Subtítulo

``` **Uso:** - Páginas de protocolos específicos - Identificación visual rápida ### 4.6 Patrón: Sección de Enlaces Relacionados **Implementación:** - **Páginas:** RCP, Ictus, etc. - **Comportamiento:** - Sección al final de página - Enlaces a protocolos relacionados - Card con hover effect **Estructura:** ```tsx

Protocolos Relacionados

Título
``` **Uso:** - Navegación contextual - Descubrimiento de contenido relacionado ### 4.7 Patrón: Empty State **Implementación:** - **Páginas:** Farmacos, SoporteVital, SearchModal - **Comportamiento:** - Mensaje cuando no hay resultados - Icono + texto - Centrado verticalmente **Estructura:** ```tsx

No hay resultados

``` **Uso:** - Búsquedas sin resultados - Filtros sin coincidencias - Listas vacías ### 4.8 Patrón: Loading State **Implementación:** - **Componente:** PageLoader, MarkdownViewer - **Comportamiento:** - Spinner animado - Mensaje de carga - Centrado verticalmente **Estructura:** ```tsx

Cargando...

``` **Uso:** - Carga de páginas lazy-loaded - Carga de archivos Markdown - Operaciones asíncronas --- ## 5. Problemas de Escalabilidad ### 5.1 Problemas de Estructura **1. Layout Único Hardcodeado:** - **Problema:** App.tsx tiene un solo layout fijo - **Impacto:** Difícil agregar layouts alternativos (ej: para guías de refuerzo) - **Escalabilidad:** ❌ Baja - Requiere modificar App.tsx para cada nuevo layout **2. Rutas Estáticas:** - **Problema:** Todas las rutas están hardcodeadas en App.tsx - **Impacto:** Agregar nuevas rutas requiere modificar el componente raíz - **Escalabilidad:** ⚠️ Media - Funciona pero no escala bien **3. Sin Sistema de Modos:** - **Problema:** No hay diferenciación entre "Modo Formación" y "Modo Operativo" - **Impacto:** Las guías de refuerzo no tienen lugar en la arquitectura actual - **Escalabilidad:** ❌ Baja - No permite agregar nuevos tipos de contenido ### 5.2 Problemas de Contenido **1. Guías de Refuerzo No Implementadas:** - **Problema:** Existen archivos Markdown pero no hay visualización - **Impacto:** Contenido formativo no accesible - **Escalabilidad:** ❌ Baja - No hay sistema para agregar más guías **2. MarkdownViewer Único:** - **Problema:** Un solo componente para todo el Markdown - **Impacto:** Difícil personalizar renderizado para diferentes tipos de contenido - **Escalabilidad:** ⚠️ Media - Funciona pero limita flexibilidad **3. Estructura de Datos Fija:** - **Problema:** manual-index.ts tiene estructura jerárquica fija - **Impacto:** Agregar nuevas partes/bloques requiere modificar el archivo - **Escalabilidad:** ⚠️ Media - Funciona pero requiere mantenimiento manual ### 5.3 Problemas de Navegación **1. BottomNav Limitado:** - **Problema:** Solo 6 items, difícil agregar más - **Impacto:** Nuevas categorías principales no tienen espacio - **Escalabilidad:** ❌ Baja - Requiere rediseño para escalar **2. Sin Breadcrumbs:** - **Problema:** Solo BackButton, no hay indicador de ubicación - **Impacto:** En contenido profundo (manual) es difícil saber dónde estás - **Escalabilidad:** ⚠️ Media - Funciona pero limita navegación compleja **3. Búsqueda Limitada:** - **Problema:** Solo busca procedimientos y fármacos - **Impacto:** No busca en manual ni guías de refuerzo - **Escalabilidad:** ⚠️ Media - Requiere extender funciones de búsqueda ### 5.4 Problemas de Rendimiento **1. Lazy Loading Parcial:** - **Problema:** Algunas páginas se cargan lazy, otras no - **Impacto:** Bundle inicial puede ser grande - **Escalabilidad:** ⚠️ Media - Funciona pero puede optimizarse **2. Markdown Cargado en Runtime:** - **Problema:** Archivos Markdown se cargan con fetch en runtime - **Impacto:** Dependencia de red, carga lenta - **Escalabilidad:** ⚠️ Media - Funciona pero limita uso offline **3. Sin Virtualización:** - **Problema:** Listas largas renderizan todos los items - **Impacto:** Rendimiento degrada con muchas items - **Escalabilidad:** ⚠️ Media - Funciona pero puede optimizarse ### 5.5 Problemas de Mantenibilidad **1. Componentes Acoplados:** - **Problema:** Algunos componentes dependen de estructuras de datos específicas - **Impacto:** Cambios en datos requieren cambios en componentes - **Escalabilidad:** ⚠️ Media - Funciona pero requiere cuidado **2. Estilos Mezclados:** - **Problema:** Algunos estilos están en componentes, otros en CSS - **Impacto:** Difícil mantener consistencia - **Escalabilidad:** ⚠️ Media - Funciona pero puede mejorarse **3. Sin Sistema de Temas Extensible:** - **Problema:** Tema dark/light pero no hay variantes - **Impacto:** Difícil crear temas alternativos (ej: modo formativo vs operativo) - **Escalabilidad:** ⚠️ Media - Funciona pero limita personalización --- ## 6. Elementos que Merece la Pena Conservar ### 6.1 Sistema de Diseño Base **✅ Conservar: Sistema de Variables CSS** - **Razón:** Centralizado, fácil de mantener, permite cambios globales - **Ubicación:** `src/index.css` - **Valor:** Alto - Base sólida para cualquier rediseño **✅ Conservar: Tailwind CSS + shadcn/ui** - **Razón:** Componentes modulares, bien documentados, fácil de extender - **Ubicación:** `src/components/ui/` - **Valor:** Alto - Base sólida de componentes **✅ Conservar: Sistema de Colores de Emergencia** - **Razón:** Semántico, claro, bien definido - **Ubicación:** `tailwind.config.ts`, `src/index.css` - **Valor:** Alto - Específico del dominio médico ### 6.2 Componentes Reutilizables **✅ Conservar: EmergencyButton** - **Razón:** Componente específico del dominio, bien diseñado - **Ubicación:** `src/components/shared/EmergencyButton.tsx` - **Valor:** Alto - Único y valioso **✅ Conservar: Badge Component** - **Razón:** Reutilizable, bien implementado, variantes claras - **Ubicación:** `src/components/shared/Badge.tsx` - **Valor:** Alto - Base para identificación visual **✅ Conservar: Card Patterns (ProcedureCard, DrugCard)** - **Razón:** Patrón consistente, bien implementado, expandible - **Ubicación:** `src/components/procedures/`, `src/components/drugs/` - **Valor:** Alto - Patrón reutilizable **✅ Conservar: MarkdownViewer** - **Razón:** Funcional, bien configurado, extensible - **Ubicación:** `src/components/content/MarkdownViewer.tsx` - **Valor:** Alto - Base para contenido Markdown ### 6.3 Navegación y UX **✅ Conservar: BottomNav** - **Razón:** Mobile-first, accesible, bien posicionado - **Ubicación:** `src/components/layout/BottomNav.tsx` - **Valor:** Alto - Navegación principal efectiva **✅ Conservar: SearchModal** - **Razón:** Funcional, bien implementado, con filtros - **Ubicación:** `src/components/layout/SearchModal.tsx` - **Valor:** Alto - Búsqueda global efectiva **✅ Conservar: Sistema de Favoritos/Historial** - **Razón:** Funcional, bien implementado, persistente - **Ubicación:** `src/hooks/useFavorites.ts`, `src/hooks/useSearchHistory.ts` - **Valor:** Alto - Mejora UX significativamente ### 6.4 Arquitectura Técnica **✅ Conservar: Lazy Loading de Páginas** - **Razón:** Mejora rendimiento, bien implementado - **Ubicación:** `src/App.tsx` - **Valor:** Alto - Optimización importante **✅ Conservar: Code Splitting por Vite** - **Razón:** Bundle optimizado, bien configurado - **Ubicación:** `vite.config.ts` - **Valor:** Alto - Rendimiento optimizado **✅ Conservar: TypeScript Interfaces** - **Razón:** Tipado estricto, bien definido, mantenible - **Ubicación:** `src/data/` - **Valor:** Alto - Base sólida de tipos ### 6.5 Funcionalidades Específicas **✅ Conservar: Sistema PWA** - **Razón:** Funciona offline, instalable, bien implementado - **Ubicación:** `public/sw.js`, `public/manifest.json` - **Valor:** Alto - Característica diferenciadora **✅ Conservar: Sistema de Búsqueda** - **Razón:** Funcional, con filtros, bien implementado - **Ubicación:** `src/data/procedures.ts`, `src/data/drugs.ts` - **Valor:** Alto - Funcionalidad crítica **✅ Conservar: Sistema de Calculadoras** - **Razón:** Componentes bien implementados, funcionales - **Ubicación:** `src/components/tools/` - **Valor:** Alto - Herramientas valiosas ### 6.6 Contenido y Datos **✅ Conservar: Estructura de Datos TypeScript** - **Razón:** Tipado estricto, bien organizado, mantenible - **Ubicación:** `src/data/` - **Valor:** Alto - Base sólida de datos **✅ Conservar: manual-index.ts** - **Razón:** Estructura jerárquica clara, navegación funcional - **Ubicación:** `src/data/manual-index.ts` - **Valor:** Alto - Sistema de navegación del manual **✅ Conservar: Archivos Markdown del Manual** - **Razón:** Contenido estructurado, bien organizado - **Ubicación:** `public/manual/` - **Valor:** Alto - Contenido crítico **✅ Conservar: Guías de Refuerzo (archivos)** - **Razón:** Contenido formativo valioso, bien estructurado - **Ubicación:** `docs/consolidado/` - **Valor:** Alto - Contenido a implementar ### 6.7 Estilos y Tema **✅ Conservar: Dark Mode por Defecto** - **Razón:** Optimizado para uso nocturno, bien implementado - **Ubicación:** `src/index.css`, `next-themes` - **Valor:** Alto - Específico del contexto de uso **✅ Conservar: Touch-Friendly Design** - **Razón:** Optimizado para uso con guantes, bien implementado - **Ubicación:** `src/index.css` (min-height: 48px) - **Valor:** Alto - Específico del contexto de uso **✅ Conservar: Safe Area Insets** - **Razón:** Soporte para dispositivos con notch, bien implementado - **Ubicación:** `src/index.css` (pb-safe) - **Valor:** Alto - Mejora UX en móviles modernos --- ## Resumen Ejecutivo ### Fortalezas Actuales 1. **Sistema de diseño sólido:** Variables CSS, Tailwind, shadcn/ui 2. **Componentes reutilizables:** Cards, badges, botones bien implementados 3. **Navegación mobile-first:** BottomNav, SearchModal efectivos 4. **Arquitectura técnica sólida:** Lazy loading, code splitting, TypeScript 5. **Funcionalidades específicas:** PWA, búsqueda, favoritos bien implementados 6. **Contenido estructurado:** Manual y guías bien organizados ### Debilidades Identificadas 1. **Layout único:** No permite layouts alternativos 2. **Sin sistema de modos:** No diferencia formativo/operativo 3. **Guías no implementadas:** Contenido existe pero no accesible 4. **Navegación limitada:** BottomNav con espacio limitado 5. **Búsqueda parcial:** No busca en manual ni guías ### Recomendaciones de Conservación **Alta Prioridad (Conservar Sin Cambios):** - Sistema de variables CSS - Componentes base (shadcn/ui) - BottomNav y SearchModal - Sistema PWA - Estructura de datos TypeScript **Media Prioridad (Conservar con Mejoras):** - MarkdownViewer (extender para guías) - Sistema de búsqueda (extender a manual/guías) - Card patterns (reutilizar para guías) - Lazy loading (optimizar) **Baja Prioridad (Refactorizar):** - Layout único (permitir layouts alternativos) - Rutas estáticas (sistema de rutas dinámico) - BottomNav limitado (rediseñar para escalar) --- **Documento generado:** Análisis exhaustivo UX/UI y arquitectura de producto **Fecha:** 2025-01-XX **Estado:** Diagnóstico completo, listo para decisiones de diseño