CSS Variables
Las variables CSS juegan un papel central en la personalización de la apariencia de los componentes de webforJ. Estas variables almacenan valores reutilizables como colores, tamaños de fuente y espaciado, que se pueden aplicar de manera consistente en tu aplicación.
A diferencia de los enfoques tradicionales que dependían de preprocesadores CSS como SASS o LESS, las variables CSS permiten estilos dinámicos en tiempo de ejecución. Reducen la repetición, mejoran el mantenimiento y hacen que las hojas de estilo sean más fáciles de leer y gestionar.
Definir variables CSS
Las variables CSS se definen utilizando un prefijo de doble guion (--
), y se pueden delimitar dentro de cualquier selector CSS. Sin embargo, la práctica más común es definirlas en el selector :root
, que las delimita globalmente.
:root {
--app-background: orange;
}
:root
La :root
pseudo-clase apunta al elemento raíz del documento—típicamente <html>
en HTML. Se comporta como html
, pero con mayor especificidad.
Las variables CSS pueden contener cualquier cadena, no solo valores CSS válidos. Esta flexibilidad es particularmente útil al trabajar con JavaScript.
html {
--app-title: webforJ;
}
Variables específicas de componentes
Para definir o sobrescribir una variable para un componente específico, declárala dentro del selector del componente:
dwc-button {
--dwc-button-font-weight: 400;
}
Cada componente de webforJ soporta un conjunto específico de variables CSS que controlan su apariencia. Estas se documentan en la sección Estilización > Propiedades CSS para cada componente.
Usar variables CSS
Utiliza la función var()
para aplicar el valor de una variable en tus estilos:
.panel {
background-color: var(--app-background);
}
También puedes especificar un valor por defecto en caso de que la variable no esté definida:
.frame {
background-color: var(--app-background, red);
}
Manipular variables con webforJ
Las variables CSS se pueden actualizar dinámicamente a través de la API de webforJ, permitiendo estilos en tiempo real:
// Establecer una variable CSS
button.setStyle('--dwc-button-font-weight', '400');
webforJ te permite ejecutar JavaScript en el lado del cliente utilizando la API Page o Element. Esto significa que puedes manipular dinámicamente las variables CSS en tiempo de ejecución tal como lo harías en aplicaciones web estándar.
// Establecer una variable CSS
const el = document.querySelector('dwc-button');
el.style.setProperty('--dwc-button-font-weight', '400');
// Obtener una variable CSS
const value = el.style.getPropertyValue('--dwc-font-size-m');