Asset Runtime
Los assets del child no se cargan todos a mano. El parent expone un runtime de enqueue child-first y el proyecto se enchufa a él.
Archivos clave:
- functions.php
- child-modules/10-project-assets.php
- assets/src/tailwind.css
- assets/dist/theme.css
- assets/js/theme.js
- assets/css/header.css
- assets/js/header.js
Carga base real
El core encola siempre:
- assets/dist/theme.css como theme-styles
- assets/js/theme.js como theme-scripts
- assets/css/header.css por la regla global header
- assets/js/header.js por la regla global header
Como el sistema resuelve child primero, estos archivos del proyecto pisan a los del parent si existen con la misma ruta.
Tailwind y build principal
assets/src/tailwind.css define:
- fuentes locales Besley e Instrumental Sans
- tokens base de color y tipografía
- fuentes de escaneo para PHP y JS del child
- compatibilidad temporal escaneando también el parent
Eso desemboca en assets/dist/theme.css, que es la hoja grande del proyecto.
theme.js
El bundle global del child es el que inicializa el comportamiento transversal del sitio.
Inicializaciones detectadas:
- header static white
- top banner marquee
- footer parallax
- mega menu
- header wipe desktop y mobile
- ocultar header al entrar en footer
- mobile drawer
- botón flotante de WhatsApp
- scroll to top
- acordeones FAQ
Conclusión práctica:
- si una interacción vive en varias páginas, lo normal es que esté en theme.js
- si solo afecta al header/mega, puede vivir en header.js
header.css y header.js
Estos dos archivos no son convenciones muertas: están realmente activos en todo el sitio por la regla header del parent.
header.css concentra:
- variables del header y radios
- shell visual de site-header y site-header-mobile
- mega menú
- buscador y botones Woo del header
header.js concentra:
- apertura y cierre del mega menú desktop
- navegación de segundo y tercer nivel del mega
- drawer mobile
- acordeones internos del menú mobile
project-site
child-modules/10-project-assets.php registra una regla global project-site para cargar:
- assets/css/project-site.css
- assets/js/project-site.js
Hoy ambos archivos existen, pero están prácticamente vacíos. Son un slot global del proyecto listo para crecer sin tocar el core.
Regla práctica
- si el comportamiento es realmente global, entra por theme.css o theme.js
- si es shell de navegación, entra por header.css o header.js
- si es custom global del proyecto pero no encaja en el core, usa project-site