ブレンドモード

CSS ポッドキャスト - 024: ブレンドモード

Duotone は写真で人気のある色処理であり、1 つはハイライト用、もう 1 つは暗い色用の対照的な 2 つの色のみで画像が構成されているように見せます。しかし、CSS ではどのようにしてこれを行っているのでしょうか。

ブレンドモードや、すでに学んだその他の手法(フィルタ疑似要素など)を使用すると、どの画像にもこの効果を適用できます。

ブレンドモードとは

ブレンドモードは、Photoshop などのデザインツールで一般的に使用され、2 つ以上のレイヤの色を混ぜて合成効果を作成します。色の組み合わせを変更することで、非常に興味深い視覚効果を実現できます。 ブレンドモードをユーティリティとして使用することもできます。たとえば、背景が白い画像を分離して、透明な背景を持つように見せることができます。

デザインツールで使用可能なブレンドモードのほとんどは、CSS を使って使用できます。使用するには、mix-blend-mode プロパティまたは background-blend-mode プロパティを使用します。mix-blend-mode は要素全体にブレンディングを適用し、background-blend-mode は要素の背景にブレンディングを適用します。

1 つの要素に複数の背景があり、その背景をすべて互いに溶け込ませるには、background-blend-mode を使用します。

mix-blend-mode は、疑似要素を含む要素全体に影響します。 ユースケースの 1 つがデュオトーン画像の最初の例です。この画像では、疑似要素を介して要素にカラーレイヤが適用されます。

ブレンドモードは、分離可能と分離不可の 2 つのカテゴリに分類されます。分離可能なブレンドモードでは、RGB などの各色成分が個別に考慮されます。非分離ブレンドモードでは、すべての色コンポーネントが均等に考慮されます。

ブラウザの互換性

mix-blend-mode

対応ブラウザ

  • 41
  • 79
  • 32
  • 8

ソース

background-blend-mode

対応ブラウザ

  • 35
  • 79
  • 30
  • 8

ソース

分離可能なブレンドモード

標準

これはデフォルトのブレンドモードです。要素が他の要素とどのようにブレンドされるかについては、何も変更されません。

多層

multiply ブレンドモードは、複数の透明度を重ね合わせるようなものです。白のピクセルは透明で、黒いピクセルは黒で見えます。中間にある値は輝度(light)の値を乗算します。 つまり、ライトは大幅に明るく、暗く、暗くなります。ほとんどの場合、結果は暗くなります。

.my-element {
  mix-blend-mode: multiply;
}

画面

screen を使用すると、light 値が乗算されます(multiply とは逆の効果)。ほとんどの場合、より明るい結果が得られます。

.my-element {
  mix-blend-mode: screen;
}

オーバーレイ

このブレンドモード(overlay)は、multiplyscreen を組み合わせたものです。ベースのダークカラーは暗くなり、ベースライトの色は明るくなります。50% グレーなど、中間色の色は影響を受けません。

.my-element {
  mix-blend-mode: overlay;
}

暗くして

darken ブレンドモードでは、ソース画像と背景画像の暗い色の明度を比較し、その 2 つのうち最も暗いものを選択します。これは、各カラーチャネルの明度ではなく RGB 値を比較することで行われます(multiplyscreen など)。darkenlighten では、多くの場合、この比較プロセスから新しい色値が作成されます。

.my-element {
  mix-blend-mode: darken;
}

明る

lighten を使用すると、darken とはまったく逆の処理が行われます。

.my-element {
  mix-blend-mode: lighten;
}

ドッジ色

color-dodge を使用すると、ソースカラーを反映するために背景色が明るくなります。このモードでは、真の黒色は効果を持ちません。

.my-element {
  mix-blend-mode: color-dodge;
}

焼き付きカラー

color-burn ブレンドモードは multiply ブレンドモードとよく似ていますが、コントラストが強まるため、中間調の彩度が高くなります。

.my-element {
  mix-blend-mode: color-burn;
}

ハードライト

hard-light を使用すると、鮮やかなコントラストを作成できます。 このブレンドモードでは、輝度値をスクリーンまたは乗算します。 ピクセル値が 50% グレーより明るい場合、あたかもスクリーンで処理されたかのように画像が明るくなります。暗くなれば 2 倍になります。

.my-element {
  mix-blend-mode: hard-light;
}

ソフトライト

soft-light ブレンドモードは、overlay のそれほど厳しくないバージョンです。コントラストが少なくて同じように機能します。

.my-element {
  mix-blend-mode: soft-light;
}

差異

difference の仕組みをわかりやすく説明するには、フォトネガティブの仕組みと少し似ています。difference ブレンドモードでは、各ピクセルの差分値を受け取り、明るい色を反転します。色の値が同じ場合は黒になります。 値の差異が反転します。

.my-element {
  mix-blend-mode: difference;
}

除外対象

exclusion を使用する方法は difference とよく似ていますが、同じピクセルに対して黒を返すのではなく 50% のグレーを返すので、コントラストが少なく、よりソフトな出力になります。

.my-element {
  mix-blend-mode: exclusion;
}

分離不可のブレンドモード

ブレンドモードは、HSL のコンポーネントと考えることができます。各メソッドは、アクティブ レイヤから特定のコンポーネント値を取得し、他のコンポーネント値と混合します。

Hue

hue ブレンドモードでは、ソースカラーの色相を取得し、背景色の彩度と明度に適用します。

.my-element {
  mix-blend-mode: hue;
}

飽和度

これは hue と同様に機能しますが、ブレンドモードとして saturation を使用すると、ソースカラーの彩度が背景色の色相と明度に適用されます。

.my-element {
  mix-blend-mode: saturation;
}

color ブレンドモードでは、ソースカラーの色相と彩度、および背景の色の明度から色が作成されます。

.my-element {
  mix-blend-mode: color;
}

光度

最後に、luminositycolor の逆数です。ソースカラーの明度と背景カラーの色相と彩度を使用して色を作成します。

.my-element {
  mix-blend-mode: luminosity;
}

isolation プロパティ

対応ブラウザ

  • 41
  • 79
  • 36
  • 8

ソース

isolation プロパティの値を isolate に設定すると、新しいスタッキング コンテキストが作成され、背景レイヤとブレンドされなくなります。Z-Index モジュールで学習したように、新しいスタッキング コンテキストを作成すると、そのレイヤがベースレイヤになります。つまり、親レベルのブレンドモードは適用されなくなりますが、isolation: isolate が設定されている要素内の要素は引き続きブレンドできます。

バックグラウンド プロパティがすでに分離されているため、background-blend-mode では機能しません。

理解度チェック

ブレンドモードに関する知識をテストする

CSS ブレンドモードは次のうちどれですか。

差異
🎉
明る
🎉
明るくする
もう一度考えてみましょう。
ダレン
もう一度考えてみましょう。
多層
🎉
オーバーレイ
🎉

異なる色をさまざまな方法でブレンドする場合、どのスタイルのブレンドモードが必要ですか。

分離可能
これらのブレンドモードでは、カラーチャネルのターゲット エフェクトを利用できます
分離不可
もう一度お試しください。分離不可はカラーチャネルを認識しません。