RailsでSassを使ってBootstrapのコンポーネントをカスタマイズする
RailsアプリのメインページにBootstrapのCSSコンポーネント*1Jumbotron
を設置しようとして、背景色をデフォルトのグレーから変えたくなったので方法を調べました。
ちょっとググればわかる程度の内容ですが、Sassの@extendに感心したので書き留めておきます。
Gemfile
gem 'rails' # BootstrapでSassを使うgem gem 'bootstrap-sass' # railsでSassを使うgem gem 'sass-rails'
Gemfile
にbootsteap-sass
を追加します。
rails new
で作成されたGemfile
であれば、sass-rails
は最初から記述されていると思いますが、無い場合は記述します。
gem
のバージョンは、とりあえず最新版でいいと思いますが、エラーが出た場合はエラー出力をコピペしてググって解決します。
custom.css.sass
@import "bootstrap"; /* extend bootstrap component */ /* 背景色が赤いjumbotronを作る */ .jumbotron-red { @extend .jumbotron !optional; background-color: #ED5565; /* GRAPEFRUIT */ h1 { color: white; } h2 { color: #F5F7FA; /* LIGHT GRAY */ } }
app/assets/stylesheets
ディレクトリにcustom.css.sass
ファイルを作成して、Sass構文でカスタム内容を記述します。
今回は、Bootflatのような色彩の、赤いjumbotron
を作ってみたかったので、.jumbotron-red
クラスを作成して@extend .jumbotron
しました。
また、@extend
に!optional
フラグを付けて、継承元であるjumbotron
がBootstrapから削除されても対応できるようにしています。
参考記事
Sass: Syntactically Awesome Style Sheets
Twitter Bootstrap のカスタマイズをライブラリ本体に手を入れずに行う | EasyRamble
github.com
bootflat.github.io
開発環境
- OSX 10.11.4 El Capitan
- パッケージマネージャ: Homebrew - Ruby 2.3.0
- バージョンマネージャ: rbenv
- Webフレームワーク: Ruby on Rails
- CSSフレームワーク: Bootstrap