Skip to content

暗黑模式

组件库内置暗色的主题,你可以轻易的切换到暗色,也可以简单的通过调整色板来自动生成基于色板的新暗色主题。(点击官网右上角图标可进行暗黑模式预览。)

如何切换暗黑模式

组件库通过 body 标签上的 data-theme 属性来标明当前的主题,所以你只要修改这个属性,即可完成主题的切换。

注意

通过设置 data-themedark,只是将组件库切换成了暗色模式,你的页面的整体风格,需要利用一些 CSS 变量 调整为暗色。

js
// 设置为暗黑主题
document.body.setAttribute('data-theme', 'dark');

// 恢复亮色主题
document.body.removeAttribute('data-theme');

跟随系统主题自动切换

js
const darkThemeMq = window.matchMedia("(prefers-color-scheme: dark)");

darkThemeMq.addEventListener('change', e => {
  if (e.matches) {
    document.body.setAttribute('data-theme', 'dark');
  } else {
    document.body.removeAttribute('data-theme');
  }
});

调整整体背景和字体

css
body {
  background-color: var(--color-bg-1);
  color: var(--color-text-1);
  color-scheme: dark; /* 这个属性设置后,滚动条也能表现为暗色模式 */
}

原理

WebKit Pro 使用 CSS 变量来构建暗黑主题。组件内部内置了两套色板,一套默认的亮色,另外一套是根据亮色色板生成的暗色色板。如果你对当前色板感兴趣,可以看这里:色板系统

WebKit Pro 内部 Less 变量和 CSS 变量共存,并且内置了亮色和暗色的色彩算法,可以更灵活的更改色板。

比如你想更改主色,你只需要更改 @arcoblue-6 这个变量的值即可,算法会自动帮你生成 1 号到 10 号的颜色,并且会自动生成暗色下反转后的 1 号到 10 号颜色。

变量

利用以下提供的变量,将页面上的背景和文字调整为合适的颜色,配合组件库本身的暗色主题,即可完美呈现暗黑视觉。

背景

变量名变量名色值
--color-bg-1整体背景light: #fff   |   dark: #17171A
--color-bg-2一级容器背景light: #fff   |   dark: #232324
--color-bg-3二级容器背景light: #fff   |   dark: #2a2a2b
--color-bg-4三级容器背景light: #fff   |   dark: #313132
--color-bg-5下拉弹出框、Tooltip 背景颜色light: #fff   |   dark: #373739

文字

变量名变量名色值
--color-text-1标题light: #1d2129   |   dark: rgba(255, 255, 255, 0.9)
--color-text-2语句light: #4e5969   |   dark: rgba(255, 255, 255, 0.7)
--color-text-3次要信息light: #86909c   |   dark: rgba(255, 255, 255, 0.5)
--color-text-4禁用状态文字light: #c9cdd4   |   dark: rgba(255, 255, 255, 0.3)

Released under the MIT License.