OKLab Color Inspector Pro
Wahrnehmungsbasierte Farbe für Unity, basierend auf Bjorn Ottossons OKLab-Farbraum. Keine trüben Mittelpunkte, keine Farbtonverschiebung beim Abdunkeln, gleichmäßige Helligkeitsstufen. Die gleiche Farbwissenschaft hinter CSS Color Level 4 und Figma.
Schnellstart
Ein Using-Statement, null Setup. Funktioniert in jeder Render-Pipeline.
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);
Warum OKLab statt HSV/HSL?
Standard-Farbräume lügen über die wahrnehmungsbasierte Gleichmäßigkeit. OKLab nicht.
| Problem | HSV/HSL | OKLab |
|---|---|---|
| Abdunkeln von Blau verschiebt nach Lila | Yes | No |
| Gelb und Blau bei gleichem L wirken gleich hell | Yes | No |
| Interpolation Rot→Grün erzeugt trübes Braun | Yes | No |
| 50% Helligkeit variiert stark je nach Farbton | Yes | No |
Kern-API - OKLabColor
Statische Klasse. Alle Methoden sind reine Funktionen ohne Seiteneffekte.
Farbraum-Konvertierung
| Methode | Beschreibung |
|---|---|
RGBToOKLab(Color) | RGB in OKLab (L, a, b) konvertieren |
OKLabToRGB(L, a, b) | OKLab in RGB konvertieren |
OKLabToRGBSafe(L, a, b) | Konvertierung mit Gamut-Clamping (bleibt in sRGB) |
Interpolation
| Methode | Beschreibung |
|---|---|
LerpOKLab(Color a, Color b, float t) | Wahrnehmungsbasiert gleichmäßige Interpolation |
LerpLinearRGB(Color a, Color b, float t) | Linear-Light-RGB-Interpolation |
Anpassungen
| Methode | Beschreibung |
|---|---|
AdjustLightness(Color, float delta) | Helligkeit ändern, Farbton erhalten |
AdjustChroma(Color, float delta) | Sättigung ändern, Farbton und Helligkeit erhalten |
GetLightness(Color) | OKLab-Helligkeit abrufen (0-1) |
GetChroma(Color) | OKLab-Chroma abrufen |
GetHue(Color) | Farbtonwinkel abrufen (0-360) |
Barrierefreiheit
| Methode | Beschreibung |
|---|---|
WcagContrastRatio(Color fg, Color bg) | WCAG 2.1-Luminanz-Kontrastverhältnis |
WcagRelativeLuminance(Color) | Relative Luminanz nach WCAG-Spezifikation |
BestTextColor(Color bg) | Gibt Schwarz oder Weiß für beste Lesbarkeit zurück |
PerceptualDelta(Color a, Color b) | Wahrnehmungsabstand (Delta E in OKLab) |
EnsureMinDelta(Color, Color, float) | Binärsuche zur Erzwingung minimaler Trennung |
Paletten-API - OKLabPalette
Erstellen Sie Harmonien, Rampen und komplette UI-Themes aus einer einzigen Akzentfarbe.
Harmonie-Generierung
| Modus | Farben | Beschreibung |
|---|---|---|
| Complementary | 2 | Gegenüber auf dem Farbkreis (180 Grad) |
| Triadic | 3 | Drei gleichmäßig verteilte Farbtöne (120 Grad Abstand) |
| Analogous | 3 | Benachbarte Farbtöne (30 Grad Abstand) |
| Split-Complementary | 3 | Komplement in zwei geteilt (150 und 210 Grad) |
| Tetradic | 4 | Zwei Komplementärpaare (90 Grad Abstand) |
Rampen-Generierung
| Methode | Beschreibung |
|---|---|
GenerateRamp(Color a, Color b, steps, BlendConstraint) | Farbmischung mit Einschränkung (Free, ConstantHue, ConstantChroma, ConstantLightness) |
GenerateLightnessRamp(Color, steps) | Dunkel-zu-Hell-Rampe bei konstantem Farbton und Chroma |
HueRotate(Color, float degrees) | Farbton bei konstanter Helligkeit und Chroma rotieren |
Editor-Werkzeuge
Color Inspector
Window > DAWG Tools > OKLab Color Inspector
Nebeneinander-Vergleich von Gamma-RGB vs Linear-RGB vs OKLab-Lerp.
Interaktiver Schnitt mit Klick/Ziehen. Lock-Lightness- und Lock-Chroma-Modi.
Gamut-Clipping-Indikatoren, WCAG-Kontrastanzeige, wahrnehmungsbasierte Delta-Metriken.
Palette Builder
Window > DAWG Tools > OKLab Palette Builder
OKLCH-Regler mit Hex-Eingabe und Gamut-Warnungen. Build-Tab (manuell), Generate-Tab
(harmony/ramp/UI theme), Ship tab (WCAG validation matrix, distance warnings).
Export to .hex, .gpl, C# snippet, or ScriptableObject.
Ein-Klick-UI-Theme-Generierung
Geben Sie eine einzige Akzentfarbe ein und erhalten Sie ein komplettes 10-Farben-UI-Theme mit Hintergründen, Oberflächen, Text, Rahmen und Akzentvarianten. Generiert automatisch sowohl helle als auch dunkle Varianten. WCAG-Auto-Fix passt Farben per Binärsuche an AA-Kontrastanforderungen an.
Installation
// 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. Keine externen Abhängigkeiten. Works with Built-in, URP, and HDRP render pipelines.