Si vous travaillez avec les couleurs en CSS, vous connaissez sûrement les formats classiques comme rgb() ou hsl(). Mais depuis quelque temps, une nouvelle star fait parler d’elle dans le monde du design et du développement : OKLCH. Ce modèle colorimétrique, plus moderne et plus proche de la manière dont l’œil humain perçoit les couleurs, pourrait bien devenir la norme de demain dans la création de site web ou d’applications mobiles. Voici pourquoi.

Qu’est-ce que OKLCH ?

OKLCH est une façon de définir une couleur selon trois dimensions :

  • L (Lightness) : la luminance perçue, c’est-à-dire la clarté de la couleur. Elle va de 0 (noir) à 1 (blanc).
  • C (Chroma) : l’intensité ou la pureté de la couleur. Plus c’est élevé, plus la couleur est vive.
  • H (Hue) : la teinte, mesurée en degrés sur un cercle (0 = rouge, 120 = vert, 240 = bleu, etc.).

Optionnellement, on peut aussi ajouter un canal alpha pour la transparence, comme dans oklch(0.7 0.1102 206.49 / 50%)

exemple couleur avec oklch

Pourquoi c’est plus intelligent que RGB ou HSL ?

Les anciens formats comme rgb() ou hsl() ne tiennent pas compte de la perception humaine. Par exemple :

  • Dans hsl(), deux couleurs avec la même “lightness” peuvent paraître très différentes en termes de luminosité réelle.
  • Dans rgb(), il est très difficile d’ajuster une couleur tout en gardant un bon contraste ou une harmonie visuelle.

Avec OKLCH, tout est plus prévisible et cohérent, car les valeurs reflètent la réalité visuelle. Si vous modifiez uniquement la luminance (L), la couleur devient plus claire ou plus foncée sans dériver vers un ton inattendu.

Les avantages concrets d’OKLCH

1. Des couleurs plus accessibles

OKLCH facilite le respect des critères de contraste des WCAG, car la luminance perçue est directement contrôlable. Plus besoin de tâtonner pour obtenir une couleur lisible.

2. Des palettes harmonieuses facilement

Grâce à la structure logique du modèle, il est simple de créer des variations (plus claires, plus saturées, etc.) à partir d’une couleur de base. Parfait pour les systèmes de design.

3. Compatibilité avec les écrans modernes

Les écrans récents (comme ceux d’Apple) supportent des couleurs plus riches (large gamut). OKLCH permet d’exploiter pleinement ces nouvelles capacités visuelles.

4. Lisibilité humaine

Pas besoin d’un outil externe pour comprendre la couleur : oklch(80% 0.1 240) est lisible d’un coup d’œil si on connaît un peu le modèle.

5. Facile à manipuler dans les outils CSS

OKLCH est compatible avec les fonctions CSS comme color-mix() et relative-color-syntax. Cela le rend puissant pour créer des interfaces dynamiques et adaptables.

Pourquoi OKLCH va devenir la norme

Avec l’arrivée des spécifications CSS Color 4, les navigateurs vont peu à peu adopter ce format. Sa capacité à produire des couleurs cohérentes, accessibles et modernes en fait un candidat naturel pour remplacer les anciens modèles. Comme l’a montré Evil Martians dans leur propre transition, OKLCH simplifie la vie des designers et des développeurs.

Comment OKLCH aide à créer des templates de couleurs plus cohérents

La clé, c’est que OKLCH reflète la perception humaine des couleurs. Voici en détail pourquoi et comment cela change tout pour tes templates :

La luminance perçue = des couleurs vraiment équilibrées

Dans OKLCH, la valeur L (Lightness) correspond directement à la clarté perçue par l’œil humain.

Résultat :
Si tu crées une palette avec différentes couleurs (bleu, rouge, vert…) mais que tu gardes le même L, toutes ces couleurs auront la même luminosité visuelle.

Exemple :

  • Avec hsl(), un bleu et un jaune avec la même “lightness” peuvent paraître très différents en termes de clarté.
  • Avec oklch(), tu es sûr que tes boutons, fonds, ou textes auront un équilibre visuel naturel, sans surprises.

Chroma (C) : Maîtriser l’intensité pour éviter les couleurs “criardes”

La composante C (Chroma) définit l’intensité de la couleur.

En ajustant cette valeur, tu peux facilement :

  • Créer des variantes désaturées (pour des arrière-plans doux).
  • Générer des couleurs plus vives (pour attirer l’attention sur des CTA par exemple).

Et le tout de manière régulière, sans que certaines teintes deviennent soudainement trop flashy ou ternes.

Teinte (H) : Des déclinaisons faciles et logiques

Avec H (Hue) exprimée en degrés, tu peux :

  • Générer automatiquement des couleurs complémentaires (ajoute +180°).
  • Créer des variantes analogues ou triadiques pour des thèmes harmonieux.

OKLCH garantit que ces déclinaisons restent visuellement cohérentes, car la gestion de la luminance et de la chroma évite les dérives de contraste ou de saturation.

Des échelles et systèmes de design faciles à automatiser

OKLCH est parfait pour les systèmes de design où tu dois générer :

  • Des tons clairs et foncés (ex. mode sombre / mode clair).
  • Des états d’interface (hover, disabled, active) avec des variations maîtrisées.
  • Des gammes complètes (par exemple, 10 nuances d’une même couleur).

Exemple pratique : Tu peux définir une base comme :

css
CopierModifier
--primary: oklch(70% 0.15 250);

Et décliner automatiquement :

  • Une version plus sombre : oklch(50%
    0.15 250)
  • Une version désaturée : oklch(70%
    0.05 250)

Chaque variation garde une logique visuelle, ce qui est difficile à obtenir avec rgb() ou hsl() sans ajustements manuels.

Accessibilité intégrée

Parce que tu maîtrises précisément la luminance, il est beaucoup plus simple de garantir que :

  • Tes textes ont un contraste suffisant avec leur fond.
  • Tes templates respectent les normes WCAG.

Plus besoin de vérifier chaque combinaison à la main ou avec des outils externes.

Quand la cohérence rime avec simplicité

Avec OKLCH on passe d’une logique “technique” (comme en RGB) à une logique visuelle et humaine.

On peut standardiser des palettes et automatiser des déclinaisons sans risquer de casser l’harmonie du design.

Les interfaces sont plus belles, lisibles et accessibles, sans effort supplémentaire.

C’est pour ça que les équipes de design système (comme chez Evil Martians) adoptent OKLCH : fini les ajustements à l’œil ou les hacks pour obtenir une palette propre.