关键信息
- 分类
- 设计与颜色
- 输入类型
- text, select, number
- 输出类型
- html
- 样本覆盖
- 1
- 支持 API
- Yes
概览
OKLCH 色彩转换器是一款基于 CSS Color 4 规范的专业色彩工具,支持在 HEX、RGB、HSL、OKLCH 和 Display-P3 等现代色彩空间之间进行双向转换。它不仅能提供精确的感知亮度、彩度和色相读数,还能自动检测颜色是否超出 sRGB 或 Display-P3 色域,并在超域时提供基于彩度裁剪的最近色内 OKLCH 优化建议,帮助设计师和前端开发者构建感知均匀且兼容现代浏览器的色彩系统。
适用场景
- •需要在 CSS 中使用现代 OKLCH 或 Display-P3 颜色格式,并确保其在旧版浏览器或 sRGB 屏幕上能正确降级时。
- •设计感知均匀的 UI 色板或无障碍对比度梯度,避免 HSL 格式在调整亮度时产生的色相偏移。
- •检查高饱和度的广色域颜色是否超出标准 sRGB 范围,并获取无损色相的裁剪建议。
工作原理
- •输入颜色:在输入框中粘贴 HEX、rgb()、hsl() 或 oklch() 颜色代码,或者直接手动调节 L(亮度)、C(彩度)、H(色相)数值。
- •空间转换:系统基于 CSS Color 4 规范矩阵,实时计算并输出对应的线性 sRGB、XYZ D65、OKLab、Display-P3 等多种色彩空间数值。
- •色域诊断:自动检测当前颜色是否在 sRGB 色域内、在 Display-P3 但超出 sRGB,还是两者之外。
- •裁剪优化:若颜色超出目标色域,工具会通过降低彩度(Chroma)的算法,计算出最接近且不偏色的色域内 OKLCH 推荐值。
使用场景
用户案例
1. 品牌蓝的广色域转换与色域检查
UI 设计师- 背景原因
- 正在为一款 iOS 应用设计界面,希望将现有的品牌蓝色(#3b82f6)转换为 OKLCH 格式,并检查其在 Display-P3 和 sRGB 下的兼容性。
- 解决问题
- 需要获取精确的 OKLCH 数值,并确认该颜色是否在标准 sRGB 色域内。
- 如何使用
- 在“颜色输入”框中输入 #3b82f6,将“输入格式”设为“自动”,参考色域设为“自动”。
- 示例配置
-
{"colorInput": "#3b82f6", "inputFormat": "auto", "clipMode": "auto"} - 效果
- 成功获取该蓝色对应的 oklch(0.62 0.19 256) 及 Display-P3 格式,并确认其完全在 sRGB 色域内,可安全用于所有屏幕。
2. 超域高亮绿的 sRGB 裁剪适配
前端开发工程师- 背景原因
- 在 CSS 中使用了一个非常鲜艳的 P3 绿色 oklch(0.85 0.25 140),但在普通 sRGB 显示器上颜色会失真。
- 解决问题
- 需要在不改变色相和感知亮度的前提下,找到最接近的 sRGB 安全色。
- 如何使用
- 输入 oklch(0.85 0.25 140),将“参考色域”选择为“sRGB(裁剪适配)”。
- 示例配置
-
{"colorInput": "oklch(0.85 0.25 140)", "inputFormat": "oklch", "clipMode": "srgb"} - 效果
- 工具检测到该颜色超出 sRGB,并自动计算出降低彩度后的安全值(如 oklch(0.85 0.18 140)),提供可直接复制的降级 CSS 代码。
用 Samples 测试
design相关专题
常见问题
什么是 OKLCH 色彩空间?
OKLCH 是一种感知均匀的色彩空间,L 代表感知亮度,C 代表彩度,H 代表色相,调整亮度或彩度时色相不会发生偏移。
为什么转换后的颜色会显示“超出 sRGB 色域”?
因为 OKLCH 和 Display-P3 支持比标准 sRGB 更宽的色域,某些高饱和度颜色在普通 sRGB 屏幕上无法正常显示。
工具是如何处理超域颜色的?
工具会采用彩度裁剪算法,在保持感知亮度和色相不变的前提下,降低彩度以适配目标色域。
我可以直接在 CSS 中使用 OKLCH 吗?
可以,现代主流浏览器均已原生支持 CSS oklch() 函数,对于不支持的浏览器可以使用 sRGB 降级方案。
为什么 OKLCH 比 HSL 更适合做 UI 配色?
HSL 的亮度不符合人眼实际感知,而 OKLCH 的 L 通道完全匹配人眼感知亮度,更易于设计无障碍对比度。