← 所有包

OKLab Color Inspector Pro

基于Bjorn Ottosson的OKLab色彩空间的Unity感知色彩。 无浑浊中间点、暗化无色相偏移、均匀亮度阶梯。 CSS Color Level 4和Figma背后的同一色彩科学。

v1.2.0 Unity 2021.3+ No dependencies namespace: DawgTools.OKLab

快速入门

一条using语句,零设置。在任何渲染管线中工作。

using DawgTools.OKLab;
using UnityEngine;

// Perceptually uniform lerp (no muddy midpoints)
Color midpoint = OKLabColor.LerpOKLab(Color.red, Color.green, 0.5f);

// Darken without hue shift
Color darker = OKLabColor.AdjustLightness(myColor, -0.15f);

// WCAG contrast check
float ratio = OKLabColor.WcagContrastRatio(textColor, bgColor);
bool passesAA = ratio >= 4.5f;

// Auto-pick readable text color
Color text = OKLabColor.BestTextColor(backgroundColor);

// Generate palette from one accent color
Color[] harmony = OKLabPalette.GenerateHarmony(accent, HarmonyMode.Triadic);

为什么选择OKLab而不是HSV/HSL?

标准色彩空间在感知均匀性上说谎。OKLab不会。

问题HSV/HSLOKLab
蓝色加深偏向紫色YesNo
相同L值的黄色和蓝色看起来一样亮YesNo
红到绿的插值产生浑浊的棕色YesNo
50%亮度随色相剧烈变化YesNo

核心API - OKLabColor

静态类。所有方法都是无副作用的纯函数。

色彩空间转换

方法描述
RGBToOKLab(Color)RGB转OKLab (L, a, b)
OKLabToRGB(L, a, b)OKLab转RGB
OKLabToRGBSafe(L, a, b)带色域钳制转换(保持在sRGB内)

插值

方法描述
LerpOKLab(Color a, Color b, float t)感知均匀插值
LerpLinearRGB(Color a, Color b, float t)线性光RGB插值

调整

方法描述
AdjustLightness(Color, float delta)改变明度,保持色相
AdjustChroma(Color, float delta)改变饱和度,保持色相和明度
GetLightness(Color)获取OKLab明度 (0-1)
GetChroma(Color)获取OKLab彩度
GetHue(Color)获取色相角度 (0-360)

无障碍

方法描述
WcagContrastRatio(Color fg, Color bg)WCAG 2.1亮度对比度比
WcagRelativeLuminance(Color)按WCAG规范的相对亮度
BestTextColor(Color bg)返回黑色或白色以获得最佳可读性
PerceptualDelta(Color a, Color b)感知距离(OKLab中的delta E)
EnsureMinDelta(Color, Color, float)二分搜索确保最小间隔

调色板API - OKLabPalette

从单一强调色构建和谐配色、渐变和完整UI主题。

和谐配色生成

模式颜色数描述
Complementary2色相轮上的对面 (180度)
Triadic3三个等距色相 (120度间隔)
Analogous3相邻色相 (30度间隔)
Split-Complementary3互补色分为两个 (150和210度)
Tetradic4两对互补色 (90度间隔)

渐变生成

方法描述
GenerateRamp(Color a, Color b, steps, BlendConstraint)带约束的颜色混合(Free、ConstantHue、ConstantChroma、ConstantLightness)
GenerateLightnessRamp(Color, steps)恒定色相和彩度的暗到亮渐变
HueRotate(Color, float degrees)恒定明度和彩度下旋转色相

编辑器工具

Color Inspector

Window > DAWG Tools > OKLab Color Inspector
Gamma RGB vs Linear RGB vs OKLab插值的并排对比。 点击/拖拽交互式切片。锁定明度和锁定彩度模式。 色域裁剪指示器、WCAG对比度显示、感知差异指标。

Palette Builder

Window > DAWG Tools > OKLab Palette Builder
OKLCH滑块带hex输入和色域警告。Build标签(手动)、Generate标签 (harmony/ramp/UI theme), Ship tab (WCAG validation matrix, distance warnings). Export to .hex, .gpl, C# snippet, or ScriptableObject.

一键UI主题生成

输入单一强调色,获取包含背景、表面、文本、边框和强调变体的完整10色UI主题。 自动生成亮色和暗色两种变体。 WCAG自动修复通过二分搜索调整颜色以满足AA对比度要求。

安装

// Unity Package Manager > Add package from disk
// Navigate to package.json and select it

// Then import the demo scene:
// Package Manager > OKLab Color Inspector PRO > Samples > Import

Requires Unity 2021.3 LTS or newer. 无外部依赖. Works with Built-in, URP, and HDRP render pipelines.