OKLab Color Inspector Pro
Cor perceptual para Unity, baseada no espaço de cor OKLab de Bjorn Ottosson. Sem pontos médios turvos, sem mudança de matiz ao escurecer, passos de brilho uniformes. A mesma ciência de cor por trás do CSS Color Level 4 e Figma.
Início rápido
Uma instrução using, zero configuração. Funciona em qualquer pipeline de renderização.
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);
Por que OKLab em vez de HSV/HSL?
Espaços de cor padrão mentem sobre uniformidade perceptual. OKLab não.
| Problema | HSV/HSL | OKLab |
|---|---|---|
| Escurecer azul muda para roxo | Yes | No |
| Amarelo e azul no mesmo L parecem igualmente brilhantes | Yes | No |
| Lerp de vermelho para verde produz marrom turvo | Yes | No |
| 50% de luminosidade varia muito por matiz | Yes | No |
API Principal - OKLabColor
Classe estática. Todos os métodos são funções puras sem efeitos colaterais.
Conversão de espaço de cor
| Método | Descrição |
|---|---|
RGBToOKLab(Color) | Converter RGB para OKLab (L, a, b) |
OKLabToRGB(L, a, b) | Converter OKLab para RGB |
OKLabToRGBSafe(L, a, b) | Converter com clamping de gamut (mantém em sRGB) |
Interpolação
| Método | Descrição |
|---|---|
LerpOKLab(Color a, Color b, float t) | Interpolação perceptualmente uniforme |
LerpLinearRGB(Color a, Color b, float t) | Interpolação RGB de luz linear |
Ajustes
| Método | Descrição |
|---|---|
AdjustLightness(Color, float delta) | Alterar luminosidade, preservar matiz |
AdjustChroma(Color, float delta) | Alterar saturação, preservar matiz e luminosidade |
GetLightness(Color) | Obter luminosidade OKLab (0-1) |
GetChroma(Color) | Obter croma OKLab |
GetHue(Color) | Obter ângulo de matiz (0-360) |
Acessibilidade
| Método | Descrição |
|---|---|
WcagContrastRatio(Color fg, Color bg) | Razão de contraste de luminância WCAG 2.1 |
WcagRelativeLuminance(Color) | Luminância relativa por spec WCAG |
BestTextColor(Color bg) | Retorna preto ou branco para melhor legibilidade |
PerceptualDelta(Color a, Color b) | Distância perceptual (delta E em OKLab) |
EnsureMinDelta(Color, Color, float) | Busca binária para garantir separação mínima |
API de Paleta - OKLabPalette
Construa harmonias, rampas e temas UI completos a partir de uma única cor de destaque.
Geração de harmonia
| Modo | Cores | Descrição |
|---|---|---|
| Complementary | 2 | Oposto na roda de matiz (180 graus) |
| Triadic | 3 | Três matizes igualmente espaçados (120 graus) |
| Analogous | 3 | Matizes adjacentes (30 graus) |
| Split-Complementary | 3 | Complementar dividido em dois (150 e 210 graus) |
| Tetradic | 4 | Dois pares complementares (90 graus) |
Geração de rampa
| Método | Descrição |
|---|---|
GenerateRamp(Color a, Color b, steps, BlendConstraint) | Mesclar entre cores com restrição (Free, ConstantHue, ConstantChroma, ConstantLightness) |
GenerateLightnessRamp(Color, steps) | Rampa escuro-para-claro em matiz e croma constantes |
HueRotate(Color, float degrees) | Rotacionar matiz com luminosidade e croma constantes |
Ferramentas do editor
Color Inspector
Window > DAWG Tools > OKLab Color Inspector
Comparação lado a lado de Gamma RGB vs Linear RGB vs OKLab lerp.
Fatia interativa com clique/arraste. Modos Lock Lightness e Lock Chroma.
Indicadores de clipping de gamut, exibição de contraste WCAG, métricas de delta perceptual.
Palette Builder
Window > DAWG Tools > OKLab Palette Builder
Controles OKLCH com entrada hex e avisos de gamut. Aba Build (manual), aba Generate
(harmony/ramp/UI theme), Ship tab (WCAG validation matrix, distance warnings).
Export to .hex, .gpl, C# snippet, or ScriptableObject.
Geração de tema UI com um clique
Insira uma única cor de destaque e obtenha um tema UI completo de 10 cores com fundos, superfícies, texto, bordas e variantes de destaque. Gera automaticamente variantes claras e escuras. O auto-fix WCAG ajusta as cores via busca binária para atender os requisitos de contraste AA.
Instalação
// 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. Sem dependências externas. Works with Built-in, URP, and HDRP render pipelines.