Themes
webforJ incluye tres temas de aplicación integrados y admite la definición de sus propios temas personalizados. Los temas predeterminados son:
- light: Un tema brillante con un fondo claro (predeterminado).
- dark: Un fondo oscuro con un tono del color primario.
- dark-pure: Un tema oscuro completamente neutral basado en tonos grises.
Para aplicar un tema en su aplicación, use la anotación @AppTheme
o el método App.setTheme()
. El nombre del tema debe ser uno de: system
, light
, dark
, dark-pure
o un nombre de tema personalizado.
@AppTheme("dark-pure")
class MyApp extends App {
// código de la aplicación
}
// o programáticamente
App.setTheme("dark-pure");
Sobrescribiendo temas predeterminados
Puede sobrescribir el tema light redefiniendo propiedades CSS personalizadas en el selector :root
.
:root
pseudo-claseLa pseudo-clase CSS :root
apunta al elemento raíz del documento. En HTML, representa el elemento <html>
y tiene una especificidad mayor que el selector html
simple.
Ejemplo:
:root {
--dwc-color-primary-h: 215;
--dwc-color-primary-s: 100%;
--dwc-color-primary-c: 50;
--dwc-font-size: var(--dwc-font-size-m);
}
Para sobrescribir los temas dark o dark-pure, use selectores de atributos en el elemento <html>
:
html[data-app-theme="dark"] {
--dwc-color-primary-s: 9%;
--dwc-color-white: hsl(210, 17%, 82%);
}
Creando temas personalizados
Puede definir sus propios temas utilizando el selector html[data-app-theme='THEME_NAME']
. Los temas personalizados pueden coexistir con los predeterminados, y puede alternar entre ellos dinámicamente en tiempo de ejecución.
html[data-app-theme="new-theme"] {
--dwc-color-primary-h: 280;
--dwc-color-primary-s: 100%;
--dwc-color-primary-c: 60;
}
Luego, en su aplicación:
@AppTheme("new-theme")
class MyApp extends App {
// código de la aplicación
}
// o programáticamente
App.setTheme("new-theme");
Temas de componentes
Además de los temas a nivel de aplicación, los componentes de webforJ admiten un conjunto de temas de componentes basados en las paletas de colores predeterminadas: default
, primary
, success
, warning
, danger
, info
y gray
.
Cada componente documenta sus temas admitidos en la sección Estilo → Temas.