1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
---
title: <blend-mode>
slug: Web/CSS/blend-mode
tags:
- CSS
- Reference
- Type
translation_of: Web/CSS/blend-mode
---
<div>{{CSSRef}}</div>
<p>Le type <strong><code><blend-mode></code></strong> est un ensemble de mots-clés qui permettent de décrire les différents modes de fusion (<em>blend modes</em>). Ce type de valeur est utilisé pour les propriétés {{cssxref("background-blend-mode")}} et {{cssxref("mix-blend-mode")}}.</p>
<p>Un mode de fusion est une méthode de calcul permettant de déterminer la couleur finale d'un pixel lorsque plusieurs couches sont empilées. Chaque mode de fusion prend en entrée la couleur du premier plan et de l'arrière-plan (dans cet ordre) pour calculer la valeur de la couleur obtenue. Le résultat final est la couche visible obtenue lorsque les différents plans ont été fusionnés avec les modes de fusion.</p>
<h2 id="Syntaxe">Syntaxe</h2>
<p>Une valeur de type de données <code><blend-mode></code> s'écrit avec l'un des mots-clés suivants.</p>
<h3 id="Valeurs_possibles">Valeurs possibles</h3>
<dl>
<dt><code>normal</code></dt>
<dd>
<p>La couleur finale obtenue est la couleur du premier plan, quelle que soit la couleur de l'arrière-plan. On obtient ainsi un effet similaire à la superposition de deux feuilles de papier opaques.</p>
<div class="hidden" id="normal">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: normal;
}</pre>
</div>
<p>{{EmbedLiveSample('normal', "300", "300")}}</p>
</dd>
<dt><code>multiply</code></dt>
<dd>
<p>La couleur finale est obtenue en multipliant les couleurs du premier plan et de l'arrière-plan.<br>
Si une des couches est noire, le résultat obtenu sera une image noire. Si une des couches est blanche, cela ne modifiera pas l'autre image. On obtient ainsi un effet semblable à la superposition de deux transparents.</p>
<div class="hidden" id="multiply">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: multiply;
}</pre>
</div>
<p>{{EmbedLiveSample('multiply', "300", "300")}}</p>
</dd>
<dt><code>screen</code></dt>
<dd>
<p>La couleur finale est obtenue en : inversant les couleurs des deux plans, en les multipliant et en inversant la couleur obtenue. Si une des couches est noire, le résultat obtenu sera l'image de l'autre couche. Si une des couches est blanche, l'image obtenue sera blanche. L'effet obtenu est semblable à la projection de deux images sur un écran.</p>
<div class="hidden" id="screen">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: screen;
}</pre>
</div>
<p>{{EmbedLiveSample('screen', "300", "300")}}</p>
</dd>
<dt><code>overlay</code></dt>
<dd>La couleur finale est celle décrite par <code>multiply</code> si l'arrière-plan est plus sombre ou de <code>screen</code> si elle est plus claire. On a un effet semblable à <code>hard-light</code> avec les couches interverties.
<div class="hidden" id="overlay">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: overlay;
}</pre>
</div>
<p>{{EmbedLiveSample('overlay', "300", "300")}}</p>
</dd>
<dt><code>darken</code></dt>
<dd>
<p>La couleur finale est la couleur la plus sombre des deux couches.</p>
<div class="hidden" id="darken">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: darken;
}</pre>
</div>
<p>{{EmbedLiveSample('darken', "300", "300")}}</p>
</dd>
<dt><code>lighten</code></dt>
<dd>
<p>La couleur finale est la couleur la plus claire des deux couches.</p>
<div class="hidden" id="lighten">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: lighten;
}</pre>
</div>
<p>{{EmbedLiveSample('lighten', "300", "300")}}</p>
</dd>
<dt><code>color-dodge</code></dt>
<dd>
<p>La couleur finale est obtenue en divisant la couleur de l'arrière-plan avec l'inverse de la couleur du premier plan.<br>
Un premier-plan noir n'entraînera aucun changement.</p>
<div class="hidden" id="color-dodge">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: color-dodge;
}</pre>
</div>
<p>{{EmbedLiveSample('color-dodge', "300", "300")}}</p>
</dd>
<dt><code>color-burn</code></dt>
<dd>
<p>La couleur finale est obtenu en inversant la couleur de l'arrière-plan qui sera divisée par la couleur du premier-plan puis inversée. Un premier-plan blanc n'entraînera aucun changement et un premier-plan qui possède exactement l'inverse de l'arrière-plan entraînera une image noire.</p>
<div class="hidden" id="color-burn">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: color-burn;
}</pre>
</div>
<p>{{EmbedLiveSample('color-burn', "300", "300")}}</p>
</dd>
<dt><code>hard-light</code></dt>
<dd>
<p>La couleur finale est le résultat de <code>multiply</code> si le premier plan est plus sombre ou de <code>screen</code> si la couleur de premier-plan est plus claire. L'effet obtenu est équivalent à <code>overlay</code> avec les deux couches interverties.</p>
<div class="hidden" id="hard-light">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: hard-light;
}</pre>
</div>
<p>{{EmbedLiveSample('hard-light', "300", "300")}}</p>
</dd>
<dt><code>soft-light</code></dt>
<dd>
<p>La couleur finale obtenue est semblable à <code>hard-light</code>, mais est plus douce<em><code>.</code></em></p>
<div class="hidden" id="soft-light">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: soft-light;
}</pre>
</div>
<p>{{EmbedLiveSample('soft-light', "300", "300")}}</p>
</dd>
<dt><code>difference</code></dt>
<dd>
<p>La couleur finale est obtenue en soustrayant la couleur la plus sombre à la couleur la plus claire. Une couche noire n'aura aucun effet et une couche blanche inversera l'autre image.</p>
<div class="hidden" id="difference">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: difference;
}</pre>
</div>
<p>{{EmbedLiveSample('difference', "300", "300")}}</p>
</dd>
<dt><code>exclusion</code></dt>
<dd>
<p>La couleur finale obtenue est semblable à <code>difference</code> avec moins de contraste. Comme pour <code>difference</code>, une couche noire n'aura aucun effet et une couche blanche inversera l'autre couche.</p>
<div class="hidden" id="exclusion">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: exclusion;
}</pre>
</div>
<p>{{EmbedLiveSample('exclusion', "300", "300")}}</p>
</dd>
<dt><code>hue</code></dt>
<dd>
<p>La couleur finale aura la teinte de la couleur du premier-plan et la saturation et la luminosité de la couleur de l'arrière-plan.</p>
<div class="hidden" id="hue">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: hue;
}</pre>
</div>
<p>{{EmbedLiveSample('hue', "300", "300")}}</p>
</dd>
<dt><code>saturation</code></dt>
<dd>
<p>La couleur finale aura la saturation de la couleur du premier plan et la teinte et la luminosité de la couleur de l'arrière-plan.</p>
<div class="hidden" id="saturation">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: saturation;
}</pre>
</div>
<p>{{EmbedLiveSample('saturation', "300", "300")}}</p>
</dd>
<dt><code>color</code></dt>
<dd>
<p>La couleur finale aura la teinte et la saturation du premier plan et la luminosité de l'arrière-plan. Cet effet conserve les niveaux de gris et peut être utilisé pour coloriser le premier plan.</p>
<div class="hidden" id="color">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: color;
}</pre>
</div>
<p>{{EmbedLiveSample('color', "300", "300")}}</p>
</dd>
<dt><code>luminosity</code></dt>
<dd>
<p>La couleur finale aura la luminosité de la couleur du premier plan et la teinte et la saturation de la couleur de l'arrière-plan.</p>
<div class="hidden" id="luminosity">
<pre class="brush: html"><div id="div"></div></pre>
<pre class="brush: css">#div {
width: 300px;
height: 300px;
background: url('https://mdn.mozillademos.org/files/8543/br.png'),
url('https://mdn.mozillademos.org/files/8545/tr.png');
background-blend-mode: luminosity;
}</pre>
</div>
<p>{{EmbedLiveSample('luminosity', "300", "300")}}</p>
</dd>
</dl>
<h2 id="L'interpolation_des_modes_de_fusion">L'interpolation des modes de fusion</h2>
<p>Il n'y a pas d'interpolation pour les modes de fusion. Toute transition se produit brutalement.</p>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">État</th>
<th scope="col">Commentaires</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('Compositing', '#ltblendmodegt', '<blend-mode>')}}</td>
<td>{{Spec2('Compositing')}}</td>
<td>Définition initiale.</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p class="hidden">Pour contribuer à ces données de compatibilité, vous pouvez envoyer une <em>pull request</em> sur ce dépôt: <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</p>
<p>{{Compat("css.types.blend-mode")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>Les propriétés utilisant des valeurs de ce type :
<ul>
<li>{{cssxref("background-blend-mode")}}</li>
<li>{{cssxref("mix-blend-mode")}}</li>
</ul>
</li>
<li><a href="https://en.wikipedia.org/wiki/Blend_modes">Les modes de fusion sur Wikipédia (en anglais)</a></li>
<li><a href="/fr/docs/Web/CSS/Reference">La référence CSS</a></li>
</ul>
|