5
5

More than 3 years have passed since last update.

【Rails6】Rails + Bootstrap 5.0.0-alpha 環境で、Bootstrapをカスタマイズする

Last updated at Posted at 2020-08-27

※Qiita初投稿です。宜しくお願い致します。

BootstrapはCSSフレームワークとして数多くのプロジェクトに導入されていて、
2020年6月にメジャーバージョンアップとして5.0 alpha がリリースされました。

長年使われているフレームワークで採用数も多いことから、デフォルト設定で使用されている場合、
「Bootstrap臭」と揶揄されることもありますが、
カスタマイズすることで柔軟にUIを変えることが可能です。

今回はRails 6.0環境にwebpackerで導入したBootstrap 5.0において、
各変数をカスタマイズする方法についてご紹介します。

概要

Bootstrap内で設定されている_variables.scssの値を、別ファイルから上書き変更します。

参考文献・記事

以下記事で紹介されている方法について、cssをwebpackerで管理する場合に応用した方法になります。

また、以下リンクの公式ページで紹介している方法を参考にしています。

前提

  • Railsの設定でcssがwebpackerで管理されている。(この記事内では、app/javascript/src/application.scss が置かれているとします)
  • Bootstrapがパッケージマネージャ(yarnなど)でインストールされている。(この記事内では、node_modules/bootstrap がインストールされているとします)

設定手順

app/node_modules/bootstrap 内のファイルをコピーする

app/node_modules/bootstrap 内にあるbootstrap.scssと_variables.scssをコピーして、app/javascript/src フォルダ内に貼り付けます。

app/javascript/src 内のファイル名を変更する

app/javascript/src/bootstrap.scss は _bootstrap-custom.scssに、
app/javascript/src/_variables.scss は _bootstrap-custom-variablesに、ファイル名を変更します。

application.scss の設定

app/javascript/src/application.scss に、以下コードを記述します。

application.scss
@import 'bootstrap-custom';

_bootstrap-custom.scss の設定

app/javascript/src/_bootstrap-custom.scss の全ての @import について、"~bootstrap/scss/"を追加します。

変更前

_bootstrap-custom.scss
@import "variables";

変更後

_bootstrap-custom.scss
@import "~bootstrap/scss/variables";

全ての@importを編集後、@import "~bootstrap/scss/variables";を以下の通り編集します。

変更前

_bootstrap-custom.scss
@import "~bootstrap/scss/variables";

変更後

_bootstrap-custom.scss
/* @import "~bootstrap/scss/variables";
 */
@import "bootstrap-custom-variables";

カスタマイズ方法

app/javascript/src/_bootstrap-custom-variables の各変数を変更することでカスタマイズすることが可能です。

変数は数多く設定されていますので、変更次第でオリジナリティあるUIを統一的に適用することができます。

例:全体的なフォントサイズを小さくしたい場合

変更前

_bootstrap-custom-variables
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`

変更後

_bootstrap-custom-variables
$font-size-base: 0.9 rem !default;

終わりに

現在私が運営しているsnowwshiroでは、最低限のカスタマイズのみの為まだまだBootstrapらしい仕上がりとなっていますが、今秋のリニューアルにむけて鋭意カスタマイズ作業中です。

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5