跳到主要内容
界面图谱Interface Atlas
☰
EN
基础Color / Foundation

对比度

Contrast Ratio

别名:对比度文字对比度可读性对比WCAG 对比看不清contrast ratiocolor contrast

这是什么

前景与背景的亮度比值,衡量文字是否看得清。WCAG 2.1 给出硬性门槛:正文 AA 4.5:1、AAA 7:1,大号文字降到 3:1 与 4.5:1。APCA 按字重与字号给出更贴近感知的建议值。先算比值再选色,不要靠肉眼验收。

交互实验室

试一试,再决定怎么用

正在加载实验室…

✓ 适用场景

  • 正文、标签、按钮文字需要满足无障碍基线
  • 深浅主题切换后需要重新验证文字可读性
  • 灰阶辅助文字(muted)容易不知不觉掉到 3:1 以下

✕ 不适用场景

  • 装饰性大字或纯图形标识(另有非文本对比 3:1 要求)
  • 被禁用的控件文字(WCAG 明确豁免)
  • 把 AAA 当作所有界面的强制标准,导致设计空间过窄

常见形式

AA 正文

AA body text

4.5:1,绝大多数界面的默认门槛

AAA 高标

AAA

7:1,长文与老年用户场景

大号文字豁免

Large text exception

≥24px 或 18.66px 粗体,门槛降到 3:1

实现要点

color-mix()oklch()contrast-ratio()@media (prefers-contrast: more)

比值算法:先 sRGB 转线性亮度 Y,再 (L1+0.05)/(L2+0.05)。正文锁 4.5:1,大号锁 3:1;辅助文字不要靠降低透明度凑层级,改用 ink-2 色阶。高对比主题用 prefers-contrast: more 或独立角色表。交付前对文字角色两两抽查,尤其是 muted 与 line。

平台 API

WCAG 2.1APCAcontrast-ratio()

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
W3CWCAG 2.1 — Contrast (Minimum)
W3CAPCA
CSScontrast-ratio()

颜色 5 草案中的比值函数

相关概念

语义色Semantic Color Token

按用途而非色相命名的颜色变量:bg、surface、text、muted、accent、danger。组件只认角色,主题切换时在映射层换指向即可,不必改组件。浅色、深色、高对比、品牌皮肤都是同一套角色的不同取值表。

基础搭配使用
调色板Color Palette

从一个基色出发生成有规律的色阶(50~900),再分配主色、辅助色、点缀色与中性色角色。色阶靠明度递进而非随手取色,保证 hover、disabled、边框都有对应深度可选;角色先于色值被命名,主题才换得动。

基础搭配使用
层级Elevation

用阴影的深浅表达元素离纸面的远近:0 贴平、1~2 浮起、3 以上成浮层。一套阴影由本影、半影、环境三层叠加而成,档位越高投影越大越淡。层级只用来表达叠放关系,不要拿它当装饰。

基础搭配使用

参考来源

Markdown 版(给 Agent) · JSON