Loading...
Loading...
Compare original and translation side by side
| Category | When to use | Reference |
|---|---|---|
| Conversion | Hex/rgb/hsl to oklch | color-conversion.md |
| Palettes | Generate scales, multi-hue, dark mode | palette-generation.md |
| Contrast | APCA/WCAG checks, fixing failing contrast | accessibility-contrast.md |
| Gamut & Tailwind | P3 fallbacks, | gamut-and-tailwind.md |
| 类别 | 使用场景 | 参考文档 |
|---|---|---|
| 格式转换 | Hex/rgb/hsl转oklch | color-conversion.md |
| 调色板 | 生成色阶、多色相、深色模式配色 | palette-generation.md |
| 对比度 | APCA/WCAG校验、修复不达标对比度 | accessibility-contrast.md |
| 色域与Tailwind | P3降级方案、 | gamut-and-tailwind.md |
oklch(0.5 ...)lightness: 50%oklch(0.5 ...)lightness: 50%oklch(L C H)
oklch(L C H / alpha)| Channel | Range | Description |
|---|---|---|
| L (Lightness) | 0–1 | 0 = black, 1 = white. Perceptually uniform. |
| C (Chroma) | 0–~0.4 | Colorfulness. 0 = gray. Max depends on L and H. |
| H (Hue) | 0–360 | Hue angle in degrees. |
| alpha | 0–1 | Optional transparency. Slash syntax. |
oklch(0.637 0.237 25.331)
oklch(0.8 0.05 200 / 0.5)-00oklch(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)-00| Rule | Value |
|---|---|
| Light/dark boundary | L > 0.6 = light background → use dark text |
| Lightness gap (light bg) | Foreground L < 0.45 when background L > 0.85 |
| Lightness gap (dark bg) | Foreground L > 0.75 when background L < 0.25 |
| Hue drift threshold | > 10° spread across palette steps = visible drift |
| APCA normal text | |Lc| >= 60 to pass, >= 75 for pass+ |
| WCAG 2 normal text | 4.5:1 AA, 7:1 AAA |
| Contrast fix | Adjust L only — chroma has negligible effect |
| 规则 | 取值 |
|---|---|
| 深浅色边界 | 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即可,chroma对对比度影响可忽略 |
| Before | After |
|---|---|
| |
| Same absolute C across hues | Same C% of each hue's max chroma |
| No sRGB fallback for P3 color | |
| 修改前 | 修改后 |
|---|---|
| |
| 不同色相使用相同的绝对C值 | 不同色相使用对应最大色度的相同C百分比 |
| P3色彩无sRGB降级方案 | 包裹 |
| Issue | Fix |
|---|---|
| Hex/rgb/hsl color in new code | Convert to |
| HSL palette ramp with hue drift | Rebuild with constant oklch hue |
| Failing contrast (check foreground vs its background using APCA) | Adjust oklch L channel, keep C and H |
| High chroma without gamut check | Clamp to max chroma for the L/H in sRGB |
| Same absolute C across different hues | Use same C% (percentage of max) for consistent vividness |
| P3 color without sRGB fallback | Add |
| Dark mode with hand-picked colors | Derive from light palette by reversing L mapping |
Hex in Tailwind v4 | Convert to oklch values |
| Alpha with comma syntax | Use slash: |
| 问题 | 修复方案 |
|---|---|
| 新代码中使用hex/rgb/hsl色彩 | 转换为 |
| 有色相偏移问题的HSL调色板色阶 | 使用恒定oklch色相重建 |
| 对比度不达标(使用APCA校验前景与背景对比度) | 调整oklch的L通道,保留C和H不变 |
| 高色度值未做色域检查 | 裁切到当前L/H下sRGB支持的最大色度 |
| 不同色相使用相同的绝对C值 | 使用相同的C百分比(最大值的占比)保证一致的鲜艳度 |
| P3色彩无sRGB降级方案 | 添加 |
| 深色模式使用手动挑选的色彩 | 通过反转亮度映射关系从浅色调色板派生 |
Tailwind v4 | 转换为oklch值 |
| alpha使用逗号语法 | 使用斜杠语法: |