- renombrar openspec/ a _openspec/ (carpeta auxiliar) - mover specs de features a changes/ - crear specs base: arquitectura-limpia, estandares-codigo, nomenclatura - migrar _planificacion/ con design-system y roi-theme-template - agregar especificacion recaptcha anti-spam (proposal, tasks, spec) - corregir rutas y referencias en todas las specs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.8 KiB
4.8 KiB
⚙️ ESPECIFICACIONES DEL SISTEMA
Requerimientos Generales
- Persistencia de Datos: Archivos JSON (NO localStorage, NO base de datos)
- Vista Previa: TODAS las pestañas DEBEN tener vista previa en tiempo real
- Panel Principal: Existe un panel de administración que lista todas las pestañas disponibles
- Arquitectura: Componentes independientes pero con diseño consistente
- Navegación: Sistema de pestañas/tabs para alternar entre componentes
Stack Tecnológico
CDN y Librerías
<!-- Bootstrap 5.3.2 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/Css/bootstrap.min.css" rel="stylesheet">
<!-- Bootstrap Icons 1.11.3 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/Font/bootstrap-icons.min.css">
<!-- Google Fonts: Poppins -->
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap" rel="stylesheet">
<!-- CSS del proyecto -->
<link rel="stylesheet" href="../../Css/style.css">
JavaScript
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/Js/bootstrap.bundle.min.js"></script>
Estructura de Archivos
Arquitectura modular: Cada componente tiene sus propios archivos separados (PHP, CSS, JS).
wp-content/themes/apus-theme/
└── admin-panel/
└── Admin/
├── Components/
│ ├── component-[name].php
│ ├── component-[name]-2.php
│ └── component-[name]-3.php
├── Assets/
│ ├── Css/
│ │ ├── component-[name].css
│ │ ├── component-[name]-2.css
│ │ └── component-[name]-3.css
│ └── Js/
│ ├── component-[name].js
│ ├── component-[name]-2.js
│ └── component-[name]-3.js
└── Config/
├── [name]-config.json
├── [name]-2-config.json
└── [name]-3-config.json
Ejemplo con un componente específico:
admin-panel/Admin/
├── Components/
│ └── component-notification-bar.php
├── Assets/
│ ├── Css/
│ │ └── component-notification-bar.css
│ └── Js/
│ └── component-notification-bar.js
└── Config/
└── notification-bar-config.json
Convenciones de Nombrado
Archivos PHP (Componentes)
- Patrón:
component-[nombre].php - Ubicación:
admin-panel/Admin/Components/ - Ejemplo:
component-notification-bar.php,component-site-footer.php
Archivos CSS
- Patrón:
component-[nombre].css - Ubicación:
admin-panel/Admin/Assets/Css/ - Mismo nombre base que el componente PHP correspondiente
Archivos JavaScript
- Patrón:
component-[nombre].js - Ubicación:
admin-panel/Admin/Assets/Js/ - Mismo nombre base que el componente PHP correspondiente
Archivos de Configuración JSON
- Patrón:
[nombre]-config.json - Ubicación:
admin-panel/Admin/Config/ - Ejemplo:
notification-bar-config.json
Dependencias del Proyecto
| Dependencia | Versión | Propósito |
|---|---|---|
| Bootstrap | 5.3.2 | Framework CSS y componentes UI |
| Bootstrap Icons | 1.11.3 | Sistema de iconos |
| Poppins Font | Google Fonts | Tipografía principal |
| style.css | Custom | Estilos específicos del proyecto |
Requerimientos del Navegador
- Navegadores modernos: Chrome, Firefox, Safari, Edge (últimas 2 versiones)
- JavaScript: Habilitado
- CSS Grid: Soporte requerido
- Flexbox: Soporte requerido
- CSS Custom Properties: Soporte requerido
Estructura de un Componente
Cada componente debe tener:
-
✅ Archivo PHP (
component-[name].php)- Formulario de configuración
- Vista previa en tiempo real
- Integración con WordPress
-
✅ Archivo CSS (
component-[name].css)- Estilos específicos del componente admin
- Estilos para vista previa
-
✅ Archivo JavaScript (
component-[name].js)- Funcionalidad del componente
- Event listeners
- Funciones de actualización de preview
- Persistencia de configuración
-
✅ Configuración JSON (
[name]-config.json)- Valores por defecto
- Metadata del componente
- Timestamp de última modificación
Reglas de Integración
❌ NO Permitido
- localStorage para persistencia (usar config.json)
- Base de datos directa
- Inline styles que sobreescriban CSS del front-end
- Modificar HTML del front-end desde admin
✅ Permitido
- Archivos JSON para configuración
- Inline styles SOLO en el admin panel (si no afecta preview)
- CSS con
!importantSOLO si es necesario para override de WordPress