Tailwind CSS で color-mix() を使う

任意値、theme 拡張、@apply 経由で color-mix() を Tailwind v3/v4 に統合。各 Tailwind バージョンの推奨パターンを示します。

Advanced

詳細な説明

color-mix() と Tailwind

Tailwind は独自パレットを出荷しますが、ランタイム派生色や 1 回限りの 混合が必要な場面で color-mix() が完璧に補完します。

任意値構文 (Tailwind 3 と 4)

<button class="bg-[color-mix(in_oklch,theme(colors.blue.500),white_20%)]">
  ライトニングされた青
</button>

重要:Tailwind の任意値パーサーは空白を許容しないため、アンダースコア で置換します (in_oklch)。ブラウザはトップレベルトークン間の アンダースコアを許容し、空白として扱います。

Tailwind v4 — @theme 統合

Tailwind v4 では @theme でトークンを定義し、color-mix() で パレットステップを派生できます:

@theme {
  --color-brand: #2563eb;
  --color-brand-hover: color-mix(in oklch, var(--color-brand), black 12%);
  --color-brand-soft:  color-mix(in oklch, var(--color-brand) 16%, white);
}

これで bg-brandbg-brand-hoverbg-brand-soft を組み込み パレットステップのように使えます。

派生色を使った @apply

.btn {
  @apply text-white;
  background: var(--color-brand);
}
.btn:hover {
  background: color-mix(in oklch, var(--color-brand), black 12%);
}

Tailwind コンバーターと組み合わせる

既存 CSS パレットを Tailwind トークンへ移行する際は、 Tailwind CSS コンバーター が各色の 最寄りユーティリティを示し、color-mix() がカスタム派生値を引き受けます。

ユースケース

tailwind.config に毎シェードを定義せずに、ホバー暗化やテーマティントのユーティリティクラスを Tailwind に追加。非 Tailwind コードと共有するデザイントークンに特に有用。

試してみる — CSS color-mix() Generator

フルツールを開く