Color (カラー)
Bootstrap はどんなプロジェクトでもカスタマイズ可能な、拡張性のあるカラーシステムによって成り立っています。
Theme colors
Bootstrap ではいくつかの色を選出して小さなカラーパレットを作成し、カラースキームを生成しています。これらは scss/_variables.scss
にある Sass 変数や Sass マップとして利用可能です。
利用可能な全ての色は Sass マップ $theme-colors
から利用可能です。
$theme-colors: (
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
);
これらの色のカスタマイズについては, our Sass maps and loops docs をご覧ください。
All colors
Bootstrap の全ての色は scss/_variables.scss
の Sass 変数や Sass マップ として利用できます。ファイルサイズの増大を防ぐために、これらの色にはそれぞれテキスト色や背景色としてのクラスを設けていません。代わりに選出した色を theme palette として用意しています。
色をカスタマイズする際には、コントラスト比に注目してください。以下に示すように、それぞれのメインカラーに3つのコントラスト比を用意しています。それぞれ、スウォッチの現在の色に対して、白色に対して、そして黒色に対してです。
Notes on Sass
Sass はプログラム的手法で変数を生成することができません。そのため Bootstrap では全てのティントおよびシェードに対して色の変数を用意しています。これらはまず中央の値を設定し (例: $blue-500
), カスタムカラー関数内で Sass の mix()
関数を用いて明るくしたり暗くしたりすることで生成しています。
mix()
は lighten()
や darken()
とは異なります。前者は色を白や黒と混ぜていますが、後者は色の明度を変更しているだけです。結果として、shown in this CodePen demo より完成度の高い色の組み合わせを実現しています。
tint-color()
や shade-color()
関数は、生成する色の段階ごとに用意された $theme-color-interval
変数と mix()
しています。ソースコードは scss/_functions.scss
と scss/_variables.scss
ファイルを参照してください。
Color Sass maps
Bootstrap のソース Sass ファイルには、色のリストとその hex 値を簡単にループできる3つのマップがあります。
$colors
は全てのベース (500) カラーを持っています。$theme-colors
は意味のある名前を持ったテーマカラーを持っています。$grays
はグレーの全ての明るさ違いの色を持っています。
scss/_variables.scss
内には、Bootstrap の色変数と Sass マップがあります。以下が $colors
Sass マップの例です:
$colors: (
"blue": $blue,
"indigo": $indigo,
"purple": $purple,
"pink": $pink,
"red": $red,
"orange": $orange,
"yellow": $yellow,
"green": $green,
"teal": $teal,
"cyan": $cyan,
"white": $white,
"gray": $gray-600,
"gray-dark": $gray-800
);
コンポーネントで使われている色の変更は、マップへ値を追加・削除・編集することで行なえます。
ただし、全ての コンポーネントがこの Sass マップを利用しているわけではありません。今後のアップデートでは改良が行われる予定です。それまでは、この Sass マップに ${color}
変数を追加することを検討してください。
Example
以下が Sass でこれらを使う例です:
.alpha { color: $purple; }
.beta {
color: $yellow-300;
background-color: $indigo-900;
}
Color と background を用いることでも、500
カラー値を使った color
と background-color
の設定を行うことができます。