Bootstrap5をSCSSを使ってカスタマイズする

SCSSの基本を学んだうえで、実際にBootstrapをメンテナンス性を保ちつつカスタマイズする方法をまとめておく。

既存のSCSSは触らない

1つ目のポイントは、Bootstrapを構成するSCSSには手を入れないこと。直接いじってしまうと、Bootstrapのアップデートがかかった場合に上書きアップデートができなくなってしまう。

特に現行のバージョン5はリリースされてまだ日が浅いのでアップデートの可能性が高い。アップデートの恩恵を得るためには別の方法でカスタマイズする必要がある。

カスタム用のSCSSを作る

Bootstrapは大量の変数がすでに設定されており、基本的にはそこに変更を加えることでCSS全体に効果を及ぼすことができる。

カスタムする場合は、公式にもある下のやり方を使う。

Bootstrap の全ての Sass 変数は !default フラグを持っており、Bootstrap のソースコードを編集すること無く初期値を変更することができます。必要な場合は、変数をコピー & ペーストし、その値を編集して !default フラグを削除します。すでに変数に値が代入されている場合は、初期値による再代入は行われません。

https://getbootstrap.jp/docs/5.0/customize/sass/#%E5%A4%89%E6%95%B0%E3%81%AE%E5%88%9D%E6%9C%9F%E5%80%A4

例えばBodyの背景色を設定する変数をカスタムする場合は

$body-bg: $white !default;

↓

$body-bg: gray; // 変更を加えたうえで、!defaultは削除する

このようにする。Sassファイルは別に作成し、下記の注意がある。

同じ Sass ファイル内で変数の上書きをしたい場合は、デフォルトの変数の前か後のどちらでも書くことができます。しかし、複数の Sass ファイル間の場合は、Bootstrap の Sass ファイルをインポートされる前に上書きする必要があります

https://getbootstrap.jp/docs/5.0/customize/sass/#%E5%A4%89%E6%95%B0%E3%81%AE%E5%88%9D%E6%9C%9F%E5%80%A4

例えば下記のようなカスタム用SCSSのstyle.scssを作成する。ファイルの構成はbootstrap.scssと同じ階層にstyle.scssがあるとする。

インポートするのはマニュアルに指摘があるように一番最後にする。

$body-bg:  gray; // 変更した変数の値

// Bootstrap and its default variables
@import "bootstrap"; // bootstrap.scssのパスを指定する。拡張子(SCSS)は不要

これをコンパイルすると、変数に上書きがかかったstyle.cssが生成される。あとはこれをhtml側で読み込めばOK。

!defaultの仕組みがよく分からなかったので少し追求した

このサイトの主
投稿を作成しました 98

関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る