跳转到主要内容

nativeTheme

读取和响应 Chromium 的原生颜色主题的变化。

进程:主进程

事件

nativeTheme 模块会发出以下事件:

事件:'updated'

当底层 NativeTheme 中的某些内容发生变化时发出。这通常意味着 shouldUseDarkColorsshouldUseHighContrastColorsshouldUseInvertedColorScheme 的值已更改。您需要检查它们来确定哪个已更改。

属性

nativeTheme 模块具有以下属性:

nativeTheme.shouldUseDarkColors 只读

一个 boolean 值,表示操作系统/Chromium 当前是否启用了深色模式,或者是否被指示显示深色样式的 UI。如果您想修改此值,应使用下面的 themeSource

nativeTheme.themeSource

一个 string 属性,可以是 systemlightdark。它用于覆盖和取代 Chromium 内部选择使用的值。

将此属性设置为 system 将会移除覆盖,一切都将重置为操作系统默认值。默认情况下,themeSourcesystem

将此属性设置为 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 值,指示用户是否通过系统辅助功能设置选择了在操作系统级别减少透明度。