Commit Graph

12 Commits

Author SHA1 Message Date
FrankZamora
c5ce5eb06d [COMPONENTE 11] Implementar Sidebar TOC con ScrollSpy custom - Issue #121
- CREAR: template-parts/content-toc.php
  * Función PHP apu_generate_toc() para generar TOC automáticamente
  * Regex para buscar H2 con atributo ID
  * Solo se muestra en is_single()

- MODIFICAR: single.php (sidebar)
  * Agregar div.sidebar-sticky wrapper
  * Integrar get_template_part('template-parts/content', 'toc')
  * Preparar espacio para CTA Box (componente 12)

- MODIFICAR: style.css (+87 líneas)
  * 9 selectores CSS + 4 pseudo-elementos scrollbar
  * Sticky positioning (top: 85px)
  * Max-height calculado con calc()
  * Scroll interno con overflow-y: auto
  * Min-height: 0 (crítico para scroll en flexbox)
  * Border-left indicator (navy, NO naranja)
  * Scrollbar personalizado 6px (solo Webkit)

- MODIFICAR: main.js (+66 líneas)
  * Función updateActiveSection() para ScrollSpy
  * Algoritmo SIMPLE: verifica si pasaste el top
  * Offset scroll: navbarHeight + 100
  * Smooth scroll: navbarHeight + 40
  * Selector .toc-container a (NO .toc-link)
  * NO tiene auto-scroll del TOC
  * NO actualiza URL con history.pushState()

Características:
 Generación automática desde H2 con ID
 ScrollSpy custom (JavaScript vanilla, NO Bootstrap)
 Sticky positioning con flexbox
 Scroll interno solo en lista
 Border-left indicator activo
 Scrollbar delgado personalizado

Selectores REALES usados:
- .toc-container a (NO .toc-link)
- .toc-container h4 (NO .toc-title)
- .toc-container li (NO .toc-list li)

🎨 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 09:55:56 -06:00
FrankZamora
f0d245de26 [COMPONENTE 10] Implementar Post Content con tipografía optimizada - Issue #120
- Cambiar <div> a <article> para mejor semántica HTML
- Agregar CSS completo con 9 selectores:
  * .post-content: Contenedor con fondo, padding, shadow
  * .post-content h2: Border-bottom naranja 3px
  * .post-content h3: Color navy light para jerarquía
  * .post-content p: Line-height 1.8 para legibilidad
  * .post-content ul/ol: Listas estilizadas
  * .post-content li: Items con espaciado
  * .post-content strong: Color navy para destacar
  * .post-content a: Enlaces naranjas con underline
  * .post-content a:hover: Hover naranja oscuro

Archivos modificados:
- wp-content/themes/apus-theme/single.php (líneas 61, 70)
- wp-content/themes/apus-theme/assets/css/style.css (líneas 865-921)

🎨 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 09:44:14 -06:00
FrankZamora
546a2ad648 Consolidar CSS eliminando duplicaciones de .hero-title - Issue #108
PROBLEMA RAÍZ:
- .hero-title estaba definido en 4 archivos diferentes (style.css, hero.css, custom-style.css)
- Había propiedades incorrectas agregadas (margin-bottom: 0 en .navbar, margin-top: 0 en .hero-title)
- Estas propiedades NO existen en el template original

CAMBIOS REALIZADOS:

1. hero.css:
   - Eliminado .hero-title completo (líneas 15-24)
   - Eliminado .hero-title del media query responsive (líneas 57-64)
   - Mantenido solo .category-badge-hero y su responsive

2. custom-style.css:
   - Eliminado .hero-title completo (líneas 88-92)
   - Eliminado .hero-title h1 (líneas 94-100)
   - Eliminado .category-badge (líneas 102-124)
   - Dejado comentario indicando que CSS está en style.css

3. style.css:
   - Eliminado margin-bottom: 0 de .navbar (línea 696)
   - Eliminado margin-top: 0 de .hero-title (línea 817)

RESULTADO:
- .hero-title ahora solo está definido UNA VEZ en style.css
- CSS coincide EXACTAMENTE con el template original
- Sin propiedades extras que no existen en template
- Sin duplicaciones de código

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:48:46 -06:00
FrankZamora
c3fae287ce [COMPONENTE 09] Implementar Featured Image con border-radius y lazy loading - Issue #110
CAMBIOS IMPLEMENTADOS:

1. HTML en single.php (líneas 53-58):
   - Cambiar contenedor de 'mb-4' a 'featured-image-container my-4'
   - Cambiar tamaño de imagen de 'large' a 'full' (calidad completa)
   - Simplificar clases de imagen: solo 'img-fluid' (sin w-100 ni rounded)
   - Agregar atributo 'loading' => 'lazy' para lazy loading nativo

2. CSS en style.css (líneas 852-865):
   - Agregar estilos completos del componente Featured Image
   - Border radius: 12px en contenedor
   - Box shadow: 0 8px 24px rgba(0, 0, 0, 0.1)
   - Overflow hidden: CRÍTICO para que border-radius funcione
   - Display block en img: elimina espacio extra de 4px
   - Margin: 2rem vertical para separación

ESPECIFICACIONES TÉCNICAS:
- CSS aplicado en contenedor (más eficiente que en img)
- Overflow hidden asegura que border-radius funcione correctamente
- Display block elimina espacio inline predeterminado del navegador
- Lazy loading mejora performance (carga solo al hacer scroll)
- Tamaño 'full' muestra imagen en calidad original

DOCUMENTACIÓN SEGUIDA:
- theme-documentation/09-componente-featured-image/COMPONENTE-FEATURED-IMAGE.md
- theme-documentation/09-componente-featured-image/CSS-ESPECIFICO.md

Fixes #110

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:11:39 -06:00
FrankZamora
64de88fd57 [Issue #108] Eliminar espacio en blanco entre navbar y hero section
PROBLEMA:
Existía un gap/espacio visible entre el navbar y el hero section.

CAMBIOS:

1. header.php (línea 88):
   - Eliminada línea en blanco después de </nav>
   - HTML ahora termina directamente sin saltos extra

2. style.css - .navbar (línea 696):
   - Agregado margin-bottom: 0
   - Asegura que navbar no tenga margen inferior

3. style.css - .hero-title (línea 816):
   - Agregado margin-top: 0
   - Asegura que hero no tenga margen superior

RESULTADO:
✓ Navbar y hero section pegados sin espacio
✓ Diseño limpio y continuo
✓ Sticky navbar sigue funcionando

Fixes #108

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 21:01:24 -06:00
FrankZamora
a21cd33d6f [Issue #105] Implementar CSS del Hero Section con glassmorphism
HTML ya estaba implementado en single.php (líneas 17-44).
Solo faltaba agregar el CSS en style.css.

CAMBIOS:
- Agregado CSS del Hero Section (42 líneas)
- Comentario separador /* === HERO SECTION === */
- .hero-title con gradiente navy diagonal (135deg)
- .hero-title con box-shadow para profundidad
- .hero-title h1 con text-shadow para legibilidad
- .category-badge con efecto glassmorphism (backdrop-filter: blur)
- .category-badge con semi-transparencia rgba(255, 255, 255, 0.15)
- .category-badge:hover cambia a naranja semi-transparente
- .category-badge i con color naranja claro

ESTILOS GLASSMORPHISM:
- backdrop-filter: blur(10px) - efecto vidrio esmerilado
- background: rgba(255, 255, 255, 0.15) - semi-transparente
- border: 1px solid rgba(255, 255, 255, 0.2)
- Compatible con Chrome 76+, Safari 9+, Edge 79+

GRADIENTE NAVY:
- linear-gradient(135deg, #1e3a5f 0%, #2c5282 100%)
- Diagonal arriba-izquierda → abajo-derecha
- Transición suave entre navy primary y light

Código fuente: CSS-ESPECIFICO.md líneas 58-98

Fixes #105

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 20:53:45 -06:00
FrankZamora
54a0c4fbd5 [Issue #103] Agregar max-height y scroll a submenus del navbar
PROBLEMA:
Submenu "Buscador General de Precios Unitarios" tiene 18 elementos
y se oculta fuera de la pantalla, haciendo inaccesibles los últimos.

CAMBIOS:
1. Reducir padding vertical de .dropdown-item (0.625rem → 0.5rem)
   - Ahorra ~64px total con 18 elementos
   - Elementos más compactos visualmente

2. Agregar max-height: 70vh a .dropdown-menu
   - Permite ver ~10-12 elementos simultáneamente
   - Todos los 18 elementos accesibles mediante scroll

3. Activar overflow-y: auto
   - Scroll vertical aparece automáticamente si necesario
   - Solo cuando contenido excede 70vh

4. Mejorar UX del scroll
   - scroll-behavior: smooth (scroll suave)
   - Scrollbar personalizado (6px, color gris)
   - scrollbar-width: thin (Firefox)
   - Custom webkit scrollbar (Chrome, Safari, Edge)

RESULTADO:
 Todos los 18 elementos del submenu son accesibles
 Scroll vertical suave y con estilo personalizado
 Elementos más compactos pero legibles
 Funciona en todos los navegadores modernos

Fixes #103

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 20:45:22 -06:00
FrankZamora
403b953b0a Corregir botón Let's Talk - Agregar !important para color naranja
Bootstrap sobrescribe CSS sin !important
Botón ahora se verá NARANJA como debe ser

Issue #101
2025-11-06 19:56:27 -06:00
FrankZamora
41b1220249 [COMPONENTE 07] Corregir CSS de Botón Let's Talk según template fuente
PROBLEMAS CORREGIDOS:
1. CSS duplicado en custom-style.css y buttons.css
2. buttons.css tenía implementación INCORRECTA:
   - Usaba gradiente en lugar de color sólido
   - Agregaba efectos de transform/shadow no presentes en template
   - Tenía media queries responsive no documentadas
3. CSS no estaba en ubicación documentada (style.css)

ANÁLISIS DE IMPLEMENTACIONES:

buttons.css (INCORRECTO - deshabilitado):
-  background: linear-gradient() - Template usa color sólido
-  transform: translateY(-2px) en hover - NO en template
-  box-shadow con valores no documentados
-  Estado :active no presente en template
-  Media query responsive no en template

custom-style.css (CORRECTO pero ubicación incorrecta):
-  background-color: var(--color-orange-primary) - Sólido
-  Hover a var(--color-orange-hover)
-  Sin transform ni shadow extra
-  IDÉNTICO al template fuente

SOLUCIÓN IMPLEMENTADA:

1. style.css:
   - Agregado CSS correcto al final (líneas 766-785)
   - Comentario separador: /* === BOTÓN LET'S TALK === */
   - CSS idéntico a template fuente

2. custom-style.css:
   - Comentado CSS duplicado (líneas 168-190)
   - Agregado nota de nueva ubicación

3. enqueue-scripts.php:
   - Comentado enqueue de buttons.css (líneas 101-113)
   - Agregado nota explicando por qué se deshabilitó

IMPLEMENTACIÓN COMPLETA:
 HTML: header.php (líneas 80-83) - SUPERIOR a template (i18n)
 CSS: assets/css/style.css (líneas 766-785) - IDÉNTICO a template
 buttons.css: DESHABILITADO (implementación incorrecta)

REFERENCIAS:
- Template HTML: apus-theme-template/index.html líneas 132-134
- Template CSS: apus-theme-template/css/style.css líneas 163-180
- Documentación: theme-documentation/07-componente-boton-lets-talk/

ISSUE: #101

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 19:30:17 -06:00
FrankZamora
714b5d8b10 [COMPONENTE 06] Reorganizar CSS de Navbar según documentación
PROBLEMA:
- CSS de Navbar estaba en custom-style.css (líneas 86-161)
- Documentación especifica que debe estar en assets/css/style.css
- Causaba inconsistencia con estructura modular del tema

SOLUCIÓN:
1. style.css:
   - Agregado CSS de Navbar completo al final (líneas 687-764)
   - Incluye: .navbar, .navbar.scrolled, .navbar-brand, .nav-link,
     .dropdown-menu, .dropdown-item
   - Comentario separador: /* === NAVBAR === */

2. custom-style.css:
   - Comentado CSS duplicado de Navbar (líneas 86-166)
   - Agregado comentario indicando nueva ubicación
   - Mantiene .btn-lets-talk y otros componentes

IMPLEMENTACIÓN COMPLETA:
 HTML: header.php (líneas 34-87) - SUPERIOR a template fuente
 CSS: assets/css/style.css (líneas 687-764) - IDÉNTICO a template
 JS: assets/js/main.js (líneas 4-14) - IDÉNTICO a template

REFERENCIAS:
- Template HTML: apus-theme-template/index.html líneas 74-137
- Template CSS: apus-theme-template/css/style.css líneas 86-162
- Template JS: apus-theme-template/js/main.js líneas 6-15
- Documentación: theme-documentation/06-componente-navbar/

ISSUE: #100

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 19:24:29 -06:00
FrankZamora
c1467b5c32 Corregir Top Notification Bar según template fuente real
PROBLEMA:
- Implementación previa NO coincidía con template fuente apus-theme-template/index.html
- HTML tenía estructura compleja con spans responsive e i18n
- CSS cargaba archivo separado notification-bar.css (253 líneas) con animaciones innecesarias
- Faltaban variables de color APU en style.css

SOLUCIÓN:
1. header.php (líneas 23-32):
   - Reemplazado HTML complejo con estructura simple del template
   - Eliminado texto responsive innecesario
   - Cambiado de múltiples <span> a un solo <span><strong>Nuevo:</strong> texto</span>
   - Agregado clases text-white y text-decoration-underline al enlace

2. assets/css/style.css:
   - Agregadas variables de color APU (líneas 49-55):
     --color-navy-dark, --color-navy-primary, --color-orange-primary, etc.
   - Agregado CSS de Top Notification Bar (líneas 658-685)
   - Solo 28 líneas de CSS limpio sin animaciones ni JavaScript

3. inc/enqueue-scripts.php:
   - Comentada función apus_enqueue_notification_bar_assets()
   - CSS ahora en style.css principal, no en archivo separado
   - Componente no requiere JavaScript

FUENTE DE VERDAD:
- apus-theme-template/index.html (líneas 55-63)
- apus-theme-template/css/style.css (líneas 57-80)

ISSUE: #97

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 18:41:08 -06:00
FrankZamora
071d562f15 [FASE 1] Reorganizar CSS según arquitectura modular - Issue #95
Cambios realizados:
- NUEVO: Crear assets/css/style.css con CSS base del tema (650 líneas)
- MODIFICADO: style.css - Dejar solo header obligatorio de WordPress (~25 líneas)
- MODIFICADO: enqueue-scripts.php - Agregar carga de assets/css/style.css

Detalles:
- Mover todo el CSS de style.css (variables, reset, typography, layouts)
  a assets/css/style.css para cumplir con arquitectura modular
- style.css ahora contiene SOLO el comentario header de WordPress
- Agregar función apus_enqueue_main_stylesheet() con filemtime()
  para cache busting
- Orden de carga: Bootstrap → Variables → style.css → componentes

Validación FASE 1 completada:
 style.css con header WordPress
 functions.php completo
 index.php con The Loop
 assets/css/style.css creado
 assets/js/main.js existe
 Arquitectura modular respetada

Referencia: _planeacion/_desarrollo-tema-apus/theme-documentation/03-fase-1-cimiento/

Closes #95

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 17:37:18 -06:00