Configuración de Temas
En MageObsidian Components, cada tema compatible puede incluir configuraciones adicionales creando un archivo de configuración en:
Este archivo utiliza el formato CJS (CommonJS) por razones de compatibilidad y exporta un objeto de configuración que MageObsidian Components utiliza para personalizar y controlar el comportamiento del tema.
¿Cómo Funciona?
-
Ubicación del Archivo de Configuración
El archivo de configuración del tema debe colocarse en la siguiente ruta relativa al directorio del tema: -
Ejemplo de Archivo de Configuración
Un ejemplo básico de un archivotheme.config.cjs
podría verse así:
Opciones de Configuración
1. tailwind
- Tipo:
Object
- Por defecto:
{}
- Descripción: Define configuraciones personalizadas de Tailwind CSS para el tema. Esto puede incluir
theme
,plugins
y un array decontent
. - Ejemplo:
Para más detalles sobre cómo estructurar una configuración de Tailwind CSS, consulta la documentación oficial:
Configuración de Tailwind CSS
2. ignoredTailwindConfigFromModules
- Tipo:
Array
oString ('all')
- Por defecto:
[]
- Descripción: Lista las configuraciones específicas de Tailwind de los módulos que se deben ignorar. Si se establece en
'all'
, se excluirán las configuraciones de todos los módulos.
3. ignoredCssFromModules
- Tipo:
Array
oString ('all')
- Por defecto:
[]
- Descripción: Especifica los módulos cuyo CSS debe excluirse de la compilación final. Si se establece en
'all'
, se excluirá el CSS de todos los módulos.
4. includeTailwindConfigFromParentThemes
- Tipo:
Boolean
- Por defecto:
true
- Descripción: Determina si el tema debe heredar las configuraciones de Tailwind de sus temas principales.
5. includeCssSourceFromParentThemes
- Tipo:
Boolean
- Por defecto:
true
- Descripción: Determina si los archivos fuente de CSS de los temas principales deben incluirse en la compilación final.
6. exposeNpmPackages
- Tipo:
Array de Objetos
- Por defecto:
[]
-
Descripción: Permite exponer paquetes NPM específicos para su uso en el JavaScript del frontend del tema. Cada objeto en el array debe definir:
exposePath
: Ruta expuesta para importar el paquete.package
: Nombre real del paquete NPM.
-
Uso en Plantillas:
Las librerías expuestas pueden ser fácilmente accesibles en archivos.phtml
utilizando el método$block->getViewLibFileUrl()
. Por ejemplo: -
Ejemplo:
Beneficios de la Configuración de Temas
-
Personalización:
Los temas pueden definir sus propias configuraciones, asegurando flexibilidad para el comportamiento y diseño del frontend. -
Herencia:
Los temas principales pueden pasar configuraciones a los temas secundarios, simplificando la configuración y manteniendo la consistencia. -
Control de Exclusión:
Elimina configuraciones de CSS o Tailwind no deseadas de módulos específicos o de todos los módulos, manteniendo una compilación final limpia y optimizada. -
Integración con Tailwind:
Los temas pueden aprovechar al máximo Tailwind CSS con un enfoque basado en utilidades y control total sobre su configuración. -
Integración de Paquetes NPM:
Exponer paquetes NPM simplifica la gestión de dependencias, permitiendo a los temas usar directamente librerías de terceros. Estas pueden incluirse en las plantillas mediante$block->getViewLibFileUrl()
.
Notas Clave
- El archivo de configuración utiliza el formato CJS para garantizar compatibilidad entre entornos.
- El CSS y las configuraciones de Tailwind excluidas de los módulos se omiten por completo, reduciendo estilos innecesarios.
- Exponer paquetes NPM como objetos permite una integración precisa con librerías de terceros.
Aprovechando este sistema de configuración, MageObsidian Components garantiza que los temas sean potentes, personalizables y eficientes para todas las necesidades del frontend.