# MindLink v11 - Documentación ## Descripción General MindLink es una interfaz de comunicación visual tipo mindmap/linktree para entregar documentos a clientes. Presenta nodos principales (categorías) con subnodos desplegables (documentos) conectados por líneas animadas. --- ## Estructura de Datos ### Configuración General | Campo | Tipo | Ejemplo | Descripción | |-------|------|---------|-------------| | `titulo` | Texto | "Proyecto Demo HST" | Título principal de la página | | `mostrar_titulo` | Booleano | true | Mostrar/ocultar el título | | `colores` | Texto | "#FF6B35, #E5A000, #06D6A0" | Colores en hexadecimal separados por comas | | `fuente` | Texto | "Inter" | Nombre de la fuente tipográfica | ### Fuentes Disponibles | Valor | Descripción | |-------|-------------| | `Inter` | Moderna, muy legible (recomendada) | | `Roboto` | Google, neutra | | `Open Sans` | Google, amigable | | `Montserrat` | Geométrica, elegante | | `Lato` | Equilibrada, profesional | | `SF Pro Display` | Apple, premium | | `system` | Fuente nativa del sistema | --- ### Nodos (Categorías) | Campo | Tipo | Ejemplo | Descripción | |-------|------|---------|-------------| | `id` | Texto | "n1" | Identificador único | | `titulo` | Texto | "Arquitectura" | Nombre de la categoría | | `imagen` | URL | "https://..." | Imagen cuadrada (se muestra 120×120px) | | `subnodos` | Array | [...] | Lista de documentos | ### Subnodos (Documentos) | Campo | Tipo | Ejemplo | Descripción | |-------|------|---------|-------------| | `id` | Texto | "s1" | Identificador único | | `titulo` | Texto | "Plano General" | Nombre del documento | | `imagen` | URL | "https://..." | Miniatura 16:9 (se muestra 180×101px) | | `tiene_preview` | Booleano | true | Icono ojo (esquina superior derecha) | | `tiene_descarga` | Booleano | true | Icono descarga (esquina inferior izquierda) | | `tiene_enlace` | Booleano | true | Icono enlace (esquina inferior derecha) | | `tiene_historial` | Booleano | false | Icono reloj (esquina superior izquierda) | --- ## Iconos de Acción Los iconos se posicionan en las **4 esquinas** del subnodo para facilitar el uso en móviles: ``` ┌─────────────────────┐ │ 🕐 👁 │ 🕐 = historial (tiene_historial) │ │ 👁 = preview (tiene_preview) │ │ │ ⬇ 🔗 │ ⬇ = descarga (tiene_descarga) └─────────────────────┘ 🔗 = enlace (tiene_enlace) ``` **Estilo visual:** - Fondo: negro semi-transparente `rgba(0,0,0,0.5)` - Icono: blanco - Tamaño: 26×26px - Radio: 4px - Opacidad: 50% (aumenta al hacer hover) --- ## Especificaciones Visuales ### Dimensiones | Elemento | Valor | Notas | |----------|-------|-------| | Nodo principal | 120×120 px | Cuadrado | | Subnodo | 180×101 px | Ratio 16:9 | | Radio esquinas nodo | 20px | | | Radio esquinas subnodo | 15px | | | Grosor líneas/bordes | 3px | | | Gap entre subnodos | 20px | Vertical | | Gap entre grupos | 50px | Vertical | | Gap nodo a subnodo | 70px | Horizontal | ### Tipografía | Elemento | Tamaño | Peso | Color | |----------|--------|------|-------| | Título página | 32px | 600 | #1a1a1a | | Título nodo | 18px | 500 | Color del nodo | | Título subnodo | 16px | 500 | Color del nodo | ### Colores por Defecto ``` #FF6B35 - Naranja (nodo 1) #E5A000 - Amarillo (nodo 2) #06D6A0 - Verde (nodo 3) #0891B2 - Cyan (nodo 4) #3B82F6 - Azul (nodo 5) #8B5CF6 - Violeta (nodo 6) #EC4899 - Rosa (nodo 7) ``` Los colores rotan automáticamente: nodo 8 usa color 1, etc. ### Fondo de Fallback Cuando una imagen no carga, se muestra fondo gris `#ccc`. Esto evita espacios en blanco y texto fantasma. --- ## Animaciones | Elemento | Duración | Función | Delay | |----------|----------|---------|-------| | Movimiento vertical del nodo | 400ms | ease-out | - | | Revelado de líneas | 450ms | linear | 80ms | | Aparición subnodos | instantánea | - | 30ms | ### Secuencia al Expandir 1. El nodo se desplaza verticalmente para centrarse con sus subnodos 2. Las líneas se revelan con efecto de máscara deslizante 3. Los subnodos aparecen instantáneamente ### Secuencia al Colapsar 1. Las líneas desaparecen 2. Los subnodos se ocultan 3. El nodo vuelve a su posición --- ## Centrado Automático El contenedor principal se centra horizontalmente con flexbox: - **Con subnodos expandidos**: Ancho = nodo + gap + subnodo (~400px) - **Todo colapsado**: Ancho = solo nodos (~180px) El ancho cambia con transición suave (400ms). --- ## Integración con NocoDB ### Estructura de Tablas Recomendada **Tabla: `proyectos`** ``` id | titulo | mostrar_titulo | colores | fuente ``` **Tabla: `nodos`** ``` id | proyecto_id | titulo | imagen | orden ``` **Tabla: `subnodos`** ``` id | nodo_id | titulo | imagen | tiene_preview | tiene_descarga | tiene_enlace | tiene_historial | orden ``` ### Campo de Imagen Usar campo tipo **Attachment** de NocoDB. La URL del archivo se usa directamente. Para optimizar imágenes automáticamente, considerar: - **Cloudinary**: `https://res.cloudinary.com/cuenta/image/upload/w_180,h_101,c_fill/imagen.jpg` - **Redimensionado manual** antes de subir ### Tamaños de Imagen Recomendados | Tipo | Subir | Se muestra como | |------|-------|-----------------| | Nodo | 240×240 px | 120×120 px | | Subnodo | 360×202 px | 180×101 px | Subir al doble para pantallas retina. --- ## Ejemplo JSON Completo ```json { "titulo": "Proyecto Cliente X", "mostrar_titulo": true, "colores": "#FF6B35, #06D6A0, #3B82F6", "fuente": "Montserrat", "nodos": [ { "id": "n1", "titulo": "Planos", "imagen": "https://ejemplo.com/planos-thumb.jpg", "subnodos": [ { "id": "s1", "titulo": "Planta Baja", "imagen": "https://ejemplo.com/planta-baja.jpg", "tiene_preview": true, "tiene_descarga": true, "tiene_enlace": false, "tiene_historial": true }, { "id": "s2", "titulo": "Planta Alta", "imagen": "https://ejemplo.com/planta-alta.jpg", "tiene_preview": true, "tiene_descarga": true, "tiene_enlace": true, "tiene_historial": false } ] } ] } ``` --- ## Pendiente de Implementar - [ ] Conexión real con API de NocoDB - [ ] Sistema de autenticación con PIN - [ ] Funcionalidad real de iconos: - [ ] Preview: abrir modal con documento - [ ] Descarga: descargar archivo - [ ] Enlace: copiar URL al portapapeles - [ ] Historial: mostrar versiones anteriores - [ ] Responsive móvil (adaptar a pantallas pequeñas) - [ ] Integración en aplicación empresarial --- ## Historial de Versiones | Versión | Cambios principales | |---------|---------------------| | v11 | Colores/fuentes configurables, centrado mejorado, iconos en 4 esquinas, fix texto duplicado | | v10 | Imágenes base64 incrustadas (demo) | | v9 | Esquinas redondeadas 20px/15px, iconos 50% opacidad | | v8 | Subnodos aparecen instantáneamente | | v7-v1 | Iteraciones de diseño y animación |