color-mix()を使って簡単にカラーパレットを作成してみる
こんにちは 😀
今回は CSS のcolor-mix()
関数を使ってこんな感じのカラーパレットを作成してみたいと思います。
color-mix()
とは?
簡単に説明すると、color-mix()
は、2 つの色を組み合わせた結果を返してくれる CSS の関数です。
まぁ、百聞は一見にしかずということで、早速サンプルを見てみましょう。
%で表示されている値が 2 色を組み合わせるときの配合の割合で、それぞれの結果を右に表示しています。
コードで注目する点は以下の部分です。
.mixed-1 {
background-color: color-mix(in srgb, blue, red);
}
.mixed-2 {
background-color: color-mix(in srgb, blue, red 30%);
}
color-mix()
はcolor-mix(色の表現方法, 組み合わせたい色1, 組み合わせたい色2)
というように使用し、それぞれの色には配合させたい割合を指定することができます。先ほど示した例でも red の割合を減らすことで表示される色の青色成分が強くなっていることが確認できると思います。
また、色の表現方法というのは、RGB 色モデルで表現される#ffffff
やrgb(255, 255, 255)
や HSL 色モデルで表現されるhsl(0, 0%, 100%)
みたいなやつのことで、color-mix()
ではcolorspace
と呼ばれ、srgb
, srgb-linear
, lab
, oklab
, xyz
, xyz-d50
, xyz-d65
, hsl
, hwb
, lch
, oklch
の中から一つ指定する必要があります。
カラーパレットを作成してみる
それではカラーパレットの作成をしてみましょう。先ほど説明したように、組み合わせる 2 色の配分を調整できるため、それを利用してグラデーション的に色を生成していきます。
:root {
--original-color: #04174f;
}
li:nth-child(1) div {
background-color: color-mix(in srgb, var(--original-color) 10%, white);
}
li:nth-child(2) div {
background-color: color-mix(in srgb, var(--original-color) 25%, white);
}
li:nth-child(3) div {
background-color: color-mix(in srgb, var(--original-color) 50%, white);
}
li:nth-child(4) div {
background-color: color-mix(in srgb, var(--original-color) 75%, white);
}
li:nth-child(5) div {
background-color: color-mix(in srgb, var(--original-color) 100%, white);
}
上記のように元となる色を指定し、その色を白色と割合を調整しながら組み合わせることで簡単にカラーパレットを生成できます。
最後に
いかがだったでしょうか。color-mix()
を知っておくと色の生成や管理が少し楽になるかもしれません。
それでは、最後までお読みいただきありがとうございました。
Discussion