跳到主要内容

色彩Color

界面里的每个颜色都是一个语义令牌,深浅两套主题各有一组取值。本页的色块和色值都是从当前页面的 CSS 变量实时读出来的:用右上角切换深浅色或强调色,它们会跟着变。点击色块复制色值。

品牌色

墨、强调色、纸三个品牌色本身不随主题变化,变的是它们担任的角色。

浅色主题下,墨色是正文和主按钮的底色,纸色是主按钮上的文字。

色阶

每个色块是一个令牌在当前主题下的取值,取值相同的令牌并成一块,悬停可以看到令牌名。浅色主题的中性色是带一点冷调、向墨色收敛的灰:浮起的控件、卡片、浮层用纯白,面板和页面底色依次略灰一点,再往下是凹槽和轨道。强调色往纯白里混出柔和底、柔色和填充,往墨色里压出悬停色。

中性色

强调色

语义表面

界面由几层表面叠出来:画布 → 面板 → 卡片,再往里凹(凹槽)或往外浮(浮起的控件、浮层)。浅色下越往上越白;深色下越往上越亮,凹槽比画布更深。

--ok-bg
--ok-surface
--ok-card
--ok-well
--ok-raised
--ok-pop
  • 6 : 3 : 1。中性表面占六成,墨色(文字、主按钮)三成,强调色至多一成。
  • 强调色不写字。当前强调色压在卡片上只有 …:1,达不到正文需要的 4.5:1,只做填充和图形;文字用 --ok-accent-text(浅色取每种强调色单独定的一档深色,现在是 …,对比度 …:1)。
  • 强调色上用墨。强调色填充之上的文字和图标用 --ok-on-accent,当前对比度 …:1。按强调色的感知亮度自动选:比较暗的颜色上用白字(预设里只有蓝色),其余用墨色;自定义颜色也一样。
  • 柔和底不透明。--ok-*-soft 是用 color-mix() 混出来的固有色:浅色主题把强调色或状态色按比例混进纯白(强调色 16%)。压在凹槽、灰底上时用更浓的 --ok-accent-tint。
  • 不用阴影。层级靠表面色阶和发丝线区分,见 形状 · 间距 · 层级。

强调色与状态色

五种预设强调色,默认是粉色(pink),也可以用任意颜色。柔和底、填充、悬停色、文字色都由 color-mix() 从一个颜色派生,深浅两套主题各有一组配比。这里切换强调色会改整站的设置。

pink · …
accentfillhovertintsoft + text焦点环

状态色

成功、警告、危险、信息四种。主色两套主题共用,文字色在深色下提亮,柔和底按主题混白或混卡片色。

切换主题和强调色的接口(setTheme、setAccent),以及只给页面某一块换强调色的 data-accent,见 主题。

半透明只用在四处

除了下面四样,所有颜色都是不透明的固有色。浮层(菜单、下拉、通知)用不透明的 --ok-pop,不加背景模糊。

禁用态整个控件降低不透明度(按钮是 .42),并显示禁止指针。
悬停高亮--ok-hover …:列表行、菜单项、表格行悬停时叠一层。
发丝线--ok-line …、--ok-line-2 …,顶部高光 --ok-hi …。
模态遮罩--ok-scrim …:对话框背后压暗页面,并把页面模糊 8px。

全部色彩令牌

按用途列出每个颜色令牌和它在当前主题下的值。写自己的样式时引用令牌,不要抄色值。

品牌

三个品牌色,两套主题共用。

--ok-ink…
--ok-paper…
--ok-pink…

表面

从凹到凸:深凹槽 → 凹槽 → 画布 → 面板 → 卡片 → 浮起;浮层和滑块圆钮单列。

--ok-well-2…
--ok-well…
--ok-well-hi…
--ok-bg…
--ok-surface…
--ok-card…
--ok-raised…
--ok-pop…
--ok-thumb…
--ok-fill…
--ok-fill-hover…
--ok-scrollbar…
--ok-scrollbar-hover…

半透明

只有这五个令牌带透明度。

--ok-hover…
--ok-line…
--ok-line-2…
--ok-hi…
--ok-scrim…

文字与反色

三级文字色对比度不足 4.5:1,只用于装饰性文字;反色是主按钮的底色和它上面的文字。

--ok-text…
--ok-text-2…
--ok-text-3…
--ok-inverse…
--ok-inverse-hover…
--ok-on-inverse…

强调色

除了 --ok-accent、--ok-accent-deep 和 --ok-on-accent,其余都是用 color-mix() 派生的。

--ok-accent…
--ok-accent-deep…
--ok-accent-hover…
--ok-accent-fill…
--ok-accent-fill-hover…
--ok-accent-tint…
--ok-accent-tint-2…
--ok-accent-soft…
--ok-accent-ring…
--ok-accent-text…
--ok-on-accent…

状态色

主色两套主题共用;-text 是能当文字用的一档,深色下提亮;-soft 是不透明的柔和底。

--ok-success…
--ok-success-text…
--ok-success-soft…
--ok-warning…
--ok-warning-text…
--ok-warning-soft…
--ok-danger…
--ok-danger-text…
--ok-danger-soft…
--ok-danger-soft-2…
--ok-info…
--ok-info-text…
--ok-info-soft…