Backgrounds✨ Premium

Color Space Morph

Deux bandeaux CSS côte à côte comparent l'interpolation sRGB et OKLCH sur les mêmes couleurs — le milieu du dégradé révèle tout.

CSSColor SpacesGradient

Vous aurez accès à la démo interactive avec un compte gratuit.

Cet effet fait partie d'Effect.Labs — 811 effets vanilla, une partie gratuite, une partie premium. Backgrounds comprend 50 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Article design system — Pourquoi OKLCH ? — Color Space Morph exemple 1

① Article design system — Pourquoi OKLCH ?

QuandLa documentation d'un design system ou un article de blog explique le choix d'OKLCH comme espace de référence pour les tokens de couleur.
PourquoiLes deux bandeaux côte à côte montrent immédiatement le creux sRGB et la linéarité OKLCH — plus convaincant qu'une explication textuelle, et autoportant sans framework.
RéglagesCouleurs de départ/arrivée adaptées au cas pédagogique (ex. rouge → bleu pour maximiser le gris central sRGB), hauteur des bandes portée à 60 px pour confort de lecture sur desktop.
Éditeur de tokens — Sélecteur d'espace d'interpolation — Color Space Morph exemple 2

② Éditeur de tokens — Sélecteur d'espace d'interpolation

QuandUn outil de design (Tokens Studio, theme builder custom) propose à l'utilisateur de choisir l'espace colorimétrique d'un gradient avant de l'exporter.
PourquoiLa comparaison live dans le panneau paramètres évite toute modélisation mentale : le designer voit immédiatement l'impact de son choix sur le midpoint avant d'appliquer.
RéglagesBandes configurées avec les couleurs exactes du token en cours d'édition, hauteur 40 px, intégrées dans une carte de réglage à côté d'un toggle sRGB / OKLCH.
Landing page d'un générateur de palettes OKLCH-natif — Color Space Morph exemple 3

③ Landing page d'un générateur de palettes OKLCH-natif

QuandLa section above-the-fold d'un outil de génération de palettes CSS met en avant son moteur OKLCH comme différenciateur produit.
PourquoiLa comparaison animée au survol attire le regard et prouve la proposition de valeur en un seul scroll-stop : « voyez comment notre outil choisit de meilleurs midpoints ».
RéglagesBandes agrandies à 70 px, transition ralentie à 1,5 s pour un reveal cinématique, couleurs vives choisies pour maximiser l'écart sRGB/OKLCH visible.

Comment ça marche

L'effet repose entièrement sur CSS Color Level 4 : chaque bande est un background: linear-gradient(90deg in <color-space>, …). Le mot-clé in srgb ou in oklch indique au navigateur dans quel espace interpoler les couleurs intermédiaires — mêmes couleurs de départ et d'arrivée, chemins radicalement différents.

La bande sRGB interpole les composantes R, G, B linéairement dans l'espace sRGB non-linéaire. En traversant d'un orange (H ≈ 30°) vers un bleu-violet (H ≈ 260°), les valeurs RVB intermédiaires accumulent une composante verte parasite — le midpoint vire au brun-gris que l'œil perçoit comme « boueux ».

La bande OKLCH travaille en coordonnées Lightness-Chroma-Hue. La luminosité perceptuelle reste constante et la teinte pivote directement de 30° à 260° — les couleurs intermédiaires restent vives et saturées, sans jamais traverser une zone grise.

Au survol du conteneur, une règle :hover active un second jeu de couleurs (vert → rose, H 120° → H 330°) et agrandit chaque bande de 40 px à 50 px avec une transition: 1s. Aucun JavaScript n'est impliqué : l'effet est 100 % CSS, zéro dépendance.

Accessibilité

  • prefers-reduced-motion absent : l'effet ne contient pas de règle @media (prefers-reduced-motion: reduce). La transition de 1 s au survol s'exécute pour tous les utilisateurs. Ajoutez @media (prefers-reduced-motion: reduce) { .colorspace-strip { transition: none; } } si votre contexte l'exige.
  • L'interaction est hover uniquement : aucun état :focus ne déclenche la comparaison. Les utilisateurs au clavier et sur mobile tactile voient l'état par défaut uniquement.
  • Les labels sRGB et OKLCH sont du texte blanc sur fond coloré. L'ombre portée text-shadow renforce la lisibilité, mais le contraste varie selon la position dans le dégradé et ne garantit pas WCAG AA sur tous les tons.
  • Le conteneur .colorspace-container ne porte pas de role ni d'aria-label. Pour une page documentaire, ajoutez role="img" aria-label="Comparaison dégradé sRGB vs OKLCH".
  • Étant 100 % CSS, l'effet est fonctionnel sans JavaScript et ne crée aucun piège au clavier.

Compatibilité navigateur

Nécessite la syntaxe in <color-space> de CSS Color Level 4 dans les dégradés, disponible depuis 2023 dans tous les moteurs modernes.

Chrome 111+✓ Complet
Firefox 113+✓ Complet
Safari 16.2+✓ Complet
Edge 111+✓ Complet
Mobile iOS 16.2+✓ Complet
Android Chrome 111+✓ Complet

Dans les navigateurs antérieurs qui ignorent <code>in oklch</code>, les deux bandes s'affichent avec une interpolation sRGB et paraissent identiques — la comparaison est perdue, mais la page reste fonctionnelle sans erreur.

Le code

Structure HTML à coller dans votre page (CSS + JS disponibles avec un compte premium) :

index.html — structure
<div class="chroma-demo colorspace-container">
  <div class="colorspace-strip colorspace-srgb">
    <span class="cs-label">sRGB</span>
  </div>
  <div class="colorspace-strip colorspace-oklch">
    <span class="cs-label">OKLCH</span>
  </div>
  <span class="colorspace-note">hover : mêmes couleurs, chemins différents</span>
</div>
🔒 Débloquer le code complet — à partir de 2,99 € le 1er mois

HTML + CSS + JS complet, prêt à coller — avec des centaines d'effets premium.

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
.colorspace-srgb { background } oklch(.65 .28 30) → oklch(.6 .25 260) Couleurs de départ et d'arrivée de la bande sRGB (orange → bleu-violet). Utilisez les mêmes valeurs dans la bande OKLCH — seul le mot-clé in srgb / in oklch change.
.colorspace-container:hover strip background oklch(.7 .3 120) → oklch(.55 .28 330) Second jeu de couleurs révélé au survol (vert → rose). Choisissez une paire qui maximise l'écart visible entre les deux modes.
.colorspace-strip { height } 40px Hauteur de chaque bande. 24 px pour un widget compact, 60–80 px pour une vitrine héro ou une démonstration pédagogique.
hover strip height 50px Hauteur des bandes au survol. Égaliser avec la valeur par défaut pour supprimer le zoom, augmenter pour accentuer le reveal.
.colorspace-strip { transition } 1s Durée de la transition hover. 0,3 s = snappy, 2 s = cinématique. transition: none pour les environnements qui coupent les animations.
.colorspace-container { gap } 12px Écart vertical entre les deux bandes. 4–24 px selon la densité souhaitée.
.colorspace-container { background } #0f0f1a Fond du conteneur. Adaptez à la palette de votre page (transparent, couleur brand, etc.).
.colorspace-strip { width } 90% Largeur des bandes. 100 % pour bords à bords, 70 % pour un rendu centré et aéré.

FAQ

sRGB n'est pas perceptuellement uniforme : les mêmes écarts numériques RVB ne correspondent pas aux mêmes écarts visuels. Quand on traverse par exemple un rouge et un bleu, les valeurs RVB intermédiaires accumulent une composante verte qui crée un brun-gris — une couleur que l'œil ne perçoit pas comme « entre » les deux. OKLCH définit les couleurs par Lightness, Chroma et Hue : la teinte pivote directement d'un angle à l'autre, sans jamais traverser une zone désaturée.
Non. Color Space Morph est 100 % CSS : deux règles linear-gradient avec des espaces d'interpolation différents et une pseudo-classe :hover. Aucun script, aucune librairie, aucun framework requis. Copiez le HTML et le CSS — c'est immédiatement prêt.
Les deux bandes s'affichent avec une interpolation sRGB et paraissent identiques — la comparaison est perdue, mais la page reste fonctionnelle sans erreur. La syntaxe in <color-space> dans les dégradés est disponible depuis Chrome 111, Firefox 113 et Safari 16.2 (2023).