颜色转换与对比度
HEX/RGB/HSL/OKLCH 互转 + WCAG 对比度检查,前景背景实时预览。
设计稿给的是 HEX,CSS 变量想用 HSL,现代 CSS 又流行 OKLCH——颜色格式转换本身不难,难的是转换不出色偏:直接在 sRGB 数值上换算 HSL 没问题,但进到 OKLCH 必须先做线性化,跳过这一步的结果肉眼可见地不对。本工具按标准路径(sRGB → 线性 → OKLab → OKLCH)实现,与 CSS Color 4 规范一致。
对比度检查器是可访问性的日常刚需:正文要 4.5:1(AA)、大字 3:1,AAA 再抬一档。前景背景两个取色器实时算出比值与四档判定,叠加真实预览(黑字白底到底清不清楚,眼睛最诚实)。
OKLCH 是什么,为什么设计师在换用它
OKLCH 用亮度(L)、色度(C)、色相(H)描述颜色,三个分量都对应人眼的感知:同 L 的两个颜色「看起来一样亮」,增减 C 得到的是等距的鲜艳度变化。传统 HSL 做不到——HSL 的 L 相同的黄和蓝,亮度差了近一倍。用 OKLCH 生成的色板层次均匀,是无障碍色板的主流工具。
4.5:1 这个数字从哪来
WCAG 2.x 把对比度定义为两个相对亮度(含 0.05 偏置)的比值,4.5:1 是正常视力读正文的最低要求,3:1 适用于 18pt 以上大字,7:1(AAA)覆盖低视力用户。比值只与两色的亮度有关,与色相无关——所以灰字红底也可能达标。
常见问题
- 支持透明度吗?
- 支持。8 位 HEX(#RRGGBBAA)、rgba()、hsla() 都能解析,各格式输出会带上 alpha;对比度计算按不透明处理(WCAG 规范即在纯色背景上评估)。
- 支持 oklch() 输入吗?
- 支持。直接粘贴 oklch(0.63 0.26 29.2) 即可解析并转成其他格式;现代浏览器(2023+)原生渲染 OKLCH,旧环境会回退到 sRGB 近似。
- 为什么和别的转换工具结果有微小差异?
- 小数位数的舍入策略不同。本工具按 CSS Color 4 的矩阵与 4 位小数精度实现,与浏览器 getComputedStyle 返回的 OKLCH 值一致。