Documentación Técnica
Panel de Entrega de Kits
Guía completa de arquitectura, componentes, funcionalidades e instrucciones de integración para el desarrollador WordPress.
¿Qué es este panel?
Un panel de entrega de productos digitales estilo Netflix, diseñado para mamás emprendedoras que compran kits de papelería imprimible. Permite a la clienta visualizar, organizar y descargar todos sus archivos de forma intuitiva desde cualquier dispositivo.
#mi-panel y .mi- para evitar conflictos con el tema WordPress.Estructura del código
El bloque se compone de tres partes en un único archivo HTML. No hay archivos separados de CSS o JS.
(function(){ ... })(). Las funciones que necesitan ser llamadas desde el HTML (onclick) se exponen explícitamente en window.miNombreFuncion. No modificar esta estructura.Mapa de componentes
El panel se divide en 8 componentes visuales independientes. Cada uno tiene su propio set de clases CSS prefijadas con .mi-.
.active. Actualmente es visual — el filtrado real debe implementarse vía JS.scroll-snap para navegación táctil fluida.miOpenModal(id). Lista los archivos descargables de cada kit. Cierra al tocar el fondo o el botón X.mi- (de «Mundo Infantil») para evitar colisiones con Bootstrap, Tailwind u otros frameworks que use el tema WP.Funciones disponibles
Todas las funciones JS son globales (expuestas en window) y se invocan directamente desde los atributos onclick del HTML.
| Función | Descripción | Parámetros | Estado |
|---|---|---|---|
miToggleTheme() |
Alterna entre tema dark y light. Agrega/quita la clase .mi-light en #mi-panel y cambia el ícono del botón. |
— | ✓ Funcional |
miFilterCat(el) |
Maneja el estado activo de los pills de categoría. Quita .active de todos y lo aplica al pill clicado. El filtrado visual de tarjetas debe implementarse. |
el — elemento DOM del pill |
⚡ Parcial |
miOpenModal(id) |
Abre el modal de archivos para el producto con el ID dado. Lee los datos del objeto miProducts e inyecta el HTML de los archivos en el modal. |
id — string (ej: 'fiesta', 'bono1') |
✓ Funcional |
miCloseModal() |
Cierra el modal removiendo la clase .open del contenedor del modal. |
— | ✓ Funcional |
miCloseOutside(e) |
Cierra el modal si el click ocurre sobre el fondo oscuro (fuera del drawer). Verifica que el target sea el backdrop. | e — evento click |
✓ Funcional |
data-category="invitaciones" a cada tarjeta y filtrar por ese valor dentro de miFilterCat().CSS Custom Properties
El sistema de colores completo está basado en CSS variables definidas en #mi-panel. Cambiar un color aquí lo actualiza en todo el panel.
| Variable | Dark | Light | Uso |
|---|---|---|---|
--mi-rose | #E8637A | #E8637A | Color de acento principal, botones, links activos |
--mi-gold | #D4965A | #D4965A | Color secundario, degradados de íconos |
--mi-bg | #141014 | #FBF7FA | Fondo principal del panel |
--mi-bg2 | #1E1720 | #F3EDF7 | Fondo del modal |
--mi-bg3 | #28212C | #EDE5F2 | Fondo de inputs, pills, fondos de código |
--mi-surf | #2E2633 | #FFFFFF | Fondo de tarjetas |
--mi-txt | #F5EFF8 | #1E1222 | Texto principal |
--mi-sub | #B09BBD | #6B4E7D | Texto secundario, descripciones |
--mi-bdr | rgba(255,255,255,.08) | rgba(0,0,0,.08) | Bordes de tarjetas y divisores |
Objeto miProducts
Todos los archivos descargables están definidos en el objeto JavaScript miProducts dentro del script. Para agregar o modificar productos, editar este objeto.
l: '#' como placeholder. Cada l debe reemplazarse con la URL real del archivo (Google Drive, Dropbox, servidor propio, etc.).IDs de productos definidos actualmente
| ID | Nombre | Archivos | Categoría |
|---|---|---|---|
fiesta | Kit Fiesta Mágica Completo | 5 | Principal |
mesita | Kit Mesita de Dulces | 4 | Mesa dulces |
inv1–inv5 | Invitaciones (Princesa, Unicornio, Safari, Sirenita, Superhéroe) | 2 c/u | Invitaciones |
pack1–pack4 | Cajitas, Bolsitas, Etiquetas, Envoltorios | 2 c/u | Packaging |
bono1–bono10 | 10 bonos exclusivos | 1 c/u | Bonos |
Cómo instalar en WordPress
El panel se instala como un bloque HTML nativo de Gutenberg. No requiere plugins adicionales.
panel_gutenberg_wp.html en el bloque. Incluye el link de Google Fonts, el bloque <style>, el HTML y el <script>.background: white al body o al contenedor de página. Si aparece fondo blanco alrededor del panel, la solución es agregar CSS personalizado en Apariencia → Personalizar → CSS adicional apuntando a los selectores del tema específico.CSS adicional para eliminar fondo blanco (Apariencia → Personalizar)
Cómo modificar el panel
Guía rápida de los cambios más comunes que puede necesitar el desarrollador o la administradora del sitio.
Alejandra en el HTML y reemplazar por el nombre de la clienta. Aparece en el hero y en el avatar (inicial).miProducts, reemplazar cada l: '#' con la URL directa de descarga del archivo (Google Drive, Dropbox, etc.)..mi-mini-card o .mi-feat-card en el HTML. 2) Agregar la entrada correspondiente en miProducts. Usar un ID único.--mi-rose y --mi-rose-lt en la sección de CSS variables. Afecta botones, links y acentos en todo el panel..mi-stat.yennysirpa@gmail.com en el HTML (aparece en el footer). Reemplazar por el email oficial del negocio.Antes de publicar
Lista de verificación completa para el desarrollador antes de entregar el panel al cliente.
| # | Tarea | Prioridad | Estado |
|---|---|---|---|
| 1 | Reemplazar todos los l: '#' con URLs de descarga reales en miProducts | 🔴 Crítico | Pendiente |
| 2 | Personalizar el nombre de la clienta en el hero y el avatar | 🔴 Crítico | Pendiente |
| 3 | Verificar que el panel carga correctamente en mobile (iOS Safari + Android Chrome) | 🔴 Crítico | Pendiente |
| 4 | Eliminar fondo blanco del tema WP vía CSS adicional | 🟡 Alto | Pendiente |
| 5 | Verificar que el modal de descarga se abre y cierra correctamente en touch | 🟡 Alto | Pendiente |
| 6 | Probar el toggle de tema oscuro/claro en mobile | 🟡 Alto | Pendiente |
| 7 | Actualizar email de soporte en el footer (yennysirpa@gmail.com) | 🔵 Medio | Pendiente |
| 8 | Actualizar las métricas de stats (cantidad real de kits y bonos) | 🔵 Medio | Pendiente |
| 9 | Implementar filtrado real por categoría en miFilterCat() | 🔵 Medio | Pendiente |
| 10 | Agregar los productos e invitaciones reales con sus thumbnails | 🔵 Medio | Pendiente |
| 11 | Verificar que Google Fonts carga correctamente (requiere conexión a internet) | 🟢 Bajo | Pendiente |
| 12 | Hacer test de rendimiento (PageSpeed Insights) con el panel activo | 🟢 Bajo | Pendiente |
/view?usp=sharing por /export?format=zip o usando un servicio como gdocs2direct.