OKLab Color Inspector Pro
Color perceptual para Unity, basado en el espacio de color OKLab de Bjorn Ottosson. Sin puntos medios turbios, sin cambios de tono al oscurecer, pasos de brillo uniformes. La misma ciencia de color detrás de CSS Color Level 4 y Figma.
Inicio rápido
Una instrucción using, cero configuración. Funciona en cualquier pipeline de renderizado.
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 qué OKLab en lugar de HSV/HSL?
Los espacios de color estándar mienten sobre la uniformidad perceptual. OKLab no.
| Problema | HSV/HSL | OKLab |
|---|---|---|
| Oscurecer azul cambia a púrpura | Yes | No |
| Amarillo y azul con el mismo L parecen igual de brillantes | Yes | No |
| Lerp de rojo a verde produce marrón turbio | Yes | No |
| 50% de luminosidad varía mucho según el tono | Yes | No |
API Principal - OKLabColor
Clase estática. Todos los métodos son funciones puras sin efectos secundarios.
Conversión de espacio de color
| Método | Descripción |
|---|---|
RGBToOKLab(Color) | Convertir RGB a OKLab (L, a, b) |
OKLabToRGB(L, a, b) | Convertir OKLab a RGB |
OKLabToRGBSafe(L, a, b) | Convertir con restricción de gamut (permanece en sRGB) |
Interpolación
| Método | Descripción |
|---|---|
LerpOKLab(Color a, Color b, float t) | Interpolación perceptualmente uniforme |
LerpLinearRGB(Color a, Color b, float t) | Interpolación RGB de luz lineal |
Ajustes
| Método | Descripción |
|---|---|
AdjustLightness(Color, float delta) | Cambiar luminosidad, preservar tono |
AdjustChroma(Color, float delta) | Cambiar saturación, preservar tono y luminosidad |
GetLightness(Color) | Obtener luminosidad OKLab (0-1) |
GetChroma(Color) | Obtener croma OKLab |
GetHue(Color) | Obtener ángulo de tono (0-360) |
Accesibilidad
| Método | Descripción |
|---|---|
WcagContrastRatio(Color fg, Color bg) | Razón de contraste de luminancia WCAG 2.1 |
WcagRelativeLuminance(Color) | Luminancia relativa por spec WCAG |
BestTextColor(Color bg) | Retorna negro o blanco para mejor legibilidad |
PerceptualDelta(Color a, Color b) | Distancia perceptual (delta E en OKLab) |
EnsureMinDelta(Color, Color, float) | Búsqueda binaria para imponer separación mínima |
API de Paleta - OKLabPalette
Construye armonías, rampas y temas UI completos desde un solo color de acento.
Generación de armonía
| Modo | Colores | Descripción |
|---|---|---|
| Complementary | 2 | Opuesto en la rueda de tono (180 grados) |
| Triadic | 3 | Tres tonos igualmente espaciados (120 grados) |
| Analogous | 3 | Tonos adyacentes (30 grados) |
| Split-Complementary | 3 | Complementario dividido en dos (150 y 210 grados) |
| Tetradic | 4 | Dos pares complementarios (90 grados) |
Generación de rampa
| Método | Descripción |
|---|---|
GenerateRamp(Color a, Color b, steps, BlendConstraint) | Mezclar entre colores con restricción (Free, ConstantHue, ConstantChroma, ConstantLightness) |
GenerateLightnessRamp(Color, steps) | Rampa oscuro a claro con tono y croma constantes |
HueRotate(Color, float degrees) | Rotar tono con luminosidad y croma constantes |
Herramientas del editor
Color Inspector
Window > DAWG Tools > OKLab Color Inspector
Comparación lado a lado de Gamma RGB vs Linear RGB vs OKLab lerp.
Corte interactivo con clic/arrastre. Modos Lock Lightness y Lock Chroma.
Indicadores de clipping de gamut, visualización de contraste WCAG, métricas de delta perceptual.
Palette Builder
Window > DAWG Tools > OKLab Palette Builder
Controles OKLCH con entrada hex y avisos de gamut. Pestaña Build (manual), pestaña Generate
(harmony/ramp/UI theme), Ship tab (WCAG validation matrix, distance warnings).
Export to .hex, .gpl, C# snippet, or ScriptableObject.
Generación de tema UI con un clic
Ingresa un solo color de acento y obtén un tema UI completo de 10 colores con fondos, superficies, texto, bordes y variantes de acento. Genera automáticamente variantes claras y oscuras. El auto-fix WCAG ajusta los colores via búsqueda binaria para cumplir los requisitos de contraste AA.
Instalación
// 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. Sin dependencias externas. Works with Built-in, URP, and HDRP render pipelines.