CSS color-mix() プレビュー (補間空間の比較)
カラー
現代の CSS では `color-mix(in <space>, A <p>, B)` で 2 色を混ぜられますが、選ぶ補間空間によって結果が大きく変わります。赤と青を `srgb` で混ぜると濁った紫グレーに、同じ比率を `oklch` で混ぜると鮮やかなマゼンタに、`hsl` ではホイールの短い経路を取り水色を通ります。このツールは同じ 2 色を、よく使われる 8 つの空間 (`srgb`, `srgb-linear`, `hsl`, `hwb`, `lab`, `lch`, `oklab`, `oklch`) で並べてプレビューします — ブラウザのネイティブ `color-mix()` を使うのでスタイルシートの結果と完全に一致します。各カードには現在比率の大きなスウォッチ、1×1 キャンバスにピクセルを描いて読み戻した sRGB hex、A→B の経路全体を示す 11 段階グラデーションが並びます。スライダーを動かすと 8 つの経路が同時に動きます。コピーアイコンで対応する CSS 宣言をすぐに取得できます。
補間空間について
color-mix() は指定された空間で 2 色を線形補間します。sRGB は彩度の低い灰色を通ります。srgb-linear は物理的な光合成 (写真合成) に合います。HSL/HWB/LCH/OKLCH はホイール上で色相を補間 — デフォルトは短い弧。OKLab/OKLCH (Björn Ottosson, 2020) は知覚均一 — 数値的に等しいステップが視覚的にも等しく見えます。各スウォッチ下の hex はブラウザが mix を解決した後の 1×1 キャンバスから読み戻した値なので getComputedStyle() と一致します。
使い方
- ピッカーまたは hex で色 A と色 B を指定。
- 比率スライダーをドラッグ — 値は混合中の A の割合 (30% なら A 30% + B 70%)。
- 8 枚のカードを比較: スウォッチは現在比率の結果、ストリップはその空間での A→B フルグラデーション。
- コピーアイコンで `background: color-mix(in <space>, ...);` 宣言を取得。
- プリセットを試してみる — 赤↔青、黄↔青は 'srgb がくすんで見えるのはなぜ' の典型例。
よくある質問
- なぜ空間ごとに結果が全く違うのですか?
- color-mix() の線形補間は選んだ座標系での直線です。sRGB キューブは対角線が灰色なので、その直線が彩度の低い中間点を通ります。OKLCH では同じ直線が知覚輝度を保ちつつ色相だけ回転するので鮮やかさが保たれます。HSL は色相環の短い経路を取り、A と B の間にない色まで通り過ぎることがあります。どれも間違いではなく、幾何構造が異なるだけです。
- どの空間を使うべきですか?
- ほとんどの UI 作業では `oklch` か `oklab` が知覚的に最良です — 明度が均一で、混ぜても鮮やかで、濁った中間点がありません。`srgb-linear` は物理的な光合成 (写真合成) に正確です。`srgb` は古いツールや 2023 以前の CSS の結果と一致します。`hsl` は A と B が彩度・明度を共有する場合のみ色相ベースのパレットに適しています。鮮やかな色のペアにそのまま `srgb` を使うのは避けてください — 意図的にくすんだ見た目が欲しい場合を除いて。
- 表示される hex はどれくらい正確?
- ブラウザが計算した値そのものです。色の式をキャンバスの `fillStyle` に設定し、1×1 ピクセルを描画してから `getImageData()` で実際の sRGB バイトを読み出しています。そのため表示される hex は、同じ mix に対する `getComputedStyle()` の値と一致します — 8 ビットキャンバス量子化によるチャンネル当たり ±1 の丸め誤差内で。
- hue-shortest と hue-longest は?
- CSS は色相ベースの空間 (hsl, hwb, lch, oklch) で `longer hue` / `shorter hue` / `increasing hue` / `decreasing hue` 修飾子をサポートします。このツールはカードをすっきり保つためデフォルト (shorter hue) を使います。長い経路が必要なら自分で修飾子を付けてください: `color-mix(in oklch longer hue, A 50%, B)` — 同じ色、ホイールの反対方向。
- ブラウザ対応は?
- color-mix() は Chrome/Edge 111+ (2023年3月)、Safari 16.2+ (2022年12月)、Firefox 113+ (2023年5月) で利用可能。2023 年以降のすべての主要ブラウザがここに挙げたすべての空間をサポートします。未対応バナーが出る場合はそれより古いブラウザです — CSS 自体は解析されますが正しい色を生成しません。
関連ツール
色覚シミュレーター
8 種類の色覚異常(CVD)で画像がどう見えるかを再現。
CSS Box Shadow ジェネレーター
複数レイヤーで CSS box-shadow を視覚的にデザイン — リアルタイムプレビュー + CSS / Tailwind 出力。
カラーフォーマット変換
任意の色を HEX・RGB・HSL・HSV・OKLCH・CSS 変数で一括変換。
CSS グラデーションジェネレーター
線形・放射状 CSS グラデーションを多段カラーストップでデザインし、コードをコピー。
カラーパレット ジェネレーター
基準色から 6 種類のスキームで調和の取れたパレットを作成。
カラーコントラスト チェッカー
文字/背景のコントラストを WCAG AA・AAA 基準でチェック。