OKLab Color Inspector Pro
Couleur perceptuelle pour Unity, basée sur l'espace colorimétrique OKLab de Bjorn Ottosson. Pas de points intermédiaires boueux, pas de dérive de teinte à l'assombrissement, pas uniformes de luminosité. La même science des couleurs derrière CSS Color Level 4 et Figma.
Démarrage rapide
Une instruction using, zéro configuration. Fonctionne dans tout pipeline de rendu.
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);
Pourquoi OKLab plutôt que HSV/HSL ?
Les espaces colorimétriques standard mentent sur l'uniformité perceptuelle. OKLab non.
| Problème | HSV/HSL | OKLab |
|---|---|---|
| Assombrir le bleu dérive vers le violet | Yes | No |
| Jaune et bleu au même L semblent également lumineux | Yes | No |
| L'interpolation rouge vers vert produit un brun boueux | Yes | No |
| 50% de luminosité varie fortement selon la teinte | Yes | No |
API Principale - OKLabColor
Classe statique. Toutes les méthodes sont des fonctions pures sans effets de bord.
Conversion d'espace colorimétrique
| Méthode | Description |
|---|---|
RGBToOKLab(Color) | Convertir RGB en OKLab (L, a, b) |
OKLabToRGB(L, a, b) | Convertir OKLab en RGB |
OKLabToRGBSafe(L, a, b) | Convertir avec clamping de gamut (reste en sRGB) |
Interpolation
| Méthode | Description |
|---|---|
LerpOKLab(Color a, Color b, float t) | Interpolation perceptuellement uniforme |
LerpLinearRGB(Color a, Color b, float t) | Interpolation RGB en lumière linéaire |
Ajustements
| Méthode | Description |
|---|---|
AdjustLightness(Color, float delta) | Changer la luminosité, préserver la teinte |
AdjustChroma(Color, float delta) | Changer la saturation, préserver teinte et luminosité |
GetLightness(Color) | Obtenir la luminosité OKLab (0-1) |
GetChroma(Color) | Obtenir le chroma OKLab |
GetHue(Color) | Obtenir l'angle de teinte (0-360) |
Accessibilité
| Méthode | Description |
|---|---|
WcagContrastRatio(Color fg, Color bg) | Ratio de contraste de luminance WCAG 2.1 |
WcagRelativeLuminance(Color) | Luminance relative par spécification WCAG |
BestTextColor(Color bg) | Retourne noir ou blanc pour une meilleure lisibilité |
PerceptualDelta(Color a, Color b) | Distance perceptuelle (delta E en OKLab) |
EnsureMinDelta(Color, Color, float) | Recherche binaire pour imposer une séparation minimale |
API Palette - OKLabPalette
Construisez des harmonies, des rampes et des thèmes UI complets à partir d'une seule couleur d'accent.
Génération d'harmonies
| Mode | Couleurs | Description |
|---|---|---|
| Complementary | 2 | Opposé sur la roue de teinte (180 degrés) |
| Triadic | 3 | Trois teintes également espacées (120 degrés) |
| Analogous | 3 | Teintes adjacentes (30 degrés) |
| Split-Complementary | 3 | Complémentaire divisé en deux (150 et 210 degrés) |
| Tetradic | 4 | Deux paires complémentaires (90 degrés) |
Génération de rampes
| Méthode | Description |
|---|---|
GenerateRamp(Color a, Color b, steps, BlendConstraint) | Mélange entre couleurs avec contrainte (Free, ConstantHue, ConstantChroma, ConstantLightness) |
GenerateLightnessRamp(Color, steps) | Rampe sombre à clair à teinte et chroma constants |
HueRotate(Color, float degrees) | Rotation de la teinte à luminosité et chroma constants |
Outils éditeur
Color Inspector
Window > DAWG Tools > OKLab Color Inspector
Comparaison côte à côte de Gamma RGB vs Linear RGB vs OKLab lerp.
Tranche interactive clic/glisser. Modes Lock Lightness et Lock Chroma.
Indicateurs de clipping de gamut, affichage de contraste WCAG, métriques de delta perceptuel.
Palette Builder
Window > DAWG Tools > OKLab Palette Builder
Curseurs OKLCH avec entrée hex et avertissements de gamut. Onglet Build (manuel), onglet Generate
(harmony/ramp/UI theme), Ship tab (WCAG validation matrix, distance warnings).
Export to .hex, .gpl, C# snippet, or ScriptableObject.
Génération de thème UI en un clic
Entrez une seule couleur d'accent et obtenez un thème UI complet de 10 couleurs avec arrière-plans, surfaces, texte, bordures et variantes d'accent. Génère automatiquement les variantes claire et sombre. L'auto-fix WCAG ajuste les couleurs par recherche binaire pour respecter les exigences de contraste AA.
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. Aucune dépendance externe. Works with Built-in, URP, and HDRP render pipelines.