颜色转换与对比度检查
把任意颜色在 HEX、RGB、HSL 三种表示之间互转。即时预览色块,并检查与黑白底的 WCAG 对比度。
预览
HEX
#3b82f6
RGB
rgb(59, 130, 246)
HSL
hsl(217, 91%, 60%)
WCAG 对比度
Aa — 对白底
3.68:1
AA 正文 未通过AAA 正文 未通过
Aa — 对黑底
5.71:1
AA 正文 通过AAA 正文 未通过
浏览器中的颜色模型
CSS 允许用多种形式表达同一种颜色。HEX(#3b82f6)最短也最常用 —— 三或六位十六进制数字直接对应 sRGB 色彩空间的红、绿、蓝通道。RGB 形式(rgb(59 130 246))功能等价但更便于程序化处理。HSL(hsl(217 91% 60%))是把颜色重新参数化为色相、饱和度、亮度的圆柱坐标,调亮调暗时更符合直觉。
本工具会解析任意上述记号,统一归一化为 RGB,然后同时输出三种形式。还会按照 WCAG 2.1 计算所选颜色对纯白与纯黑底的对比度,并提示是否达到正文 AA(4.5:1)或 AAA(7:1)。把右侧色块作为快速肉眼校验,再把数值粘进样式表里。
使用场景
- 选定品牌色后即时检查它做正文是否对比度达标。
- 把设计稿里的 HEX 值翻成你更习惯调的 HSL。
- 上线新组件前做无障碍合规检查。
- 从截图中取色后转出 CSS 变量。
- 通过调亮 / 调暗一档,快速生成同色族的浅 / 深变体。
最佳实践
- 正文按 WCAG 2.1 AA 至少做到 4.5:1 对比度,大字号至少 3:1。
- 需要程序化调亮调暗时优先 HSL —— 只动 L 通道。
- 保持同色族(hover / active / disabled)色相不变,只调亮度。
- 尽量避免纯黑(#000)配纯白 —— 略偏灰的底色更护眼。
常见问题
用的是哪种 RGB 色彩空间?
标准 sRGB,即 CSS 默认的色彩空间。P3 等广色域目前未处理。
对比度是怎么算的?
采用 WCAG 2.1 相对亮度公式:先把 RGB 线性化得到亮度 L,再用 (L1 + 0.05) / (L2 + 0.05)。
为什么 HEX → HSL → HEX 后颜色略有偏差?
HEX 每通道 8 位,HSL 中间是浮点运算,往返时四舍五入到 8 位 RGB 可能让色相偏差零点几度。
支持哪些输入格式?
三/六位 HEX(#3bf、#3b82f6)、rgb()/rgba()(逗号或空格语法)、hsl()/hsla()(度数与百分比)。