背景ユーティリティ(Background) v5.0.0カラーユーティリティより分離
background-color
で意味を伝え、グラデーションで装飾を追加する。
※"v5.0.0"での変更はv5.0.0-alpha版、v5.0.0-beta版での変更も含みます。
※"v5.3.0"での変更はv5.3.0-alpha版での変更も含みます。
.visually-hidden
クラスで非表示にした追加テキストなどの代替手段を入れるように心がけて下さい。
背景色(Background Color)v5.1.0スタイル変更、v5.3.0クラス追加
文字色のクラスと同様、要素の背景色を任意の背景色クラスで簡単に設定できる。背景色ユーティリティでは color
を設定していないので、場合によっては .text-{color}
ユーティリティを使用する必要がある。文字色と背景色を一括で設定したい場合は、高いコントラストの color
を持つ.text-bg-{themecolor}
ヘルパーを使用する。
$theme-colors
Sassマップから生成された .bg-*
などの背景色ユーティリティは、まだカラーモードに対応していないが、.bg-*-subtle
ユーティリティはすべて対応している。これはv6で解決される予定。
1.段落全体に背景色を設定する
背景色の種類色が見やすいように余白や枠を設けています
.bg-primary
.bg-primary-subtle
v5.3.0追加.bg-secondary
.bg-secondary-subtle
v5.3.0追加.bg-success
.bg-success-subtle
v5.3.0追加.bg-danger
.bg-danger-subtle
v5.3.0追加.bg-warning
.bg-warning-subtle
v5.3.0追加.bg-info
.bg-info-subtle
v5.3.0追加.bg-light
.bg-light-subtle
v5.3.0追加.bg-dark
.bg-dark-subtle
v5.3.0追加.bg-body
v5.0.0-alpha1追加(※<body>
の背景色と同じ配色).bg-body-secondary
v5.3.0追加.bg-body-tertiary
v5.3.0追加.bg-black
v5.1.0追加.bg-white
.bg-transparent
設定例
<div class="p-3 mb-2 bg-primary text-white">...</div>
2.文章の一部分に背景色を設定する
見本
Primary:.bg-primary
デフォルトの文字色と白色の文字の場合。さらにリンクを貼った(←リンクを貼った)場合。
淡いPrimary:.bg-primary-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Secondary:.bg-secondary
デフォルトの文字色と白色の文字の場合。さらにリンクを貼った(←リンクを貼った)場合。
淡いSecondary:.bg-secondary-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Success:.bg-success
デフォルトの文字色と白色の文字の場合。さらにリンクを貼った(←リンクを貼った)場合。
淡いsuccess:.bg-success-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Danger:.bg-danger
デフォルトの文字色と白色の文字の場合。さらにリンクを貼った(←リンクを貼った)場合。
淡いDanger:.bg-danger-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Warning:.bg-warning
デフォルトの文字色と白色の文字の場合。さらにリンクを貼った(←リンクを貼った)場合。
淡いWarning:.bg-warning-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Info:.bg-info
デフォルトの文字色と白色の文字の場合。さらにリンクを貼った(←リンクを貼った)場合。
淡いInfo:.bg-info-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Light:.bg-light
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
淡いLight:.bg-light-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Dark:.bg-dark
デフォルトの文字色(←デフォルトの文字色)と白色の文字の場合。さらにリンクを貼った場合。
淡いDark:.bg-dark-subtle
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
二次Body:.bg-body-secondary
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
三次Body:.bg-body-tertiary
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
Black:.bg-black
デフォルトの文字色(←デフォルトの文字色)と白色の文字の場合。さらにリンクを貼った場合。
White:.bg-white
デフォルトの文字色と白色の文字(←白色の文字)の場合。さらにリンクを貼った場合。
設定例
<p><span class="bg-primary">デフォルトの文字色</span>と<span class="bg-primary text-white">白色の文字</span>の場合。さらに<a href="#" class="bg-primary">リンクを貼った</a>場合。
※定義済の文字色と背景色の配色を別ページに掲載
【設定】
<div>
や<span>
などの要素に.bg-{themecolor}(-{subtle})
か.bg-{color}
(上記の「背景色の種類」から選択)を入れる{themecolor}
は、primary
,secondary
,success
,danger
,warning
,info
,light
,dark
のいずれかを選択{color}
は、black
,white
,body
,body-secondary
,body-tertiary
,transparent
のいずれかを選択
- 背景色によっては、
.text-white
など見やすい文字色を追加する必要あり(文字色と背景色を一括で設定したい場合は、文字&背景色ヘルパーを使用)
【注意】
.bg-{themecolor}-subtle
,.bg-body
,.bg-body-secondary
,.bg-body-tertiary
はライトモードとダークモードで色が変わる- 色の設定を変更する場合は
- ライトモード:
scss/_variables.scss
内の${themecolor}-bg-{subtle}
,$body(-{secondary|tertiary})-bg
の値 - ダークモード:
scss/_variables-dark.scss
内の${themecolor}-bg-{subtle}-dark
,$body(-{secondary|tertiary})-bg-dark
の値
- ライトモード:
【変更履歴】
- 【v5.0.0-alpha1】
.bg-body
が追加<a>
タグに.bg-{color}
を入れてもホバー状態では濃いめに強調されなくなった
- 【v5.1.0】
.bg-{color}
の{color}
設定がHEX値からRGBテーマカラーCSS変数と透明度アルファ値CSS変数に変更.bg-black
が追加
- 【v5.1.1】
- v5.1.0で
.bg-body
のcolor
が.text-body
のものになるバグが発生していたのを修正
- v5.1.0で
- 【v5.3.0】
.bg-{themecolor}-subtle
,.bg-body-secondary
,.bg-body-tertiary
が追加
背景のグラデーション化(Background gradient)v5.0.0-alpha1設定変更
.bg-gradient
クラスの追加により、線形グラデーションが背景画像として背景に追加される。このグラデーションは、下にフェードアウトする半透明の白で始まる。
カスタムCSSにグラデーションが必要なら、background-image: var(--bs-gradient);
を追加する。
背景色の種類
段落全体に背景色を設定する色が見やすいように余白を設けています
.bg-primary.bg-gradient
.bg-primary-subtle.bg-gradient
.bg-secondary.bg-gradient
.bg-secondary-subtle.bg-gradient
.bg-success.bg-gradient
.bg-success-subtle.bg-gradient
.bg-danger.bg-gradient
.bg-danger-subtle.bg-gradient
.bg-warning.bg-gradient
.bg-warning-subtle.bg-gradient
.bg-info.bg-gradient
.bg-info-subtle.bg-gradient
.bg-light.bg-gradient
.bg-light-subtle.bg-gradient
.bg-dark.bg-gradient
.bg-dark-subtle.bg-gradient
.bg-body.bg-gradient
.bg-body-secondary.bg-gradient
.bg-body-tertiary.bg-gradient
.bg-black.bg-gradient
.bg-transparent.bg-gradient
設定例
<div class="p-3 mb-2 bg-primary bg-gradient text-white">...</div>
【設定】
.bg-{themecolor}(-{subtle})
か.bg-{themecolor}(-{subtle})
に.bg-gradient
を追加- 背景色によっては、
.text-body-emphasis
,.text-white
など見やすい色の文字を追加する必要あり
【変更履歴】
- 【v5.0.0-alpha1】
.bg-gradient-{themecolor}
⇒.bg-{color}.bg-gradient
(.bg-gradient-{themecolor}
は廃止、scss/_variables.scss
内の$enable-gradients
の設定変更も不要に)
不透明度(Opacity)v5.1.0新設
v5.1.0以降、background-color
ユーティリティはCSS変数を使用してSassで生成される。これにより、コンパイルや動的な透明度のアルファ値の変更なしで、リアルタイムの色の変更が可能になる。
使い方(How it works)
デフォルトの .bg-success
ユーティリティについて考察:
Bootstrap5.1.0~の設定 緑背景が5.1.0での変更箇所
.bg-success {
--bs-bg-opacity: 1;
background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
}
※Bootstrap5.0.2の設定 赤背景が5.1.0での変更箇所
.bg-success {
background-color: #198754 !important;
}
--bs-success
のRGBバージョン(25, 135, 84
の値)のCSS変数を使用し、透明度のアルファ値のために2番目のCSS変数 --bs-bg-opacity
を添付(ローカルCSS変数のおかげでデフォルト値は 1
)。つまり今は .bg-success
を使用すると、計算された color
値は rgba(25, 135, 84, 1)
になる。各 .bg-*
クラス内のローカルCSS変数は継承の問題を回避するため、ユーティリティの入れ子になったインスタンスは自動的に変更された透明度のアルファ値を持たない。
実例(Examples)
その不透明度を変更するには、カスタムスタイルかインラインスタイルを経由して --bs-bg-opacity
を再定義。
1.インラインスタイルで設定
見本
設定例
50%の不透明度のSuccessの背景<div class="bg-success p-2" style="--bs-bg-opacity: .5;">...</div>
2.定義済クラスで設定
または、.bg-opacity
ユーティリティのいずれかから選択。
不透明度の種類
設定なし(参考)(--bs-bg-opacity: 1
)
.bg-opacity-75
(--bs-bg-opacity: 0.75
)
.bg-opacity-50
(--bs-bg-opacity: 0.5
)
.bg-opacity-25
(--bs-bg-opacity: 0.25
)
.bg-opacity-10
(--bs-bg-opacity: 0.1
)
設定例
75%の不透明度のSuccessの背景<div class="bg-success text-white bg-opacity-75 p-2">...</div>
定義済の配色
.bg-primary
.bg-primary.bg-opacity-75
.bg-primary.bg-opacity-50
.bg-primary.bg-opacity-25
.bg-primary.bg-opacity-10
.bg-secondary
.bg-secondary.bg-opacity-75
.bg-secondary.bg-opacity-50
.bg-secondary.bg-opacity-25
.bg-secondary.bg-opacity-10
.bg-success
.bg-success.bg-opacity-75
.bg-success.bg-opacity-50
.bg-success.bg-opacity-25
.bg-success.bg-opacity-10
.bg-info
.bg-info.bg-opacity-75
.bg-info.bg-opacity-50
.bg-info.bg-opacity-25
.bg-info.bg-opacity-10
.bg-warning
.bg-warning.bg-opacity-75
.bg-warning.bg-opacity-50
.bg-warning.bg-opacity-25
.bg-warning.bg-opacity-10
.bg-danger
.bg-danger.bg-opacity-75
.bg-danger.bg-opacity-50
.bg-danger.bg-opacity-25
.bg-danger.bg-opacity-10
.bg-light
.bg-light.bg-opacity-75
.bg-light.bg-opacity-50
.bg-light.bg-opacity-25
.bg-light.bg-opacity-10
.bg-dark
.bg-dark.bg-opacity-75
.bg-dark.bg-opacity-50
.bg-dark.bg-opacity-25
.bg-dark.bg-opacity-10
.bg-body
.bg-body.bg-opacity-75
.bg-body.bg-opacity-50
.bg-body.bg-opacity-25
.bg-body.bg-opacity-10
.bg-body-secondary
.bg-body-secondary.bg-opacity-75
.bg-body-secondary.bg-opacity-50
.bg-body-secondary.bg-opacity-25
.bg-body-secondary.bg-opacity-10
.bg-body-tertiary
.bg-body-tertiary.bg-opacity-75
.bg-body-tertiary.bg-opacity-50
.bg-body-tertiary.bg-opacity-25
.bg-body-tertiary.bg-opacity-10
.bg-black
.bg-black.bg-opacity-75
.bg-black.bg-opacity-50
.bg-black.bg-opacity-25
.bg-black.bg-opacity-10
.bg-white
.bg-white.bg-opacity-75
.bg-white.bg-opacity-50
.bg-white.bg-opacity-25
.bg-white.bg-opacity-10
【設定】
.bg-{color}
に インラインでstyle="--bs-bg-opacity: {value};"
を入れるか、.bg-{color}
に.bg-opacity-{value}
(上記の「不透明度の種類」から選択)を追加{value}
は、10
,25
,50
,75
のいずれかを選択
【注意】
.bg-{themecolor}--subtle
は、color
の設定がrgba方式ではないため設定不可
CSS v5.0.0-beta2追加、v5.3.0Sassから名称変更
以下のSass機能に加えて、カラーなどに含まれているCSSカスタムプロパティ(別名CSS変数)についても読んで下さい。
Sass変数(Sass variables)v5.3.0変数から名称変更
ほとんどの background-color
ユーティリティは、一般的なカラーパレット変数から再割り当てされたテーマカラーによって生成される。
デフォルトの設定
scss/_variables.scss 内 color-variables の設定$blue: #0d6efd;
$indigo: #6610f2;
$purple: #6f42c1;
$pink: #d63384;
$red: #dc3545;
$orange: #fd7e14;
$yellow: #ffc107;
$green: #198754;
$teal: #20c997;
$cyan: #0dcaf0;
scss/_variables.scss 内 theme-color-variables の設定$primary: $blue;
$secondary: $gray-600;
$success: $green;
$info: $cyan;
$warning: $yellow;
$danger: $red;
$light: $gray-100;
$dark: $gray-900;
scss/_variables.scss 内 variable-gradient の設定$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0));
グレースケールカラーも利用できるが、ユーティリティの生成にはサブセットのみを使用。
scss/_variables.scss 内 gray-color-variables の設定$white: #fff;
$gray-100: #f8f9fa;
$gray-200: #e9ecef;
$gray-300: #dee2e6;
$gray-400: #ced4da;
$gray-500: #adb5bd;
$gray-600: #6c757d;
$gray-700: #495057;
$gray-800: #343a40;
$gray-900: #212529;
$black: #000;
.bg-*-subtle
ユーティリティの background-color
をライトモードとダークモードで設定するための変数:
scss/_variables.scss 内 theme-bg-subtle-variables の設定$primary-bg-subtle: tint-color($primary, 80%);
$secondary-bg-subtle: tint-color($secondary, 80%);
$success-bg-subtle: tint-color($success, 80%);
$info-bg-subtle: tint-color($info, 80%);
$warning-bg-subtle: tint-color($warning, 80%);
$danger-bg-subtle: tint-color($danger, 80%);
$light-bg-subtle: mix($gray-100, $white);
$dark-bg-subtle: $gray-400;
scss/_variables-dark.scss 内 theme-bg-subtle-dark-variables の設定$primary-bg-subtle-dark: shade-color($primary, 80%);
$secondary-bg-subtle-dark: shade-color($secondary, 80%);
$success-bg-subtle-dark: shade-color($success, 80%);
$info-bg-subtle-dark: shade-color($info, 80%);
$warning-bg-subtle-dark: shade-color($warning, 80%);
$danger-bg-subtle-dark: shade-color($danger, 80%);
$light-bg-subtle-dark: $gray-800;
$dark-bg-subtle-dark: mix($gray-800, $black);
Sassマップ(Sass maps)v5.2.0設定変更、v5.3.0マップから名称変更
テーマカラーがSassマップに配置されるので、それをループして、ユーティリティやコンポーネント修飾子などが生成できる。
デフォルトの設定
scss/_variables.scss 内 theme-colors-map の設定$theme-colors: (
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
);
グレースケールカラーは、Sassマップとしても利用できる。このマップは、ユーティリティの生成には使用されない。
scss/_variables.scss 内 gray-colors-map の設定$grays: (
"100": $gray-100,
"200": $gray-200,
"300": $gray-300,
"400": $gray-400,
"500": $gray-500,
"600": $gray-600,
"700": $gray-700,
"800": $gray-800,
"900": $gray-900
);
RGBカラーは別のSassマップから生成される:
scss/_maps.scss 内 theme-colors-rgb の設定$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value");
背景色の不透明度は、ユーティリティAPIによって消費される独自のマップを使用して構築される:
scss/_maps.scss 内 utilities-bg-colors の設定$utilities-bg: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white),
"body": to-rgb($body-bg)
)
);
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg");
$utilities-bg-subtle: (
"primary-subtle": var(--#{$prefix}primary-bg-subtle),
"secondary-subtle": var(--#{$prefix}secondary-bg-subtle),
"success-subtle": var(--#{$prefix}success-bg-subtle),
"info-subtle": var(--#{$prefix}info-bg-subtle),
"warning-subtle": var(--#{$prefix}warning-bg-subtle),
"danger-subtle": var(--#{$prefix}danger-bg-subtle),
"light-subtle": var(--#{$prefix}light-bg-subtle),
"dark-subtle": var(--#{$prefix}dark-bg-subtle)
);
カラーモードの背景色は、Sassのマップとしても利用可能:
scss/_maps.scss 内 gradient-bg-mixin の設定$theme-colors-bg-subtle: (
"primary": $primary-bg-subtle,
"secondary": $secondary-bg-subtle,
"success": $success-bg-subtle,
"info": $info-bg-subtle,
"warning": $warning-bg-subtle,
"danger": $danger-bg-subtle,
"light": $light-bg-subtle,
"dark": $dark-bg-subtle,
);
scss/_maps.scss 内 theme-bg-subtle-dark-map の設定$theme-colors-bg-subtle-dark: (
"primary": $primary-bg-subtle-dark,
"secondary": $secondary-bg-subtle-dark,
"success": $success-bg-subtle-dark,
"info": $info-bg-subtle-dark,
"warning": $warning-bg-subtle-dark,
"danger": $danger-bg-subtle-dark,
"light": $light-bg-subtle-dark,
"dark": $dark-bg-subtle-dark,
);
【変更履歴】
- 【v5.2.0】
- RGBカラーと不透明度のマップの設定が
scss/_variables.scss
から新設のscss/_maps.scss
に変更
- RGBカラーと不透明度のマップの設定が
Sassミックスイン(Sass mixins)v5.2.0変更、v5.3.0mixinから名称変更
背景ユーティリティの生成にミックスインは使用されないが、独自のグラデーションを作成したい他の状況のために、いくつかの追加のミックスインがある。
デフォルトの設定
scss/mixins/_gradients.scss 内 gradient-bg-mixin の設定@mixin gradient-bg($color: null) {
background-color: $color;
@if $enable-gradients {
background-image: var(--#{$prefix}gradient);
}
}
【変更履歴】
- 【v5.2.0】
- CSS変数:
--#{$variable-prefix}
を--#{$prefix}
に変更
- CSS変数:
scss/mixins/_gradients.scss 内 gradient-mixins の設定// 左から右への水平方向のグラデーション
//
// 各カラーストップの色と位置を指定して、開始と終了の2つのカラーストップを作成。
@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
}
// 上から下への垂直方向のグラデーション
//
// 各カラーストップの色と位置を指定して、開始と終了の2つのカラーストップを作成。
@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
}
@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
background-image: linear-gradient($deg, $start-color, $end-color);
}
@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
}
@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
}
@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
background-image: radial-gradient(circle, $inner-color, $outer-color);
}
@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}
SassユーティリティAPI(Sass utilities API)v5.3.0ユーティリティAPIより名称変更
背景ユーティリティは、scss/_utilities.scss
のユーティリティAPIで宣言されている。ユーティリティAPIの使用方法はこちらに掲載。
デフォルトの設定
scss/_utilities.scss 内 utils-bg-color の設定"background-color": (
property: background-color,
class: bg,
local-vars: (
"bg-opacity": 1
),
values: map-merge(
$utilities-bg-colors,
(
"transparent": transparent,
"body-secondary": rgba(var(--#{$prefix}secondary-bg-rgb), var(--#{$prefix}bg-opacity)),
"body-tertiary": rgba(var(--#{$prefix}tertiary-bg-rgb), var(--#{$prefix}bg-opacity)),
)
)
),
"bg-opacity": (
css-var: true,
class: bg-opacity,
values: (
10: .1,
25: .25,
50: .5,
75: .75,
100: 1
)
),
"subtle-background-color": (
property: background-color,
class: bg,
values: $utilities-bg-subtle
),