color-mix()

CSSだけで色を混ぜる、薄める、パレットを作る。

色の混合

2色と混合比率を自由に変更できます。color-mix(in srgb, ...) の結果をリアルタイムでプレビュー。

#2563eb
50%
#f43f5e
混合結果
color-mix(in srgb, #2563eb 50%, #f43f5e)

透明度の制御

color-mix(in srgb, color N%, transparent) で不透明度をCSSだけで制御できます。

#2563eb
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
color-mix(in srgb, #2563eb 50%, transparent)

パレット生成

ベースカラーに white / black を混ぜて tint / shade のスケールを生成します。

220°
75%
100
200
300
400
500
600
700
800
900
--base: hsl(220 75% 50%); --100: color-mix(in srgb, var(--base) 95%, white); --500: var(--base); --900: color-mix(in srgb, var(--base) 5%, black);

色空間の比較

同じ2色でも色空間によって混合結果が異なります。特に oklch は知覚的に均一な混合を実現します。

#2563eb
#f43f5e
srgb
srgb-linear
oklch
hsl
color-mix(in srgb, #2563eb 50%, #f43f5e) color-mix(in oklch, #2563eb 50%, #f43f5e)

実用コード例

color-mix() を使った実践的なパターン。コードをクリックでコピーできます。

ホバーで暗くする

#2563eb
.btn:hover { background: color-mix(in srgb, #2563eb 80%, black); }

半透明ボーダー

#1a1a1a
半透明ボーダー
.card { border: 1px solid color-mix(in srgb, #1a1a1a 15%, transparent); }

テーマカラーのバリエーション

#8b5cf6
Light Base Dark
--color-light: color-mix(in srgb, #8b5cf6 40%, white); --color-dark: color-mix(in srgb, #8b5cf6 70%, black);