Temas Visuales y HTMX
El frontend del CRM ha abandonado por completo arquitecturas de tipo Single Page Application (React/Vue/Angular) pesadas a favor de la pila HTMX + Alpine.js + TailwindCSS. Esta decisión nos otorga la
El frontend del CRM ha abandonado por completo arquitecturas de tipo Single Page Application (React/Vue/Angular) pesadas a favor de la pila HTMX + Alpine.js + TailwindCSS. Esta decisión nos otorga la velocidad de una SPA con la robustez y seguridad de las aplicaciones renderizadas en el servidor.
Renderizado con HTMX
Todos los enlaces y envíos de formularios utilizan atributos hx-*.
- Navegación: Al hacer clic en un enlace del menú, HTMX pide al servidor el fragmento de HTML correspondiente (vista parcial) y lo inyecta directamente en el contenedor
#main-content, sin recargar la página completa. - Pila de Historial: Al usar
hx-push-url="true", la URL de la barra del navegador cambia dinámicamente y se integra con los botones de "Atrás/Adelante" del navegador de forma nativa.
Reglas para Componentes HTMX
- Ningún formulario de acción debe recargar la web de forma clásica. Todos deben enviarse usando
hx-postapuntando amodules/*/actions/*.php. - Las respuestas del backend deben ser o bien un nuevo nodo de DOM HTML, o triggers de eventos HTMX (ej. cabecera
HX-Trigger: showToast).
Theme Runtime v2
El CRM soporta la inyección dinámica de variables de entorno para CSS (Temas Claro, Oscuro, y sub-variantes Enterprise o Brutalistas).
Funcionamiento
- Un componente Alpine.js a nivel de
<body>controla el estado visual (Theme activo). - Las clases CSS nunca usan colores absolutos fijos de Tailwind (ej.
bg-red-500), sino variables CSS de Tailwind extendidas (ej.bg-[var(--fgx-red)]). - El cambio de tema solo altera las variables
--fgx-*a nivel de:rooten tiempo de ejecución. Esto garantiza un redibujado instantáneo del navegador sin latencia de red ni reflows costosos.
Módulos, Hooks y Mounts
NexGestion utiliza un sistema de Descubrimiento Dinámico. El Core no conoce la lógica de su módulo hasta que lee su manifiesto. Esto permite una arquitectura desacoplada y escalable.
Seguridad Guard
El CRM implementa un modelo de seguridad tipo "Front-Controller Gatekeeper" distribuido a través de todos los módulos. Ningún archivo PHP directo de la aplicación puede ejecutarse saltándose estas com