--- title: slug: Web/CSS/blend-mode tags: - Blend modes - CSS - CSS Data Type - Compositing - Compositing and Blending - Data Type - Reference - color - ブレンドモード - 合成 browser-compat: css.types.blend-mode translation_of: Web/CSS/blend-mode ---
{{CSSRef}}

<blend-mode>CSSデータ型で、要素が重なったときにどのように色が現れるかを記述します。 {{cssxref("background-blend-mode")}} または {{cssxref("mix-blend-mode")}} プロパティで使用されます。

構文

<blend-mode> データ型は、以下に挙げたキーワードのうちの一つで定義します。

normal

下の色が何であるかに関わらず、上の色が最終的な色になります。
この効果は 2 枚の不透明の紙が重なっているようなものです。

{{ EmbedLiveSample('normal_example', "300", "300") }}

multiply

上の色と下の色を掛け合わせた結果が最終的な色になります。
黒いレイヤーは最終的に黒いレイヤーに近づけ、白いレイヤーは変化をもたらしません。
この効果は2枚の透明なフィルムに印刷された画像を重ね合わせたようなものです。

{{ EmbedLiveSample('multiply_example', "300", "300") }}

screen

色を反転して乗算を行い、さらに色を反転した結果が最終的な色になります。
黒いレイヤーは変化をもたらしません。白いレイヤーは、最終的に白いのレイヤーへ近づけます。
この効果は2枚の画像がスクリーンに投影された状況に似ています。

{{ EmbedLiveSample('screen_example', "300", "300") }}

overlay
下の色が暗ければ multiply、下の色が明るければ screen の結果が最終的な色になります。。
このブレンドモードは hard-light と同等ですが、レイヤーは逆です。

{{ EmbedLiveSample('overlay_example', "300", "300") }}

darken

色成分ごとに最も暗い値が最終的な値になります。

{{ EmbedLiveSample('darken_example', "300", "300") }}

lighten

色成分ごとに最も明るい値が最終的な値になります。

{{ EmbedLiveSample('lighten_example', "300", "300") }}

color-dodge

下の色を、反転した上の色で除算した結果が、最終的な色になります。
黒い前景は変化をもたらしません。背景色を反転した色を持つ前景は、完全に明るい色に導きます。
このブレンドモードは screen に似ていますが、完全に明るい色に近づけるためには背景色を反転した色と同程度に明るい前景が必要です。

{{ EmbedLiveSample('color-dodge_example', "300", "300") }}

color-burn

反転した下の色を上の色で除算して、さらに反転した結果が最終的な色になります。
白い背景は変化をもたらしません。背景色を反転した色を持つ前景は、最終的に黒い画像へ近づけます。
このブレンドモードは multiply に似ていますが、最終的に画像を暗くするためには背景色を反転した色と同程度に暗い前景が必要です。

{{ EmbedLiveSample('color-burn_example', "300", "300") }}

hard-light

上の色が暗い色であれば multiply 、明るい色であれば screen の結果が最終的な色になります。
このブレンドモードは overlay と同じですが、レイヤーが入れ替わっています。
この効果は、背景に強烈なスポットライトを当てた状況に似ています。

{{ EmbedLiveSample('hard-light_example', "300", "300") }}

soft-light

最終的な色は hard-light に似ていますが、よりソフトになります。
このブレンドモードは hard-light に似ています。
この効果は、背景に拡散光のスポットライトを当てた状況に似ています。

{{ EmbedLiveSample('soft-light_example', "300", "300") }}

difference

2 つの色のうち明るい色から、暗い色を減算した結果が最終的な色になります。
黒いレイヤーは変化をもたらしません。白いレイヤーは、もうひとつのレイヤーの色を反転します。

{{ EmbedLiveSample('difference_example', "300", "300") }}

exclusion

最終的な色は difference に似ていますが、コントラストが低くなります。
difference と同様に、黒いレイヤーは変化をもたらしません。白いレイヤーは、もうひとつのレイヤーの色を反転します。

{{ EmbedLiveSample('exclusion_example', "300", "300") }}

hue

最終的な色は上の色の色調を持ちますが、彩度および明度は下の色の値を使用します。

{{ EmbedLiveSample('hue_example', "300", "300") }}

saturation

最終的な色は上の色の彩度を持ちますが、色調および明度は下の色の値を使用します。
彩度を持たない純粋なグレーの背景は、効果がありません。

{{ EmbedLiveSample('saturation_example', "300", "300") }}

color

最終的な色は上の色の色調および彩度を持ちますが、明度は下の色の値を使用します。
この効果はグレーレベルを保持しており、前景に色をつけるために使用できます。

{{ EmbedLiveSample('color_example', "300", "300") }}

luminosity

最終的な色は上の色の明度を持ちますが、色調および 彩度は下の色の値を使用します。
このブレンドモードは color と同じですが、レイヤーが入れ替わっています。

{{ EmbedLiveSample('luminosity_example', "300", "300") }}

解説

ブレンドモードは、適用されるレイヤー間のそれぞれのピクセルにおいて前景色と背景色を取り、計算を行い、新しい色の値を返します。

ブレンドモード同士の変化は補完されません。すべての変更が直接反映されます。

ブレンドモードの比較

次の例の <div> には、 Firefox のロゴと線形グラデーションの 2 つの背景画像を設定してあります。その下に <select> メニューがあって background-blend-mode を変更することができ、それが <div> に適用されますので、様々なブレンドモードの効果を比較することができます。

HTML

<div></div>
<p>ブレンドモードを選択してください。</p>
<select>
  <option selected>normal</option>
  <option>multiply</option>
  <option>screen</option>
  <option>overlay</option>
  <option>darken</option>
  <option>lighten</option>
  <option>color-dodge</option>
  <option>color-burn</option>
  <option>hard-light</option>
  <option>soft-light</option>
  <option>difference</option>
  <option>exclusion</option>
  <option>hue</option>
  <option>saturation</option>
  <option>color</option>
  <option>luminosity</option>
</select>

CSS

div {
  width: 300px;
  height: 300px;
  background: url(https://media.prod.mdn.mozit.cloud/attachments/2020/07/29/17350/3b4892b7e820122ac6dd7678891d4507/firefox.png) no-repeat center,
  linear-gradient(to bottom, blue, orange);
}

JavaScript

const selectElem = document.querySelector('select');
const divElem = document.querySelector('div');

selectElem.addEventListener('change', () => {
  divElem.style.backgroundBlendMode = selectElem.value;
});

結果

{{EmbedLiveSample('Blend_mode_comparison', '100%', 370)}}

仕様書

仕様書 状態 備考
{{ SpecName('Compositing', '#ltblendmodegt', '<blend-mode>') }} {{ Spec2('Compositing') }} 初回定義

ブラウザーの互換性

{{Compat}}

関連情報

様々なブレンドモードの他のウェブサイトにおける解説