Modes de fusion en CSS théorie des couleurs et application pratique

Learn CSS: Le guide complet

Nous avons créé un guide complet pour vous aider à apprendre le CSS, que vous soyez débutant avec les bases ou que vous souhaitiez explorer un CSS plus avancé..

Modes de fusion

Vous connaissez peut-être les «modes de fusion» si vous êtes un utilisateur de Photoshop; ils vous permettent de combiner des calques de différentes manières et vous permettent de jouer avec beaucoup de plaisir. Les modes de fusion dans CSS, cependant, ne sont pas supportés universellement, mais ils sont certainement en route.

Dans ce didacticiel, nous allons apprendre le fonctionnement des modes de fusion et les différentes manières de les implémenter à l'aide de CSS..

Les bases du mélange

Si vous n'avez jamais rencontré de modes de fusion, leur mode de fonctionnement peut sembler un peu insaisissable. Faisons le décomposer.

Que signifie réellement "mode de fusion"?

Les logiciels de conception proposent des modes de mélange depuis des années, mais le concept de mode de mélange est en réalité utilisé depuis bien plus longtemps, avant même que les ordinateurs ne soient inventés..

La partie "mélange" de modes de fusion fait référence à la prise de deux couleurs et à leur combinaison d’une manière ou d’une autre. Plus précisément, nous prenons deux cartes de pixels et les fusionnons.

Comment que le mélange ait lieu est la partie «mode» de modes de fusion. Comment ces couleurs interagissent-elles? Puisque nous travaillons avec l’espace numérique, nous pouvons utiliser n’importe quelle formule mathématique et l’appliquer aux deux entrées pour obtenir une sortie..

Une image non traitée d'une méduseLa même méduse avec une couche orange solide (notre "source") placée dessusVoici notre couche source avec le mode de fusion «écran» appliqué

Vous faites le calcul

Si vous vous sentez vraiment ambitieux, consultez le document de composition officiel du W3C FX Task Force qui explique les implémentations mathématiques de chacun des différents modes de fusion. Il démontre une formule utilisée pour calculer le mélange plus. 

Cm = B (Cb, Cs)
  • Ici, Cm est la couleur résultante après le mélange. 
  • B fait référence à la fonction de mélange. 
  • le Cb variable est la couleur de fond. 
  • Et le Cs variable est la couleur source. 

Toutes les couleurs sont basées sur une échelle 0-1, qui mappe directement sur une valeur RVB 0-255.

Il existe deux catégories de modes de fusion. Les premiers sont considérés comme «non séparables» et les seconds (sans surprise) comme «séparables». L'algorithme sous-jacent détermine si un mode de fusion est considéré comme séparable ou non. Si l'algorithme traite chacun des canaux de couleur distincts (rouge, vert et bleu), il est considéré comme non séparable. S'il utilise chacun des canaux de couleur individuellement, il est considéré comme séparable..

Tous les modes de fusion ne peuvent renvoyer que des couleurs comprises entre 0 et 255. Tout élément situé au-delà de cette plage dans l'une ou l'autre direction sera coupé à cette plage. Lorsque vous voyez de grandes zones de blanc ou de noir sur une zone fusionnée, il est probable que ces zones sont coupées..

Types de modes de fusion disponibles en CSS

Les modes de fusion CSS, lorsqu'ils sont pris en charge, fonctionnent de deux manières différentes. Le premier type de mode de fusion est appelé mode de fusion de fond. Cette propriété vous permet de mélanger tous les arrière-plans d'un même élément.. 

Si vous avez défini, par exemple, plusieurs images d’arrière-plan (pris en charge par tous les navigateurs au-delà de IE8), la première image d’arrière-plan sera traitée comme un calque source et toute image ajoutée par la suite sera traitée comme un calque d’arrière-plan, située en dessous.. 

L'ajout d'une couleur d'arrière-plan (qui doit figurer en dernier dans la liste) place un autre calque en bas. La couleur sera traitée comme le calque d'arrière-plan et les images comme les calques source. Prenez la règle de style suivante, par exemple:

div background: url (img / pattern.png), url (img / jellyfish.jpg), # f07e32; 

Cela nous donne:

Et nous pouvons ensuite ajouter des modes de fusion dans le mélange:

div background: url (img / pattern.png), url (img / jellyfish.jpg), # f07e32; background-blend-mode: écran; 

Voici deux divs utilisant ces styles, l’un sans le mode de fusion, le second avec:

Un type de mode de fusion secondaire, mode mix-blend, permet de mélanger des éléments indépendants. La spécification est plus spécifique à propos de l'implémentation, mais le mélange se produit dans des «contextes d'empilement».

C'est ce qui arrive quand on utilise mode mix-blend, essayer de mélanger (très peu) l’image d’arrière-plan et la couleur dans le même élément:

.my-overlay-element background-color: # f07e32; background-image: url (img / jellyfish.jpg); // Remarque: cette image ne sera pas mélangée avec la couleur d'arrière-plan. mode mélange-mélange: couleur-dodge; 

Ci-dessous, vous trouverez une démo interactive pour explorer les effets d'un mode de fusion donné..

Modes de mélange séparables

Examinons les modes de fusion disponibles en examinant la formule utilisée et en les appliquant chacun au cercle rouge placé au-dessus de nos méduses..

Aucun mode de mélange appliqué

Écran:

B (Cb, Cs) = 1 - [(1 - Cb) x (1 - Cs)]

Screen est nommé d'après le concept de projection simultanée de plusieurs expositions de photos sur un seul écran. La couleur obtenue est toujours au moins aussi claire que les couches mélangées.

Mode de mélange d'écran

Assombrir:

B (Cb, Cs) = min (Cb, Cs)

Sélectionne le plus sombre des deux couleurs.

Assombrir le mode de mélange

Alléger:

B (Cb, Cs) = max (Cb, Cs)

Sélectionne le plus clair des deux couleurs.

Alléger le mode de fusion

Couleur dodge:

si (Cb == 0) B (Cb, Cs) = 0 sinon si (Cs == 1) B (Cb, Cs) = 1 sinon B (Cb, Cs) = min (1, Cb / (1 - Cs) )

Color Dodge éclaircit la couleur de fond pour refléter la couleur source.

Mode mélange d'esquive de couleur

Couleur brûlent:

si (Cb == 1) B (Cb, Cs) = 1 sinon si (Cs == 0) B (Cb, Cs) = 0 sinon B (Cb, Cs) = 1 - min (1, (1 - Cb) / Cs)

La brûlure de couleur assombrit la couleur de fond, augmentant le contraste entre la source et l'arrière-plan.

Mode de mélange des couleurs

Lumière forte:

si (Cs <= 0.5) B(Cb, Cs) = Multiply(Cb, 2 x Cs) else B(Cb, Cs) = Screen(Cb, 2 x Cs -1) 

Applique «multiplie» sur les couleurs claires et «écran» sur les couleurs plus foncées. Essentiellement, la «lumière dure» est le contraire de la «superposition», que nous examinerons ensuite..

Mode de mélange de lumière dure

Recouvrir:

B (Cb, Cs) = HardLight (Cs, Cb)

Applique «écran» sur les couleurs claires et «multiplie» sur les couleurs plus foncées; écrit de la même manière que «lumière dure», sauf que les arguments de la fonction sont inversés.

Mode de mélange superposé

Lumière douce:

si (Cs <= 0.5) B(Cb, Cs) = Cb - (1 - 2 x Cs) x Cb x (1 - Cb) else B(Cb, Cs) = Cb + (2 x Cs - 1) x (D(Cb) - Cb) with if(Cb <= 0.25) D(Cb) = ((16 * Cb - 12) x Cb + 4) x Cb else D(Cb) = sqrt(Cb)

Ce mode de fusion applique une variante de «multiplier» sur les valeurs sombres et une variante de «écran» sur des valeurs plus claires (similaire à l'écran)..

Dans cet algorithme, nous voyons une fonction secondaire qui se situe dans le avec clause basée sur la valeur bleue présente dans la couleur. Le résultat final est généralement un effet beaucoup plus doux que celui de "superposition".

Mode de mélange Sof Light

Différence:

B (Cb, Cs) = | Cb - Cs |

La différence prend la valeur de différence absolue entre les deux couleurs, ce qui a l'effet d'un négatif photo..

Mode de fusion Différence

Exclusion:

B (Cb, Cs) = Cb + Cs - 2 x Cb x Cs

Le mode d'exclusion a le même effet de base que le mode «différence», à ceci près que des couleurs similaires produisent une valeur moyenne de contraste inférieure (plutôt qu'une valeur plus sombre)..

Mode de mélange d'exclusion

Modes de fusion non séparables

Les modes de fusion «non séparables» utilisent quelques fonctions supplémentaires, dont une ClipColor une fonction, SetLum fonction, et Sam une fonction. 

Note importante: Aucune version de Safari ne prend en charge les modes de fusion «Teinte», «Saturation», «Couleur» ou «Luminosité» avec mode mix-blend ou mode de fusion de fond.

ClipColor (C) l = Lum (C) n = min (Cred, Cgreen, Cblue) x = max (Cred, Cgreen, Cblue) si n < 0.0 Cred = l + (((Cred - l) * l) / (l - n)) Cgreen = l + (((Cgreen - l) * l) / (l - n)) Cblue = l + (((Cblue - l) * l) / (l - n)) if x > 1,0 Cred = l + (((Cred - l) * (1 - l)) / (x - l)) Cgreen = l + (((Cgreen - l) * (1 - l)) / (x - l) ) Cblue = l + (((Cblue - l) * (1 - l)) / (x - l)) renvoie C SetLum (C, l) d = l - Lum (C) Cred = Cred + d Cgreen = Cgreen + d Cblue = Cblue + d retour ClipColor (C) Sat (C) = max (Cred, Cgreen, Cblue) - min (Cred, Cgreen, Cblue)

Noter la min, milieu, et max Les fonctions utilitaires se réfèrent aux valeurs minimale, moyenne et maximale. (Mid est ne pas la moyenne des trois valeurs.) Les valeurs Cred, Cgreen, et Cblue fait référence aux valeurs rouge, verte et bleue présentes dans la couleur C.

Avec ces définitions, nous pouvons maintenant examiner les modes de fusion non séparables.

Teinte:

B (Cb, Cs) = SetLum (SetSat (Cs, Sat (Cb)), Lum (Cb))

Ce mode applique la teinte du calque source à la luminance et à la saturation de la couleur de fond.

Mode de mélange de teinte

Saturation:

B (Cb, Cs) = SetLum (SetSat (Cb, Sat (Cs)), Lum (Cb))

Ce mode fait la même chose que le mode «teinte», mais applique plutôt la saturation du premier plan à la teinte et la luminance de l'arrière-plan..

Mode de mélange de saturation

Couleur:

B (Cb, Cs) = SetLum (Cs, Lum (Cb))

Applique la teinte et la saturation du premier plan à la luminance de l'arrière-plan.

Mode de fusion des couleurs

Luminosité:

B (Cb, Cs) = SetLum (Cb, Lum (Cs))

Ce mode applique la luminosité du calque source à la teinte et à la saturation du calque de fond.

Mode de mélange de luminosité

Conclusion

Les modes de fusion dans CSS offrent une nouvelle et excitante flexibilité pour la conception et des expériences esthétiques uniques. Comprendre les mathématiques et la théorie des couleurs qui s'appliquent à chacun des modes de fusion disponibles vous fournit un ensemble d'outils plus holistique..

Que ferez-vous lorsque les navigateurs continueront d’ajouter un support pour les modes de fusion??

Liens connexes

  • Découvrez ce que les auteurs font avec les actions Photoshop et les modes de fusion sur Envato Market
  • En savoir plus sur  sur le réseau de développeurs Mozilla
  • Compositing And Blending In CSS par Sara Soueidan