🪄

【Tailwind和訳】EFFECTS/Mix Blend Mode

2021/10/24に公開

この記事について

この記事は、EFFECTS/Mix Blend Modeの記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。

Mix Blend Mode

要素が背景とどのように調和するかを制御するためのユーティリティ。

クラス プロパティ
mix-blend-normal mix-blend-mode: normal;
mix-blend-multiply mix-blend-mode: multiply;
mix-blend-screen mix-blend-mode: screen;
mix-blend-overlay mix-blend-mode: overlay;
mix-blend-darken mix-blend-mode: darken;
mix-blend-lighten mix-blend-mode: lighten;
mix-blend-color-dodge mix-blend-mode: color-dodge;
mix-blend-color-burn mix-blend-mode: color-burn;
mix-blend-hard-light mix-blend-mode: hard-light;
mix-blend-soft-light mix-blend-mode: soft-light;
mix-blend-difference mix-blend-mode: difference;
mix-blend-exclusion mix-blend-mode: exclusion;
mix-blend-hue mix-blend-mode: hue;
mix-blend-saturation mix-blend-mode: saturation;
mix-blend-color mix-blend-mode: color;
mix-blend-luminosity mix-blend-mode: luminosity;

使い方

mix-blend-{mode}ユーティリティーを使って、要素のコンテンツを背景とどのように混ぜ合わせるかを制御します。

Image from Gyazo

<div class="bg-green-300 ...">
  <div class="mix-blend-multiply bg-amber-300 ..."></div>
</div>

レスポンシブ

特定のブレイクポイントで mix-blend-mode プロパティを制御するには、既存の mix-blend-mode ユーティリティーに{screen}: というプレフィックスを追加します。例えば、md:mix-blend-overlay を使うと、中程度の画面サイズ以上でのみ mix-blend-overlay ユーティリティを適用します。

<div class="mix-blend-multiply md:mix-blend-overlay ...">
  <!-- ... -->
</div>

Tailwind のレスポンシブデザイン機能についての詳細は、レスポンシブデザインのドキュメントをご参照ください。

カスタマイズ

バリアント

デフォルトでは、mix-blend-mode のユーティリティにはレスポンシブバリアントのみが生成されます。

tailwind.config.js ファイルの variants セクションにある mixBlendMode プロパティを変更することで、ミックスブレンドモードのユーティリティのために生成されるバリアントをコントロールすることができます。

例えば、このコンフィグはホバーとフォーカスのバリアントも生成します。

tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       mixBlendMode: ['hover', 'focus'],
      }
    }
  }

無効化

mix-blend-mode ユーティリティをプロジェクトで使用する予定がない場合は、設定ファイルの corePlugins セクションで mixBlendMode プロパティを false に設定することで、完全に無効化することができます。

tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     mixBlendMode: false,
    }
  }

Discussion

ログインするとコメントできます