Skip to main content

Configuración de tema

Las variables del tema son el mecanismo por el que se personaliza la apariencia sin editar SCSS: se declaran en el tema.config y se pueden ajustar desde el backend. Cada variable termina disponible como variable Sass durante la compilación, de modo que anula los valores por defecto de Bootstrap o de Crono.

Declarar variables

Dentro de <Vars>, cada <Var> tiene un nombre, un tipo y un valor:

<Vars>
<Var nombre="primario" tipo="Color">#052a6c</Var>
<Var nombre="primary" tipo="Color">$primario</Var>
<Var nombre="body-bg" tipo="Color">#f5f2fd</Var>
<Var nombre="border-radius" tipo="String">8px</Var>
<Var nombre="font-size-base" tipo="String">14px</Var>
<Var nombre="boxed" tipo="Boolean">false</Var>
<Var nombre="es-menu-horizontal" tipo="Boolean">false</Var>
</Vars>

Tipos disponibles:

TipoUso
ColorUn color (hex, rgba(...), nombre CSS o referencia a otra variable).
StringCualquier valor de texto/CSS (tamaños, familias tipográficas, expresiones).
Booleantrue / false, para interruptores de layout.
Select#<id>Un valor elegido de una lista <Select> definida en el tema.

Referencias y funciones

El valor de una variable puede referenciar otra con $nombre y usar funciones Sass, porque se resuelve durante la compilación:

<Var nombre="primary" tipo="Color">$primario</Var>
<Var nombre="warning" tipo="Color">$orange</Var>
<Var nombre="btn-secondary-bg" tipo="Color">lighten($gray-200, 2%)</Var>
<Var nombre="primary-text-emphasis" tipo="Color">shade-color($primary, 40%)</Var>
<Var nombre="gd-borde-color" tipo="Color">rgba($primary, .08)</Var>

Listas de selección

Para variables que solo admiten un conjunto de opciones, define un <Select> y refiérelo con el tipo Select#<id>:

<Vars>
<Var nombre="shopbar-label" tipo="Select#brand-colors">warning</Var>
</Vars>

<Selects>
<Select id="brand-colors">
<Option>primary</Option>
<Option>secondary</Option>
<Option>info</Option>
<Option>success</Option>
<Option>warning</Option>
<Option>danger</Option>
<Option>light</Option>
<Option>dark</Option>
</Select>
</Selects>

En el backend, esa variable se muestra como un desplegable con esas opciones.

De variable de tema a variable Sass

Al compilar, los valores efectivos (los del tema.config combinados con lo que se haya ajustado en el backend) se inyectan mediante un archivo virtual que el SCSS raíz importa antes de Bootstrap:

// tema.scss
@import '/.app/temavars.scss'; // variables del tema desde la BD
@import 'variables-personalizados';
@import 'variables';
@import '/lib/bs5/scss/bootstrap-cabecera'; // Bootstrap 5 usa esas variables ya sobrescritas

Así, cambiar primary en el tema.config o en el backend repinta todos los componentes que dependan de esa variable, sin tocar una sola línea de SCSS. El detalle de cómo se estructura el SCSS está en Estilos de tema.