まくまくSassノート
色(カラー値)を扱う関数
2018-12-30

Color 型変数の定義方法

CSS では下記のような色の指定方法があります。

color: red;                      // 定数名で指定
color: #ff0000;                  // 16進数で指定
color: rgb(255, 0, 0);           // 10進数で指定
color: rgba(255, 0, 0, 0.3);     // 10進数で指定(α値あり)
color: hsl(0, 100%, 50%);        // HSL指定
color: hsla(0, 100%, 50%, 0.3);  // HSL指定(α値あり)

CSS の rgba 関数は、上記のように4つのパラメータをとりますが、Sass の rgba 関数はより柔軟なパラメータ指定が可能になっています。

color: rgba(red, 0.3);       // 定数名 + α値
color: rgba(#ff0000, 0.3);   // 16進数 + α値

また、Sass では名前付きパラメータを使って値を指定できるので、各パラメータの意味を明確にすることができます。

color: hsl($hue: 0, $saturation: 100%, $lightness: 50%);  // 赤になる

色を調整するための関数

明度を調整する lighten() / darken()

lighten 関数、darken 関数を使用すると、ある色をパーセンテージ指定で明るくしたり暗くしたりすることができます。

SCSS コード内での記述変換後
background: lighten(red, 30%); #ff9999
background: lighten(red, 20%); #ff6666
background: lighten(red, 10%); #ff3333
background: red; #ff0000
background: darken(red, 10%); #cc0000
background: darken(red, 20%); #990000
background: darken(red, 30%); #660000

彩度を調整する saturate() / desaturate()

saturate 関数、desaturate 関数を使用すると、ある色の彩度をパーセンテージ指定で上げたり下げたりすることができます。

SCSS コード内での記述変換後
background: saturate(royalblue, 30%); #235aff
background: saturate(royalblue, 20%); #2b5ef7
background: saturate(royalblue, 10%); #3664ec
background: royalblue; #4169e1
background: desaturate(royalblue, 10%); #4c6fd6
background: desaturate(royalblue, 20%); #5774cb
background: desaturate(royalblue, 30%); #627ac0

2つの色の中間色を作成する mix()

mix 関数を使用すると、指定した2色の中間色を作成することができます。 第3引数($weight パラメータ)を使って、1色目の比率を指定することもできます(デフォルトは 50%)。

SCSS コード内での記述変換後
background: mix(white, black); gray
background: mix(green, yellow); #80c000
background: mix(white, black, 75%); #bfbfbf
background: mix(white, black, 25%); #404040
2018-12-30