nativeTheme
读取并响应 Chromium 原生颜色主题的变化。
进程:主进程
事件
nativeTheme
模块会发出以下事件
事件: 'updated'
当底层原生主题的某些内容发生变化时发出。这通常意味着 shouldUseDarkColors
、shouldUseHighContrastColors
或 shouldUseInvertedColorScheme
的值发生了变化。您需要检查它们来确定哪个发生了变化。
属性
nativeTheme
模块具有以下属性
nativeTheme.shouldUseDarkColors
只读
一个 boolean
值,指示操作系统/Chromium 当前是否启用了暗模式,或者是否被指示显示暗风格的用户界面。如果您想修改此值,应使用下面的 themeSource
。
nativeTheme.themeSource
一个 string
属性,可以是 system
、light
或 dark
。它用于覆盖和取代 Chromium 内部选择使用的值。
将此属性设置为 system
将会移除覆盖,所有内容都将重置为操作系统默认值。默认情况下,themeSource
是 system
。
将此属性设置为 dark
会产生以下效果
- 访问
nativeTheme.shouldUseDarkColors
时将为true
- Electron 在 Linux 和 Windows 上渲染的任何 UI,包括上下文菜单、开发者工具等,都将使用暗色 UI。
- 操作系统在 macOS 上渲染的任何 UI,包括菜单、窗口框架等,都将使用暗色 UI。
prefers-color-scheme
CSS 查询将匹配dark
模式。- 将发出
updated
事件
将此属性设置为 light
会产生以下效果
- 访问
nativeTheme.shouldUseDarkColors
时将为false
- Electron 在 Linux 和 Windows 上渲染的任何 UI,包括上下文菜单、开发者工具等,都将使用亮色 UI。
- 操作系统在 macOS 上渲染的任何 UI,包括菜单、窗口框架等,都将使用亮色 UI。
prefers-color-scheme
CSS 查询将匹配light
模式。- 将发出
updated
事件
此属性的使用应与应用程序中经典的“暗模式”状态机保持一致,用户有三种选择。
跟随操作系统
-->themeSource = 'system'
暗模式
-->themeSource = 'dark'
亮模式
-->themeSource = 'light'
您的应用程序应始终使用 shouldUseDarkColors
来确定应用哪种 CSS。
nativeTheme.shouldUseHighContrastColors
macOS Windows 只读
一个 boolean
值,指示操作系统/Chromium 当前是否启用了高对比度模式,或者是否被指示显示高对比度 UI。
nativeTheme.shouldUseDarkColorsForSystemIntegratedUI
macOS Windows 只读
一个 boolean
属性,指示系统主题是否设置为暗色或亮色。
在 Windows 上,此属性区分系统和应用程序的亮/暗主题,如果系统主题设置为暗主题则返回 true
,否则返回 false
。在 macOS 上,返回值将与 nativeTheme.shouldUseDarkColors
相同。
nativeTheme.shouldUseInvertedColorScheme
macOS Windows 只读
一个 boolean
值,指示操作系统/Chromium 当前是否具有反转的颜色方案,或者是否被指示使用反转的颜色方案。
nativeTheme.inForcedColorsMode
Windows 只读
一个 boolean
值,指示 Chromium 是否处于强制颜色模式,该模式由系统辅助功能设置控制。目前,Windows 高对比度是唯一触发强制颜色模式的系统设置。
nativeTheme.prefersReducedTransparency
只读
一个 boolean
值,指示用户是否通过系统辅助功能设置选择在操作系统级别减少透明度。