nativeTheme
读取并响应Chromium本地色彩主题中的变化。
进程:主进程
事件
nativeTheme模块包括以下事件:
事件名: 'updated'
当以下NativeTheme属性发生变化时会触发此事件: shouldUseDarkColors, shouldUseHighContrastColors或shouldUseInvertedColorScheme 。 你需要自己检查到底是哪个属性发生了变化。
属性
nativeTheme 模块具备以下属性:
nativeTheme.shouldUseDarkColors 只读
此属性的值为一个 boolean 类型的值,代表着当前OS / Chromium是否正处于dark模式。或者应用程序是否正被建议使用dark模式的皮肤 如果你希望修改此属性的值,你应该使用下面的 themeSource属性
nativeTheme.themeSource
一个类型为string的属性,此属性可能的值为:system, light or dark. 它被用来覆盖、重写Chromium内部的相应的值
将此属性设置为 system 将删除覆盖,并所有内容都将重置为操作系统默认值。 默认情况下 themeSource 是 system。
将此属性设置为 dark 将产生以下效果:
- 当访问
nativeTheme.shouldUseDarkColors时值为true - 任何在 Linux 和 Windows 上的 UI Electron 渲染,包括 context menus、devtools 等等,都会使用暗色界面。
- 在 MacOS 上打开的任何 UI 界面,包括 menus、window frames 等,渲染时都会使用暗色界面。
prefers-color-schemeCSS 查询将匹配dark模式updated事件将被触发
将此属性设置为 light 将产生以下效果:
- 当访问
nativeTheme.shouldUseDarkColors时值为false - 任何在 Linux 和 Windows 上的 UI Electron 渲染,包括 context menus、devtools 等等,都会使用亮色界面。
- 在 MacOS 上打开的任何 UI 界面,包括 menus、window frames 等,渲染时都会使用亮色界面。
prefers-color-schemeCSS 查询将匹配light模式updated事件将被触发
此属性的使用应与应用程序中的经典"黑暗模式"状态机相符,用户有三个选项:
Follow OS-->themeSource = 'system'Dark Mode-->themeSource = 'dark'Light Mode-->themeSource = 'light'
你的应用程序应该总是使用 shouldUseDarkColors 来确定要应用哪些 CSS
nativeTheme.shouldUseHighContrastColors macOS Windows Readonly
boolean 代表如果操作系统/ Chromium 目前是否启用了高对比度模式或正在被指示显示高对比度UI。
nativeTheme.shouldUseInvertedColorScheme macOS Windows Readonly
boolean 代表操作系统/ Chromium 目前是否有使用一个反转配色方案 或正在被指示使用一个反转的颜色方案。
nativeTheme.inForcedColorsMode Windows 只读
一个 boolean 值,表示 Chromium 是否强制颜色模式,由系统设置中的辅助功能控制。 目前,Windows 高对比度是唯一触发强制颜色模式的系统设置。