内置模块nativeTheme.themeSource可以获取当前的应用主题,有‘light’,'dark','system',其中‘system’仅在macos中支持;
一、通过修改nativeTheme.themeSource来实现主题切换;
const { nativeTheme } = require('electron');
// 白天主题
nativeTheme.themeSource = 'light';
// 黑夜主题
nativeTheme.themeSource = 'dark';
二、渲染进程中对应css编写
/* 对应的‘light’主题 */
@media (prefers-color-scheme: light) {
body {
background-color: rgb(255, 255, 255);
}
}
/* 对应的‘dark’主题 */
@media (prefers-color-scheme: dark) {
body {
background-color: rgb(0, 0, 0);
}
}
当nativeTheme.themeSource设置为‘light’时,渲染进程的css文件会引用‘light’的配置样式,反之同理;
自此,Electron简单的两种主题就实现了; 这里推荐官网文档更加详细的讲解:Dark Mode | Electron