CSS - ミックスブレンドモード: 色のブレンドの力を解放する

こんにちは、Webデザイナー志望者たちとCSS愛好家の皆さん!今日は、CSSのmix-blend-modeの fascinante な世界に飛び込みます。あなたの近所の親切なコンピュータ教師として、このカラフルな旅をガイドするのが楽しみです。では、仮想の絵の具を手に取り、ブレンディングを始めましょう!

CSS - Mix Blend Mode

mix-blend-modeとは?

技術的な詳細に飛び込む前に、まずmix-blend-modeとは何かを理解しましょう。デジタルアーティストとして、今まで見たことのない方法で色をブレンドできる魔法の絵の具を持っていると想像してみてください。これが、CSSのmix-blend-modeが私たちに提供するものです!

mix-blend-modeは、要素のコンテンツがその親要素のコンテンツと要素の背景とどのようにブレンドされるべきかを決定するCSSプロパティです。まるで特別な眼鏡をかけて、全新的な光や色の組み合わせで世界を見るようなものです!

可能な値

では、利用可能な様々なブレンドモードを見てみましょう。これらはデジタルアートツールキットの異なるブラシと考えてください:

ブレンドモード 説明
normal デフォルトモード。ブレンドは適用されません。
multiply 色を乗算し、より暗い画像になります。
screen 色の逆数を乗算し、より明るい画像になります。
overlay multiplyとscreenモードを組み合わせます。
darken ブレンド色とベース色のより暗い方を選択します。
lighten ブレンド色とベース色のより明るい方を選択します。
color-dodge ベース色を明るくし、ブレンド色を反映します。
color-burn ベース色を暗くし、ブレンド色を反映します。
hard-light ブレンド色に基づいて乗算またはスクリーンを適用します。
soft-light ブレンド色に基づいて色を暗くまたは明るくします。
difference 両色のうちより暗い方からより明るい方を引きます。
exclusion differenceに似ていますが、コントラストが低くなります。
hue ブレンド色の色相を、ベース色の彩度と明度と組み合わせます。
saturation ブレンド色の彩度を、ベース色の色相と明度と組み合わせます。
color ブレンド色の色相と彩度を、ベース色の明度と組み合わせます。
luminosity ブレンド色の明度を、ベース色の色相と彩度と組み合わせます。

対象

mix-blend-modeプロパティはあらゆる要素に適用できます。しかし、画像、テキスト、SVG要素に最もよく使用されます。デザインの多様なツールキットを持つスイスアーミーナイフのようなものです!

文法

mix-blend-modeの文法は非常にシンプルです:

element {
mix-blend-mode: <blend-mode>;
}

ここで、<blend-mode>は上記の表の値のいずれかです。簡単ですね!

CSS mix-blend-mode - 異なるmix-blend-mode値

では、コードの例で手を_dirtyにしてみましょう。まずは簡単なシナリオから:重なる2つのdiv要素のブレンド。

<div class="container">
<div class="box red"></div>
<div class="box blue"></div>
</div>
.container {
position: relative;
width: 200px;
height: 200px;
}

.box {
position: absolute;
width: 100px;
height: 100px;
}

.red {
background-color: red;
top: 0;
left: 0;
}

.blue {
background-color: blue;
top: 50px;
left: 50px;
mix-blend-mode: screen;
}

この例では、赤いボックスと青いボックスがあります。青いボックスは赤いボックスの上に配置され、mix-blend-modeが'screen'に設定されています。これにより、ボックスが重なる部分が明るくなります。

テーブルの異なる値にmix-blend-modeを変更して、結果がどのように変わるか試してみてください。まるでカラフルな科学実験のようです!

CSS mix-blend-mode - HTMLとの連携

では、mix-blend-modeがHTML要素でどのように動作するか見てみましょう。テキストが画像の上に表示されるシンプルな例を作成します。

<div class="image-container">
<img src="landscape.jpg" alt="美しい風景">
<h1>Hello, World!</h1>
</div>
.image-container {
position: relative;
}

.image-container img {
width: 100%;
height: auto;
}

.image-container h1 {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 48px;
color: white;
mix-blend-mode: difference;
}

この例では、画像の上に白いテキストがあります。mix-blend-modeを'difference'に設定すると、テキストの色が画像の下敷きの色に基づいて変わる、目を引く効果が生まれます。

CSS mix-blend-mode - SVGとの連携

SVG要素もmix-blend-modeの恩恵を受けることができます。重なるSVGの円のシンプルな例を作成しましょう。

<svg width="200" height="200">
<circle cx="70" cy="70" r="60" fill="red" />
<circle cx="130" cy="130" r="60" fill="blue" mix-blend-mode="multiply" />
</svg>

このSVGには、赤い円と青い円があります。青い円には'multiply'のmix-blend-modeが設定されており、重なる部分が暗くなります。

CSS mix-blend-mode - テキストとの連携

最後に、テキストで楽しみましょう!mix-blend-modeを使用してカラフルなテキスト効果を作成します。

<div class="text-container">
<h1>CSS is Awesome!</h1>
</div>
.text-container {
background: linear-gradient(to right, red, blue);
padding: 20px;
}

.text-container h1 {
font-size: 48px;
color: white;
mix-blend-mode: difference;
}

これにより、背景のグラデーションに基づいてテキストの色が変わる、鮮やかなテキスト効果が生まれます。

そして、皆さん!CSSのmix-blend-modeの魔法の世界を探求しました。このプロパティをマスターする鍵は実験です。さまざまなブレンドモードを試してみて、素晴らしい効果を創造してみてください。

このカラフルな旅を終えるにあたり、有名な画家のボブ・ロスの言葉を思い出します:「間違いない、ただの幸せな偶然だ」。それでは、恐れずにブレンドし、CSS mix-blend-modeであなた自身の幸せな偶然を創造してください!

Credits: Image by storyset