A través de la extensión «assets», incluida en el paquete del sistema de nuestro CMS, es posible personalizar las hojas de estilos por defecto. Veremos cómo podemos hacerlo de manera sencilla y, fundamentalmente, considerando el mantenimiento y las futuras actualizaciones.
En el proceso utilizamos sass y scssphp. Dejamos los links para quien no esté familiarizado con los mismos.
Como anticipamos, hemos partido de la necesidad de que el trabajo de personalización de los estilos se haga de manera sencilla, sobre todo en el momento más crítico, es decir, en la actualización.
Para atender estas necesidades, hemos encontrado dos modos de resolución.
El primero, tiene en cuenta un archivo scss al resguardo de las actualizaciones, donde el usuario prodrá almacenar sus variables scss. Esto permite el control de todas las variables scss del framework, algo que no es menor. Sin embargo, tiene la desventaja de no permitir la utilización de todas las posibilidades que brindan los preprocesadores.
El segundo modo permite, en el componente «assets», modificar las listas de recursos por defecto. La modificación puede consistir en agregar nuevos recursos al final de la lista, ya sea css o scss, o reemplazar uno existente de la siguiente manera:
recurso/por/defecto.css:mi/recurso/de/reemplazo.scss
La configuración de compilación tiene tres opciones, puede deshabilitarse, muy útil en caso de errores; dejarse en automático, y se habilitará solo si hay variables o recursos del usuario; o habilitarse; lo que hará que el compilador intenté incluso buscar precompiladores a la par de las hojas de estilo.
La precompilación y la utilización (casi indistinta) de css y scss la obtenemos a partir de la regla del framework para alojar estos archivos. Esta es, sobre un directorio base, los archivos scss se guardan en una carpeta llamada sass y los css en una carpeta de igual nombre.
Conclusión
En un framework, la personalización de los estilos siempre ha sido una dificultad. Creemos que hemos conseguido un modo sencillo, en donde muchas veces no es necesario programar y en donde las actualizaciones dejan de ser un problema.