颜色转换
HEX/RGB/HSL/HSV/CMYK/LAB/OKLCH 互转,附 WCAG 对比度与色盲检查。
这个页面把任意一个 CSS 颜色展开成全部常用记法,并顺手做完三件配色时离不开的检查:对比度、色觉模拟和谐色。lab()/lch()/oklab()/oklch() 与 color-mix() 不依赖浏览器实现,公式全部本页自算,color-mix 的结果旁标注所用空间;WCAG 区按 WCAG 2.2 原文口径算相对亮度与对比度,和谐色与明度阶梯在 OKLCH 中取点。
currentColor 静态换算不出具体值,只能原样说明它跟随文字颜色。CMYK 一栏永远只是参考:用的是朴素公式 K=1−max(R,G,B)、C=(1−R−K)/(1−K),它模拟的是「显示器上的叠色」,与任何印刷机的分色结果都对不上,页面里直接写明「近似值,印刷请用 ICC」。色盲模拟给出的是 Viénot 1999 的三条简化线性矩阵(作用于 γ 编码 sRGB,行和为 1,灰阶进出不变),比 Brettel 1997 的色度投影粗糙得多,只能用来粗筛「红绿按钮并排是否危险」,色觉检查永远不能替代文字标签。
颜色转换怎么用
- 一行输入任意写法:解析端认这些写法:十六进制 3/4/6/8 位、rgb()/rgba() 与 hsl()/hsla()(逗号旧语法和空格加斜杠的新语法都吃,支持 deg/grad/rad/turn 与百分数)、hwb()、lab()/lch()/oklab()/oklch()、color-mix()、148 个 CSS Color 4 颜色关键字(含 gray/grey 两套拼法),外加 transparent 与 currentColor 两个特例——后者只能原样说明「跟随文字颜色」,静态换算不出具体值。顶部输入框接受上述全部记法,回车即展开下方各栏;#400、rgb(64 0 0 / 50%)、oklch(60% 0.15 250)、color-mix(in oklab, red, rebeccapurple 40%) 都是合法输入。解析失败时提示条会指出是哪个函数、缺了哪类分量。
- 对比与检查:第二行输入背景色后,WCAG 表会同时算白底、黑底与自选底色三组;色相/明度编辑器(启用后)在 OKLCH 空间拖 L/C/H 滑块,数值与颜色输入框双向同步,调出来的中间色不会突然变暗。
- 取值方式:本页没有复制按钮:记法表、CSS 变量片段(--brand: #…; 三行)都是普通可选中文本,选中后用你自己的方式复制;变量名可在工具条里改。
- 自算的公式与空间:Lab 用 CIE 分段立方根函数与 D65 白点(0.95047, 1, 1.08883),OKLab 按 Ottosson 2020 的线性 RGB → LMS → 立方根 → 矩阵三步,color-mix 支持 in srgb / srgb-linear / lab / lch / oklab / oklch 六种空间、预乘 alpha、极坐标默认 shorter hue,并在结果旁标注所用空间。
常见问题
AA 的 4.5 到底是怎么算出来的?
不是经验值而是解方程:对比度 =(L1+0.05)/(L2+0.05),白底 L=1,要求比值 ≥4.5,就得到文字亮度 L ≤ 1.05/4.5−0.05 ≈ 0.1833。把灰通道三个线性分量都取这个值再编码回 sRGB,得到 #767676——这就是为什么所有工具都以它为中位数灰的合格线:它对白约 4.54:1 刚好过 AA,再深一度的 #777777 只有约 4.48:1 就挂掉。
oklch 和 hsl 调色差在哪?
HSL 的 L 是「最大最小通道的平均」,和肉眼亮度无关:hsl(240,100%,50%) 蓝和 hsl(60,100%,50%) 黄同为 50% 明度,观感一个快黑了一个刺眼。OKLCH 的 L 基于对锥细胞响应的立方根压缩,数值大致正比于「看起来多亮」,因此按 L=0.3/0.5/0.7 切出来的色阶深浅均匀,本站的明度阶梯与和谐色都是在这个空间里取的点。
为什么 transparent 的换算结果是 rgba(0,0,0,0)?
CSS 里 transparent 就是全透明的黑。这不影响「用它当文字色」,但在渐变与 color-mix 里它是实打实的黑参与插值,这也是渐变中段发灰的根源(见渐变页说明)。需要透明端时直接写 rgba(同色相分量, 0)。
WCAG 区逐行判的是哪些门槛?
WCAG 区按 WCAG 2.2 原文口径计算:先把 sRGB 通道按分段传递函数线性化,相对亮度 L=0.2126R+0.7152G+0.0722B,对比度 (L亮+0.05)/(L暗+0.05)。页面对白、黑以及你自选的第二颜色各出一表,逐行列出正常文字 AA 4.5:1、正常文字 AAA 7:1、大号文字(≥18pt 或 ≥14pt 粗体)AA 3:1 与 AAA 4.5:1、UI 组件与图形(成功标准 1.4.11)3:1 的门槛、实测值与是否达标。
和谐色是按什么角度取的点?
和谐色与明度阶梯在 OKLCH 中取点:互补 +180°、三色 120°、四分 90°、类似 ±30°/±60°、单色只动 L。
对应功能编号 #78无需安装,手机端同样可用按 Ctrl + K 换工具