切换配色方案
Aura 和 Lumo 主题各自都提供了浅色和深色的配色方案。可以为应用程序选择一个默认的配色方案,并在运行时进行切换,而无需更改应用程序主题。
设置应用程序默认方案
默认情况下,应用程序使用浅色方案。在主应用程序类上通过 @ColorScheme 注解可选择其他方案:
import com.vaadin.flow.component.page.AppShellConfigurator;
import com.vaadin.flow.component.page.ColorScheme;
@ColorScheme(ColorScheme.Value.LIGHT_DARK)
public class MyProjectApplication implements AppShellConfigurator {
// ...
}
对浅色和深色方案,使用以下 ColorScheme.Value 值:
-
LIGHT始终使用浅色配色方案。 -
DARK始终使用深色配色方案。 -
LIGHT_DARK遵循操作系统或浏览器设置,并回退为浅色。 -
DARK_LIGHT遵循操作系统或浏览器设置,并回退为深色。
更改当前 UI
在运行时使用 Page.setColorScheme() 可更改当前 UI 的配色方案:
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.page.ColorScheme;
UI.getCurrentOrThrow().getPage()
.setColorScheme(ColorScheme.Value.DARK);
Page.setColorScheme() 不会保存选择结果。如果需要在后续会话中恢复该设置,请另行存储该值。
|
保存用户偏好
Jmix 提供了 ThemeUtils,支持在浏览器本地存储中保存配色方案,并在当前 UI 生效。首先,在主应用程序类中导入 Jmix 配色方案的支持脚本:
@JsModule("./src/theme/color-scheme-switching-support.js")
然后调用以下方法之一:
import io.jmix.flowui.kit.theme.ThemeUtils;
ThemeUtils.applyLightTheme();
ThemeUtils.applyDarkTheme();
ThemeUtils.applySystemTheme();
system 选项会遵循操作系统或浏览器设置。还有一个 userMenu_themeSwitch 操作,在用户菜单中提供配色方案的选项。
对于配色方案设置,请使用 Jmix ThemeUtils 或基于 Page.setColorScheme() 自己编写逻辑。如果两种方式混用,可能会导致冲突。
|
编写配色方案感知的 CSS
本页是否有帮助?
感谢您的反馈