- Comentar carga de admin/theme-options/theme-options.php
- Comentar carga de admin/theme-options/options-api.php
- El nuevo Admin Panel (admin/init.php) ya se carga en línea 272
- Esto elimina conflicto entre sistema viejo y nuevo
- Comentar add_theme_page() en inc/admin/theme-options.php
- Comentar add_theme_page() en admin/theme-options/theme-options.php
- Estos archivos viejos estaban registrando 'Theme Options' en menú Apariencia
- Ahora solo se usa el nuevo registro en admin/includes/class-admin-menu.php
- Elimina conflicto que mostraba el menú en dos lugares
- Cambiar de 'appearance_page_apus-theme-settings' a 'toplevel_page_apus-theme-settings'
- Necesario para que assets se carguen correctamente en menú de nivel superior
- Sin esto, el CSS/JS no se cargaba en la página de configuración
- Diagrama de arquitectura final implementada
- Estructura de tablas (defaults y components)
- Flujo de datos completo (escritura/lectura)
- Decisión arquitectónica: Opción A (wp_options para personalizaciones)
- Responsabilidades de cada clase
- Estado actual y próximos pasos
- Checklist de verificación
Completa documentación requerida por FASE 6 del plan
- Cambiar de add_theme_page() a add_menu_page()
- Posición 61 (después de Appearance, antes de Plugins)
- Ícono dashicons-admin-generic
- Menú ahora aparece al mismo nivel que Dashboard, Settings, etc.
- NO dentro del menú Apariencia
Completa PASO 2.0 del PLAN-PREPARACION-TEMA-BD.md
- Agregar constante TABLE_DEFAULTS para tabla de valores por defecto
- Modificar get_table_name() para aceptar parámetro table_type
- Actualizar create_tables() para crear ambas tablas con estructura idéntica
- Modificar todos los métodos (get_config, save_config, delete_config, list_components) para aceptar table_type
- Actualizar Settings Manager get_defaults() para leer desde tabla defaults usando DB Manager
- Mantener compatibilidad hacia atrás con valor por defecto 'components'
Arquitectura final:
- wp_apus_theme_components_defaults = Valores por defecto del tema (escritura algoritmo)
- wp_apus_theme_components = Personalizaciones del usuario (escritura admin panel)
- Una sola clase (APUS_DB_Manager) maneja ambas tablas con misma estructura
- Cambiar posición de 59 a 61
- Aclarar que debe estar AL MISMO NIVEL que Settings, Dashboard, etc.
- NO debe estar dentro de Settings ni ningún otro menú
- Agregar tabla de posiciones de menús WordPress
- Posición 61 = entre Appearance (60) y Plugins (65)
- Plan de 6 fases para preparar tema antes de modificar algoritmo
- FASE 1: Análisis de arquitectura actual
- FASE 2: Corregir ubicación del menú admin (nuevo paso agregado)
* Cambiar add_theme_page() a add_menu_page()
* Mover 'Apus Theme Options' a menú propio en sidebar
- FASE 3: Crear Defaults Manager
- FASE 4: Decisión sobre personalizaciones
- FASE 5: Testing y validación
- FASE 6: Documentación
Plan ejecutable paso a paso antes de tocar algoritmo.
- Agregado Top Bar hardcodeado como los demás componentes (navbar, let's talk)
- HTML copiado del template original (líneas 57-80)
- Mantiene el patrón del tema: componentes estáticos en templates
- Top Bar ahora visible nuevamente en el sitio
ERROR CRÍTICO corregido:
- El sitio estaba caído porque init.php intentaba cargar sanitizers eliminados
- Eliminadas líneas 30-36 que cargaban class-topbar-sanitizer.php y otros
- Sitio ahora funcional nuevamente
Ref: admin/init.php línea 33
- Tabla para almacenar valores por defecto de componentes
- Estructura con 8 columnas: id, component_name, config_key, config_value,
data_type, version, created_at, updated_at
- Índices optimizados para búsquedas rápidas
- UNIQUE constraint en (component_name, config_key) para evitar duplicados
- Tabla ejecutada y verificada en base de datos preciosunitarios_wp
Esta tabla será la ÚNICA fuente de verdad para defaults de componentes.
El algoritmo consultará esta tabla en lugar de tener defaults hardcodeados.
Ref: PROBLEMA-DEFAULTS-HARDCODEADOS-ALGORITMO.md (Líneas 418-437)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Eliminados todos los componentes incorrectos y defaults duplicados
preparando el sistema para la implementación correcta con tabla de BD.
ARCHIVOS ELIMINADOS (11 archivos):
- admin/assets/js/component-navbar.js
- admin/assets/css/component-navbar.css
- admin/components/component-top-bar.php
- admin/components/component-navbar.php
- admin/components/component-hero-section.php
- admin/components/component-lets-talk-button.php
- admin/includes/sanitizers/class-topbar-sanitizer.php
- admin/includes/sanitizers/class-navbar-sanitizer.php
- admin/includes/sanitizers/class-herosection-sanitizer.php
- admin/includes/sanitizers/class-letstalkbutton-sanitizer.php
- template-parts/navbar-configurable.php
ARCHIVOS MODIFICADOS (6 archivos):
- admin/includes/class-admin-menu.php: Eliminados enqueues de componentes
- admin/includes/class-settings-manager.php: Limpiados get_defaults() y sanitize_settings()
- admin/includes/class-validator.php: Eliminado validate_top_bar()
- admin/pages/main.php: Reducido de 521 a 37 líneas (93%)
- admin/assets/js/admin-app.js: Reducido de 431 a 219 líneas (49%)
- header.php: Eliminado código de Top Bar (92 líneas)
BASE DE DATOS:
- Eliminada opción 'apus_theme_settings' de wp_options
RESUMEN:
- 11 archivos eliminados
- 6 archivos limpiados
- 1 opción de BD eliminada
- Todos los defaults hardcodeados eliminados
- Sistema preparado para FASE 2 (crear tabla de defaults)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added wp_enqueue_style for 'apus-component-navbar-css'
- Points to admin/assets/css/component-navbar.css
- Dependency: 'apus-admin-panel-css'
- Version: APUS_ADMIN_PANEL_VERSION
This was the critical missing piece causing navbar cards to display
with incorrect Bootstrap default styles instead of custom component styles.
Without this enqueue:
- Cards had padding: 11.2px 32px 16px (Bootstrap default)
- Cards had margin: 20px 0px 16px (Bootstrap default)
- card-body had padding: 24px (Bootstrap default)
With this enqueue applied:
- Cards have padding: 0px (custom)
- Cards have margin: 0px 0px 16px (custom)
- card-body has padding: 16px (custom)
- All styles match Top Bar exactly ✅Resolves#179 (Phase 3: Enable CSS loading)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added initColorPickers() method to handle color picker interactions
- Dynamically updates hex value displays when user changes colors
- Covers all 7 color pickers in navbar configuration
- Event listeners on 'input' event for real-time updates
- Initializes hex displays on component load with uppercase format
Enhances UX by showing live color values to user.
Resolves#179 (Phase 2: JavaScript enhancements)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created component-navbar.css based on component-top-bar.css structure
- Applied #navbarTab selector to match Top Bar design patterns
- Fixed card styles: padding: 0, margin: 0 0 16px, border-radius: 6px
- Fixed card-body padding: 1rem (16px)
- Fixed box-shadow to match Top Bar: rgba(0, 0, 0, 0.075) 0px 2px 4px 0px
- Includes responsive rules and form controls styling
Resolves#179 (Phase 1: Create CSS file)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
JavaScript module that manages navbar component data collection and rendering.
Exposes window.NavbarComponent object with three main methods.
Methods:
- init(): Initializes component (event listeners, etc.)
- collect(): Collects all 38 form fields into structured object
- render(config): Populates form fields from configuration object
Data Structure:
- Flat fields: enabled, position, responsive_breakpoint, etc.
- Nested objects: lets_talk_button, dropdown, custom_styles
Field Coverage:
- Boolean switches: 9 fields
- Color pickers: 7 fields
- Select dropdowns: 7 fields
- Number inputs: 9 fields
- Text inputs: 2 fields
Total: 38 configurable fields
Integration:
- Called by admin-app.js for save/load operations
- Works with Settings Manager for backend persistence
- Supports real-time form validation
File: admin-panel/admin/assets/js/component-navbar.js (160 lines)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fix critical bug where navbar configuration was not being saved.
The component-navbar.js file existed but was not being loaded by WordPress,
causing window.NavbarComponent to be undefined and preventing data collection.
Changes:
- Added wp_enqueue_script for component-navbar.js (lines 126-133)
- Updated admin-app.js dependencies to include navbar component (line 139)
Impact: Navbar settings now save correctly to database
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregado cierre de row después del card 1
- Agregado apertura de row para cards 2-4
- Corregida indentación de headers dentro de card-body
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminado </div> duplicado en toggle Desktop
- Agregado cierre correcto para col-md-6 del primer card
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Row 1: Activación + Contenido (col-md-6 cada uno)
- Row 2: Estilos + Vista Previa (col-md-6 cada uno)
- Añadido h-100 para altura uniforme entre cards
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminar row g-4 y col-md-4 que causaban layout horizontal
- Cambiar a divs con mb-4 para espaciado vertical consistente
- Último elemento con mb-0 para evitar espacio extra
- Los 3 toggles ahora se apilan verticalmente como cards
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Funcionalidades JavaScript agregadas:
- Actualización de progress bar junto con contador de caracteres
- Progress bar cambia de color según proximidad al límite:
* Naranja: 0-200 caracteres
* Amarillo: 201-230 caracteres
* Rojo: 231-250 caracteres
- Vista previa en tiempo real del Top Bar (setupLivePreview)
- Actualización automática al modificar cualquier campo:
* Icono y visibilidad
* Texto destacado
* Mensaje principal
* Enlace y visibilidad
* Colores (fondo, texto, destacado)
* Tamaño de fuente
- Renderizado HTML dinámico en tiempo real
- Listeners optimizados con event delegation
La vista previa refleja exactamente cómo se verá en el frontend
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Mejoras CSS implementadas:
- Variables CSS con paleta APUs completa (Navy + Orange + Neutrales)
- Clases de utilidad para colores de marca
- Tab header con gradiente sutil y borde lateral naranja
- Section titles con iconos en gradiente
- Cards con hover effects y transiciones suaves
- Toggle containers con fondos y bordes
- Form switches grandes (3rem) con colores personalizados
- Input groups sin bordes intermedios
- Color pickers con hover effects y transform
- Alert personalizado con gradiente naranja
- Animación fadeInUp para vista previa
- Botones de marca Navy y Orange con hover effects
- Progress bar con transiciones suaves
- Badges y typography utilities
- Responsive design para móviles
Todo con transiciones fluidas y sistema de spacing consistente
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Mejoras implementadas:
- Header del tab con gradiente y botón de restaurar defaults
- Cards con sombras y bordes sutiles para las secciones
- Section titles con iconos destacados en gradiente naranja
- Toggle containers con fondo gris claro y bordes
- Input groups sin bordes intermedios (merge)
- Color pickers mejorados con preview de código hex
- Progress bar visual para contador de caracteres del mensaje
- Alert personalizado con tip de diseño
- Vista previa interactiva del Top Bar en tiempo real
- Badges para indicadores (Opcional, Requerido)
- Iconografía consistente con Bootstrap Icons
- Espaciado mejorado con sistema g-4
Diseño coherente con paleta APUs (Navy + Orange + Neutrales)
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar require_once para admin-panel/init.php
- Inicializar módulo del Admin Panel (Phase 1-2: Base Structure)
- Permitir acceso a configuraciones de componentes del tema
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implementar setupCharacterCounter() en AdminPanel
- Agregar listener de evento 'input' para actualizar contador en tiempo real
- Cambiar color del contador según proximidad al límite (230: danger, 200: warning)
- Trigger automático del contador al cargar/renderizar configuración
- Integrar llamada a setupCharacterCounter() en bindEvents()
Basado en: 07-IMPLEMENTACION-ADMIN-JS.md
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Actualizar main.php con diseño completo del Tab Top Bar
- Agregar switches en lugar de checkboxes básicos
- Implementar layout responsive con grid Bootstrap
- Agregar textarea con contador de caracteres para mensaje
- Implementar color pickers para estilos personalizados
- Mejorar accesibilidad con labels y roles ARIA
- Agregar vista previa informativa
Basado en: 05-IMPLEMENTACION-ADMIN-INTERFAZ-TOP-BAR.md
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Dos fixes críticos para el admin panel del tema:
1. **Fix error de nonce en AJAX**
- Cambiar de wp_verify_nonce() a check_ajax_referer()
- check_ajax_referer() es el método recomendado por WordPress para AJAX
- Aplicado en ajax_get_settings() y ajax_save_settings()
- El nonce ahora se valida correctamente
2. **Fix validación de URLs relativas**
- Aceptar URLs relativas que empiezan con / (ej: /catalogo)
- filter_var() con FILTER_VALIDATE_URL rechazaba URLs relativas
- Agregada validación adicional con regex para paths relativos
- Mantiene validación para URLs completas
Archivos modificados:
- admin-panel/includes/class-settings-manager.php
- admin-panel/includes/class-validator.php
Issue: #144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implementación completa del componente Top Bar con 15 campos configurables desde el admin panel, siguiendo el algoritmo universal v2.0.
## Cambios Realizados
### Backend (PHP)
- Agregados defaults del Top Bar a class-settings-manager.php
- Implementada validación completa en class-validator.php (15 campos)
- Implementada sanitización con sanitize_text_field, esc_url_raw y sanitize_hex_color
- Modificado header.php con código 100% configurable usando wp_parse_args()
### Frontend (Admin Panel)
- Creado tab HTML completo con 3 secciones: Activación, Contenido y Estilos
- Implementado JavaScript para renderizado y recolección de datos
- 15 campos configurables: enabled, visibility, icon, content, link, custom styles
### Infraestructura
- Creado admin-panel/init.php para carga del módulo
- Creada class-admin-menu.php con enqueue de Bootstrap 5 y assets
- Creada estructura base CSS y JavaScript del admin
- Ya cargado en functions.php línea 276
## Características
- Responsive: Control independiente mobile/desktop
- Estilos personalizables: 4 colores + tamaño de fuente
- Validación robusta: Límites de caracteres, URLs, colores hex
- Defaults inteligentes: Valores seguros si no hay configuración
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Se movió el repositorio git desde la raíz de WordPress a la carpeta del tema.
Este commit limpia todos los archivos de WordPress del historial de tracking
y mantiene únicamente los archivos del tema apus-theme.
Cambios:
- Eliminado tracking de archivos de WordPress core
- Mantenido solo archivos del tema (97 archivos)
- Actualizado .gitignore para excluir carpetas de desarrollo
- Historial de commits anteriores se mantiene intacto
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA:
- componente-footer-principal.css contenía 526 líneas de código de HEADER
- Estilos de footer estaban duplicados en componente-footer-contact-form.css
- Arquitectura modular no se cumplía
SOLUCIÓN:
1. Reemplazado componente-footer-principal.css con CSS correcto de footer (50 líneas)
- footer base con navy-dark background
- footer h5 títulos blancos
- footer a enlaces con hover naranja
- footer .btn-primary botón newsletter naranja
- Según documentación CSS-ESPECIFICO.md líneas 987-1021
2. Eliminado duplicación en componente-footer-contact-form.css
- Removidas líneas 64-88 (estilos de footer)
- Archivo ahora solo contiene estilos de contact form
3. Version bump a 1.0.19
ARCHIVOS MODIFICADOS:
- wp-content/themes/apus-theme/assets/css/componente-footer-principal.css (526→50 líneas)
- wp-content/themes/apus-theme/assets/css/componente-footer-contact-form.css (119→88 líneas)
- wp-content/themes/apus-theme/functions.php (v1.0.18→1.0.19)
VERIFICACIÓN:
- ✅ HTML en footer.php ya estaba correcto
- ✅ CSS ahora en archivo correcto según arquitectura modular
- ✅ Sin duplicación de estilos
- ✅ Código de header que estaba en footer-principal.css no se usaba
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA:
- CSS usaba selectores .related-post-card que NO existen en HTML
- HTML usa .related-posts .card (Bootstrap estándar)
- Resultado: CERO estilos personalizados aplicados
CAMBIOS:
- Reescribir componente-related-posts.css con selectores correctos
- Cambiar de .related-post-card a .related-posts .card
- Aplicar CSS exacto de CSS-ESPECIFICO.md líneas 62-132
CSS APLICADO:
✅ cursor: pointer en cards
✅ border-left: 4px solid navy
✅ border-left-color: orange en hover
✅ box-shadow en hover
✅ card-title color navy
✅ card-title color orange en hover
ARCHIVOS:
- wp-content/themes/apus-theme/assets/css/componente-related-posts.css (REESCRITO)
- wp-content/themes/apus-theme/functions.php (v1.0.16 → v1.0.17)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA IDENTIFICADO:
- Dropdown "Buscador General de Precios Unitarios" (18 elementos) NO se despliega en hover
- Usuario reportó: "el submenu no se despliega" en staging
- Inspeccionado con Chrome DevTools MCP: dropdown permanece display:none en hover
DIAGNÓSTICO:
✅ HTML correcto: <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
✅ Bootstrap 5 cargado: window.bootstrap existe
✅ Walker genera data-bs-toggle="dropdown" correctamente
❌ Bootstrap 5 usa CLICK por defecto, NO hover
❌ No había CSS para activar dropdown en hover
❌ Template base tampoco tiene dropdown hover
CAUSA RAÍZ:
Bootstrap 5 NUNCA ha usado hover por defecto. Requiere CSS adicional.
SOLUCIÓN IMPLEMENTADA (CSS > JavaScript):
Agregar 4 líneas CSS para dropdown hover SOLO en desktop (min-width: 992px)
Archivo: componente-navbar.css (líneas 136-144)
@media (min-width: 992px) {
.nav-item:hover > .dropdown-menu {
display: block;
}
}
POR QUÉ CSS vs JavaScript:
✅ Super simple: 4 líneas vs 20-30 líneas JS
✅ Performance perfecto: Sin event listeners
✅ Híbrido perfecto: Hover desktop + Click móvil (Bootstrap)
✅ Compatible: Funciona aunque JS esté deshabilitado
✅ Menos bugs: Menos código = menos errores
ARCHIVOS MODIFICADOS:
- componente-navbar.css: +9 líneas (CSS dropdown hover)
- functions.php: Version 1.0.15 → 1.0.16
RESULTADO:
✅ Desktop (>992px): Dropdown se despliega en hover instantáneamente
✅ Móvil (<992px): Sigue usando click nativo de Bootstrap
✅ Compatible con los 18 elementos + scroll del Issue #103✅ Sin conflictos con JavaScript existente
TESTING PENDIENTE:
- Verificar en staging que dropdown funciona en hover
- Confirmar que NO interfiere con móvil (debe seguir usando click)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA:
- Botón CTA mostraba underline en hover
- Estilo global a:hover { text-decoration: underline; } se aplicaba
- .cta-button:hover NO sobrescribía text-decoration
CAUSA RAÍZ:
- style.css línea 249: a:hover { text-decoration: underline; }
- .cta-button tiene text-decoration: none en estado normal
- .cta-button:hover NO tenía text-decoration: none
- Resultado: underline aparecía en hover
SOLUCIÓN:
- Agregar text-decoration: none a .cta-button:hover
- Sobrescribe estilo global de links
- Mantiene botón sin underline en hover
CAMBIOS:
- componente-cta-ab-testing.css línea 41: + text-decoration: none;
- Version 1.0.14 -> 1.0.15
RESULTADO:
- Botón CTA sin underline en normal y hover
- Color fondo cambia en hover (naranja claro -> oscuro)
- Color texto permanece blanco
Testing: Verificar hover sin underline en staging
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA:
- Iconos 37% más grandes en staging (19.2px vs 14px template)
- CSS con 7 propiedades extra NO documentadas
- Archivo tenía 138 líneas vs 12 líneas en documentación
SOLUCIÓN:
- Reemplazar completamente componente-share-buttons.css
- Usar SOLO 2 reglas CSS según CSS-ESPECIFICO.md
- Eliminar font-size: 1.2rem y 6 propiedades extra
- Reducir archivo de 138 líneas a 23 líneas
CAMBIOS:
- ELIMINADO: font-size, padding, line-height, min-width, display, etc.
- ELIMINADO: Hover avanzado (transform, scale)
- ELIMINADO: Colores hover específicos por red social
- ELIMINADO: Media queries responsive custom
- MANTENIDO: Solo transition y border-width (según doc)
- Version 1.0.13 -> 1.0.14
RESULTADO:
- Iconos ahora usan tamaño default Bootstrap (14px)
- CSS minimalista: solo 2 reglas
- Bootstrap maneja colores y tamaños
Testing: Verificar iconos 14px en staging después de deploy
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA:
- Los estilos del componente .post-content en staging no coincidían con el template base
- Container .post-content no tenía background, padding, border-radius ni box-shadow
- H2 border-bottom era 1px gris en lugar de 3px naranja
- H2 font-weight era 600 en lugar de 700
- Links eran color Bootstrap azul (#0d6efd) en lugar de naranja (--color-orange-primary)
- Márgenes y padding no coincidían con template
SOLUCIÓN:
- Reemplazado componente-post-content.css con estilos correctos del template
- Source: apus-theme-template/css/style.css líneas 245-298
- Container ahora tiene background blanco, padding 2rem, border-radius 12px, box-shadow
- H2 border-bottom cambiado a 3px solid var(--color-orange-primary)
- H2 font-weight cambiado a 700
- Links color cambiado a var(--color-orange-primary)
- Agregado responsive para .post-content container
ARCHIVOS:
- wp-content/themes/apus-theme/assets/css/componente-post-content.css
- wp-content/themes/apus-theme/functions.php (version 1.0.11 → 1.0.12)
Ref: #134🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEMA DETECTADO:
Duplicación de sistemas TOC:
- componente-sidebar-toc.css (✅ EN USO - TOC en sidebar)
- css-global-toc.css (❌ OBSOLETO - TOC en contenido, no usado)
ANÁLISIS:
- template-parts/content-toc.php usa clases .toc-container (sidebar)
- inc/toc.php genera TOC con funciones apus_generate_toc()
- sidebar.php llama a funciones de inc/toc.php
- css-global-toc.css tenía clases .apus-toc que NO se usan
- toc.js estaba enqueueado pero NO se usa
ELIMINACIONES:
❌ css-global-toc.css (369 líneas, clases .apus-toc no usadas)
❌ assets/js/toc.js (7583 bytes, no usado)
❌ Función apus_enqueue_toc_assets() en enqueue-scripts.php
MANTENER:
✅ componente-sidebar-toc.css (125 líneas, clases .toc-container)
✅ inc/toc.php (funciones usadas por sidebar.php)
✅ template-parts/content-toc.php (genera HTML del TOC)
RESULTADO:
- Sistema TOC unificado: solo sidebar TOC
- Sin duplicaciones
- Sin código obsoleto
- Reducción: 369 líneas CSS + 7583 bytes JS eliminados
Version: 1.0.10 → 1.0.11
Issue: #133 (seguimiento)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Problema:
Después del commit ba5d7 (limpieza masiva), el Top Notification Bar dejó de verse porque:
1. Eliminé CSS simple del template de style.css (líneas 779-802)
2. notification-bar.css contenía CSS DIFERENTE del Issue #39 (versión avanzada)
3. HTML en header.php usa versión SIMPLE del template
4. CSS avanzado (position fixed, botón cerrar) NO coincidía con HTML simple
Análisis:
- HTML actual: Versión simple sin botón cerrar, sin position fixed
- CSS eliminado: background navy-dark, padding 0.5rem, text-align center
- CSS en archivo: background slate-gray, position fixed, height 40px (INCORRECTO)
- Resultado: Barra invisible por estilos incompatibles
Solución:
Sobrescrito notification-bar.css con CSS correcto del template según:
_planeacion/_desarrollo-tema-apus/theme-documentation/05-componente-top-bar/CSS-ESPECIFICO.md
Nuevo contenido:
- background-color: var(--color-navy-dark)
- color: #ffffff
- padding: 0.5rem 0
- font-size: 0.9rem
- text-align: center
- + estilos para strong, i, a, a:hover
Archivos modificados:
- assets/css/notification-bar.css - Sobrescrito con CSS simple correcto
- functions.php - Version bump 1.0.7 → 1.0.8
🎯 Resultado:
- Top Notification Bar visible con estilos correctos del template
- HTML y CSS alineados correctamente
- CSS ya registrado en enqueue-scripts.php línea 171
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Problema:
- style.css contenía CSS de MÚLTIPLES componentes mezclados
- Violaba principio de separación de responsabilidades
- Algunos componentes tenían archivos CSS pero estaban duplicados en style.css
Solución:
1. REACTIVADO buttons.css
- Era archivo deshabilitado (Issue #101 lo movió a style.css - INCORRECTO)
- Ahora contiene estilos del botón Let's Talk
- Registrado en enqueue-scripts.php línea 189
2. CREADO navbar.css
- Nuevo archivo para navegación principal
- Incluye: navbar, navbar-brand, nav-link, dropdown-menu, dropdown-item
- Registrado en enqueue-scripts.php línea 180
3. REGISTRADO notification-bar.css
- Archivo ya existía pero NO estaba registrado
- Ahora registrado en enqueue-scripts.php línea 171
4. LIMPIEZA MASIVA style.css
- Eliminadas 262 líneas de CSS de componentes
- Componentes movidos:
* TOP NOTIFICATION BAR → notification-bar.css
* NAVBAR → navbar.css
* BOTÓN LET'S TALK → buttons.css
* HERO SECTION → hero.css (ya existía)
* POST CONTENT → post-content.css (ya existía)
* FEATURED IMAGE → (comentado, pendiente crear si necesario)
Archivos modificados:
- assets/css/buttons.css - Reactivado con estilos Let's Talk
- assets/css/navbar.css (NUEVO) - Componente navegación
- assets/css/style.css - Eliminadas 262 líneas
- inc/enqueue-scripts.php - Nueva función apus_enqueue_global_components()
- functions.php - Version bump 1.0.6 → 1.0.7
🎯 Resultado:
- style.css ahora SOLO contiene estilos GLOBALES del tema
- TODOS los componentes en archivos individuales
- Arquitectura consistente y mantenible
- No más duplicaciones
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>