Skip to main content Skip to docs navigation

Bootstrapは、スタイルとコンポーネントにテーマを設定する広範なカラーシステムによってサポートされています。これにより、あらゆるプロジェクトのより包括的なカスタマイズと拡張が可能になります。

Added in v5.3.0

Bootstrapのカラーパレットは、v5.3.0で拡大し、より微妙になり続けています。secondaryおよびtertiaryテキストと背景色、さらにテーマカラーの{color}-bg-subtle{color}-border-subtle{color}-text-emphasisの新しい変数を追加しました。これらの新しい色は、SassおよびCSS変数を介して利用できます(ただし、カラーマップやユーティリティクラスではありません)。ライトモードとダークモードのような複数のカラーモードでカスタマイズしやすくするという明確な目標を持っています。これらの新しい変数は:rootでグローバルに設定され、新しいダークカラーモード用に調整されていますが、元のテーマカラーは変更されていません。

-rgbで終わる色は、rgb()およびrgba()カラーモードで使用するためのred, green, blue値を提供します。たとえば、rgba(var(--bs-secondary-bg-rgb), .5)などです。

注意! 新しいsecondaryおよびtertiary色と、既存のsecondaryテーマカラー、およびlightとdarkテーマカラーとの間に、混乱の可能性があります。これはv6で解決される予定です。

DescriptionSwatchVariables

Body — コンポーネントを含むデフォルトの前景(色)と背景。

 

--bs-body-color
--bs-body-color-rgb

 

--bs-body-bg
--bs-body-bg-rgb

Secondary — より明るいテキストにはcolorオプションを使用します。区切り線や無効なコンポーネントの状態を示すにはbgオプションを使用します。

 

--bs-secondary-color
--bs-secondary-color-rgb

 

--bs-secondary-bg
--bs-secondary-bg-rgb

Tertiary — さらに明るいテキストにはcolorオプションを使用します。ホバー状態、アクセント、ウェルの背景をスタイル設定するにはbgオプションを使用します。

 

--bs-tertiary-color
--bs-tertiary-color-rgb

 

--bs-tertiary-bg
--bs-tertiary-bg-rgb

Emphasis — より高いコントラストのテキスト用。背景には適用されません。

 

--bs-emphasis-color
--bs-emphasis-color-rgb

Border — コンポーネントの境界線、区切り線、ルール用。rgba()値で背景とブレンドするには--bs-border-color-translucentを使用します。

 

--bs-border-color
--bs-border-color-rgb

Primary — メインテーマカラー。ハイパーリンク、フォーカススタイル、コンポーネントとフォームのアクティブ状態に使用されます。

 

--bs-primary
--bs-primary-rgb

 

--bs-primary-bg-subtle

 

--bs-primary-border-subtle

Text

--bs-primary-text-emphasis

Success — ポジティブまたは成功したアクションと情報に使用されるテーマカラー。

 

--bs-success
--bs-success-rgb

 

--bs-success-bg-subtle

 

--bs-success-border-subtle

Text

--bs-success-text-emphasis

Danger — エラーと危険なアクションに使用されるテーマカラー。

 

--bs-danger
--bs-danger-rgb

 

--bs-danger-bg-subtle

 

--bs-danger-border-subtle

Text

--bs-danger-text-emphasis

Warning — 非破壊的な警告メッセージに使用されるテーマカラー。

 

--bs-warning
--bs-warning-rgb

 

--bs-warning-bg-subtle

 

--bs-warning-border-subtle

Text

--bs-warning-text-emphasis

Info — 中立的で有益なコンテンツに使用されるテーマカラー。

 

--bs-info
--bs-info-rgb

 

--bs-info-bg-subtle

 

--bs-info-border-subtle

Text

--bs-info-text-emphasis

Light — よりコントラストの低い色のための追加テーマオプション。

 

--bs-light
--bs-light-rgb

 

--bs-light-bg-subtle

 

--bs-light-border-subtle

Text

--bs-light-text-emphasis

Dark — よりコントラストの高い色のための追加テーマオプション。

 

--bs-dark
--bs-dark-rgb

 

--bs-dark-bg-subtle

 

--bs-dark-border-subtle

Text

--bs-dark-text-emphasis

新しい色の使用

これらの新しい色は、CSS変数とユーティリティクラスを介してアクセスできます。--bs-primary-bg-subtle.bg-primary-subtleのように、変数を使用して独自のCSSルールを作成したり、クラスを介してスタイルを迅速に適用したりできます。ユーティリティは、色に関連付けられたCSS変数で構築されており、これらのCSS変数をダークモード用にカスタマイズするため、デフォルトでカラーモードにも適応します。

Example element with utilities
html
<div class="p-3 text-primary-emphasis bg-primary-subtle border border-primary-subtle rounded-3">
  Example element with utilities
</div>

テーマカラー

すべての色のサブセットを使用して、カラースキームを生成するための小さなカラーパレットを作成します。これらは、Sass変数およびBootstrapのscss/_variables.scssファイルのSassマップとしても利用できます。

Primary
Secondary
Success
Danger
Warning
Info
Light
Dark

これらの色はすべて、Sassマップ$theme-colorsとして利用できます。

$theme-colors: (
  "primary":    $primary,
  "secondary":  $secondary,
  "success":    $success,
  "info":       $info,
  "warning":    $warning,
  "danger":     $danger,
  "light":      $light,
  "dark":       $dark
);

これらの色を変更する方法については、Sassマップとループのドキュメントをご覧ください。

すべての色

すべてのBootstrap色は、scss/_variables.scssファイルのSass変数およびSassマップとして利用できます。ファイルサイズの増加を避けるため、これらの各変数のテキストまたは背景色クラスは作成しません。代わりに、テーマパレットのこれらの色のサブセットを選択します。

色をカスタマイズする際は、必ずコントラスト比を監視してください。以下に示すように、各メイン色に3つのコントラスト比を追加しました。スウォッチの現在の色に対するもの、白に対するもの、黒に対するものです。

$blue#0d6efd
$blue-100
$blue-200
$blue-300
$blue-400
$blue-500
$blue-600
$blue-700
$blue-800
$blue-900
$indigo#6610f2
$indigo-100
$indigo-200
$indigo-300
$indigo-400
$indigo-500
$indigo-600
$indigo-700
$indigo-800
$indigo-900
$purple#6f42c1
$purple-100
$purple-200
$purple-300
$purple-400
$purple-500
$purple-600
$purple-700
$purple-800
$purple-900
$pink#d63384
$pink-100
$pink-200
$pink-300
$pink-400
$pink-500
$pink-600
$pink-700
$pink-800
$pink-900
$red#dc3545
$red-100
$red-200
$red-300
$red-400
$red-500
$red-600
$red-700
$red-800
$red-900
$orange#fd7e14
$orange-100
$orange-200
$orange-300
$orange-400
$orange-500
$orange-600
$orange-700
$orange-800
$orange-900
$yellow#ffc107
$yellow-100
$yellow-200
$yellow-300
$yellow-400
$yellow-500
$yellow-600
$yellow-700
$yellow-800
$yellow-900
$green#198754
$green-100
$green-200
$green-300
$green-400
$green-500
$green-600
$green-700
$green-800
$green-900
$teal#20c997
$teal-100
$teal-200
$teal-300
$teal-400
$teal-500
$teal-600
$teal-700
$teal-800
$teal-900
$cyan#0dcaf0
$cyan-100
$cyan-200
$cyan-300
$cyan-400
$cyan-500
$cyan-600
$cyan-700
$cyan-800
$cyan-900
$gray-500#adb5bd
$gray-100
$gray-200
$gray-300
$gray-400
$gray-500
$gray-600
$gray-700
$gray-800
$gray-900

$black #000

$white #fff

Sassに関する注意事項

Sassはプログラム的に変数を生成できないため、すべてのティントとシェードの変数を手動で作成しました。中間点の値(例: $blue-500)を指定し、カスタムカラー関数を使用して、Sassのmix()カラー関数を介して色をティント(明るく)またはシェード(暗く)します。

mix()の使用は、lighten()およびdarken()と同じではありません。前者は指定された色を白または黒とブレンドしますが、後者は各色の明度値のみを調整します。その結果、このCodePenデモで示されているように、より完全な色のスイートになります。

tint-color()およびshade-color()関数は、$theme-color-interval変数と一緒にmix()を使用します。この変数は、生成する各混合色のステップ化されたパーセンテージ値を指定します。完全なソースコードについては、scss/_functions.scssおよびscss/_variables.scssファイルをご覧ください。

Color Sassマップ

BootstrapのソースSassファイルには、色とその16進値のリストをすばやく簡単にループできるように、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,
  "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ユーティリティクラスも、500カラー値を使用してcolorbackground-colorを設定するために利用できます。

ユーティリティの生成

Added in v5.1.0

Bootstrapには、すべてのカラー変数のcolorbackground-colorユーティリティは含まれていませんが、ユーティリティAPIとv5.1.0で追加された拡張Sassマップを使用して、これらを自分で生成できます。

  1. まず、関数、変数、ミックスイン、ユーティリティをインポートしたことを確認します。
  2. map-merge-multiple()関数を使用して、新しいマップで複数のSassマップを迅速にマージします。
  3. この新しい結合マップをマージして、{color}-{level}クラス名でユーティリティを拡張します。

上記の手順を使用してテキストカラーユーティリティ(例: .text-purple-500)を生成する例を次に示します。

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/variables-dark";
@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}ユーティリティが生成されます。他のユーティリティとプロパティについても同じことができます。