Bootstrap は、スタイルとコンポーネントをテーマとする広範なカラー システムによってサポートされています。これにより、あらゆるプロジェクトのより包括的なカスタマイズと拡張が可能になります。
テーマの色
すべての色のサブセットを使用して、配色を生成するための小さなカラー パレットを作成します。これは、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
);
これらの色を変更する方法については、Sass マップとループのドキュメントをご覧ください。
全ての色
Bootstrap のすべての色は、ファイル内の Sass 変数および Sass マップとして利用できscss/_variables.scss
ます。ファイル サイズの増加を避けるため、これらの変数ごとにテキストまたは背景色のクラスを作成しません。代わりに、これらの色のサブセットをテーマ パレットに選択します。
色をカスタマイズするときは、必ずコントラスト比を監視してください。以下に示すように、各メイン カラーに 3 つのコントラスト比を追加しました。1 つはスウォッチの現在の色用、もう 1 つは対白用、もう 1 つは対黒用です。
サスに関する注意事項
Sass はプログラムで変数を生成できないため、すべてのティントとシェーディングの変数を自分で手動で作成しました。中間値 (例: $blue-500
) を指定し、カスタム カラー関数を使用して、Sass のmix()
カラー関数を介して色を濃く (明るく) したり、陰影 (暗く) したりします。
and の使用mix()
はlighten()
and とはdarken()
異なります。前者は指定された色を白または黒とブレンドしますが、後者は各色の明度値を調整するだけです。この CodePen デモ に示されているように、結果はより完全な色のスイートになります。
tint-color()
および関数は、生成する混合色ごとに段階的なパーセンテージ値を指定する変数と一緒にshade-color()
使用します。完全なソース コードについては、およびファイルを参照してください。mix()
$theme-color-interval
scss/_functions.scss
scss/_variables.scss
カラー Sass マップ
Bootstrap のソース Sass ファイルには 3 つのマップが含まれており、色とその 16 進値のリストをすばやく簡単にループできます。
$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,
"black": $black,
"white": $white,
"gray": $gray-600,
"gray-dark": $gray-800
);
マップ内の値を追加、削除、または変更して、他の多くのコンポーネントでの使用方法を更新します。残念ながら、現時点では、すべてのコンポーネントがこの Sass マップを利用しているわけではありません。今後のアップデートでは、これを改善するよう努めます。それまでは、${color}
変数とこの Sass マップを利用する計画を立ててください。
例
これらを Sass で使用する方法は次のとおりです。
.alpha { color: $purple; }
.beta {
color: $yellow-300;
background-color: $indigo-900;
}
色と背景のユーティリティ クラスも、色の値を設定color
およびbackground-color
使用するために使用できます。500
ユーティリティの生成
v5.1.0 で追加Bootstrap にはすべての色変数のユーティリティが含まれているわけではありませんが、ユーティリティ API と v5.1.0 で追加された拡張 Sass マップを使用してこれらを自分でcolor
生成できます。background-color
- まず、関数、変数、ミックスイン、ユーティリティがインポートされていることを確認してください。
- 関数を使用して、
map-merge-multiple()
複数の Sass マップを新しいマップにすばやくマージします。 - この新しい結合マップをマージして、
{color}-{level}
クラス名を持つユーティリティを拡張します。
.text-purple-500
上記の手順を使用してテキスト カラー ユーティリティ (例: ) を生成する例を次に示します。
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
$all-colors: map-merge-multiple($blues, $indigos, $purples, $pinks, $reds, $oranges, $yellows, $greens, $teals, $cyans);
$utilities: map-merge(
$utilities,
(
"color": map-merge(
map-get($utilities, "color"),
(
values: map-merge(
map-get(map-get($utilities, "color"), "values"),
(
$all-colors
),
),
),
),
)
);
@import "bootstrap/scss/utilities/api";
.text-{color}-{level}
これにより、すべての色とレベルに対して新しいユーティリティが生成されます。他のユーティリティとプロパティについても同じことができます。