oklch-skill

oklch-skill

热门

用于Web项目的OKLCH颜色空间。将hex/rgb/hsl转换为oklch,生成调色板,检查对比度,处理色域边界,并使用Tailwind v4进行主题设置。触发词:oklch、颜色转换、调色板生成、对比度、色域、display p3、设计令牌、色相漂移、色度、深色模式颜色。

210Star
8Fork
更新于 2026/7/10
SKILL.md
readonly只读
name
oklch-skill
description

用于Web项目的OKLCH颜色空间。将hex/rgb/hsl转换为oklch,生成调色板,检查对比度,处理色域边界,并使用Tailwind v4进行主题设置。触发词:oklch、颜色转换、调色板生成、对比度、色域、display p3、设计令牌、色相漂移、色度、深色模式颜色。

OKLCH颜色

OKLCH是一种感知均匀的颜色空间,其中的数字实际上符合你的直觉。CSS中的大多数颜色问题——调色板损坏、对比度失败、色相漂移——都源于使用了与我们视觉不匹配的颜色空间。OKLCH修正了模型,使工具正常工作。如需交互式探索,请访问oklch.fyi

快速参考

类别 使用场景 参考
转换 Hex/rgb/hsl转oklch color-conversion.md
调色板 生成色阶、多色相、深色模式 palette-generation.md
对比度 APCA/WCAG检查、修复对比度失败 accessibility-contrast.md
色域与Tailwind P3回退、@theme色阶、色域裁剪 gamut-and-tailwind.md

为什么选择OKLCH

  • 感知均匀。 相等的L步长等于相等的亮度。oklch(0.5 ...)在视觉上是中间调。HSL的lightness: 50%在不同色相下差异巨大。
  • 色相稳定。 HSL的蓝色在亮度变化时会偏向紫色。OKLCH的色相在整个亮度范围内保持恒定。
  • 色度独立。 色度是色彩饱和度的绝对度量,不依赖于亮度。而HSL的饱和度则依赖于亮度。
  • 有限色域。 并非每个oklch值都能映射到可显示的sRGB颜色。某些色相的高色度值会被裁剪——必须注意色域。

OKLCH语法

oklch(L C H)
oklch(L C H / alpha)
通道 范围 描述
L(亮度) 0–1 0 = 黑色,1 = 白色。感知均匀。
C(色度) 0–~0.4 色彩饱和度。0 = 灰色。最大值取决于L和H。
H(色相) 0–360 色相角度,单位为度。
alpha 0–1 可选透明度。使用斜杠语法。
oklch(0.637 0.237 25.331)
oklch(0.8 0.05 200 / 0.5)

格式: L和C使用3位小数,H最多3位。去掉尾随零。将-0格式化为0。浏览器支持:Baseline 2023,全球覆盖率96%以上。

关键阈值

规则
亮/暗边界 L > 0.6 = 亮背景 → 使用深色文本
亮度差距(亮背景) 背景L > 0.85时,前景L < 0.45
亮度差距(暗背景) 背景L < 0.25时,前景L > 0.75
色相漂移阈值 调色板步骤间色相差异 > 10° = 可见漂移
APCA正常文本 |Lc| >= 60通过,>= 75为通过+
WCAG 2正常文本 4.5:1 AA,7:1 AAA
对比度修复 仅调整L——色度影响可忽略

审查输出格式

始终将颜色更改呈现为带有之前之后列的Markdown表格。包括所有更改的颜色——而不仅仅是子集。切勿在表格之外以单独的“之前:”/“之后:”行列出发现。

之前 之后
color: #3b82f6 color: oklch(0.623 0.188 259.815)
不同色相使用相同的绝对C 使用每个色相最大色度的相同C%
P3颜色无sRGB回退 @media (color-gamut: p3)包装

这使反馈易于扫描和差异友好。每一行都是一个独立的更改,开发者可以独立操作。

常见错误

问题 修复
新代码中使用Hex/rgb/hsl颜色 转换为oklch()
HSL调色板色相漂移 使用恒定oklch色相重建
对比度失败(使用APCA检查前景与其背景) 调整oklch L通道,保持C和H
高色度未检查色域 裁剪到sRGB中该L/H的最大色度
不同色相使用相同的绝对C 使用相同的C%(最大值的百分比)以获得一致的鲜艳度
P3颜色无sRGB回退 添加@media (color-gamut: p3)模式
深色模式使用手工挑选的颜色 通过反转L映射从亮色板派生
Tailwind v4 @theme中的Hex 转换为oklch值
使用逗号语法的Alpha 使用斜杠:oklch(L C H / alpha)

参考文件