「Railsアプリにデザインをあてたいけど、デザイン知識がない!」
そんなときにメチャクチャ便利なのが、「Bootstrap(ブートストラップ)」です。
Bootstrapを使えば、プログラミングしかできないデザイン初心者であっても、Webサイトに見栄えのいいデザインを簡単に適用することができます。
この記事では、RailsにBootstrapを導入する手順と、簡単な使い方を紹介していきます。
もくじ
Bootstrapとは「CSSフレームワーク」
Bootstrap(ブートストラップ)とは、もともとTwitter社が開発していたCSSフレームワークです。
いまでは、HTMLやCSS、JavaScriptなどが密接にからみあっていることもあり、Webアプリケーションフレームワークと呼ばれるようにもなりました。
フレームワークといえば、RailsもRubyのフレームワークなので、なんとなくイメージはつくと思います。
Bootstrapの場合は、HTMLの構成を合わせ、決められたCSSのclass
をHTMLに指定することで、見栄えのいいデザインや動きが簡単に実現できるようになっています。
また、Bootstrapはレスポンシブに対応しているので、パソコンやスマホで表示してもデザインが崩れません。
Bootstrapを使うことでデザインにかける時間を減らし、適用したWebサイトに統一的なレスポンスデザインを提供してくれるのです。
RailsにBootstrapを導入
RailsにBootstrapを導入する手順は、とっても簡単です。
ここからさきは、以下の4つステップで進めていきます。
- Bootstrapのインストール
- SCSSファイルの作成
- JSファイルの修正
- Rails(Puma)の再起動
1. Bootstrapをgemでインストール
RailsでBootstrapを使う場合は、gem
を使ってインストールする方法が一般的です。
Bootstrapは内部でjQueryを利用しているので、こちらもあわせてインストールしておきます。
Gemfileに以下を追記して、Bundlerを実行してみてください。
gem 'bootstrap', '~> 4.3.1'
gem 'jquery-rails'
$ bundle install
2. SCSSファイルを作成
次に、application.css
をapplication.scss
というファイル名に変更します。
これは、Bootstrapが「SCSS」という記法で書かれており、Railsでもあわせて利用するためです。
「SCSS」とは、CSSを拡張した記法のことで、いまのWeb業界では多く利用されている記法になります。
ここでは具体的な解説はしませんが、CSSの記述よりも見やすく、書きやすくなった記法だと思ってください。
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
ファイル名を変更したら、実際にファイルを開いて、
と*=
require_tree .
を削除し、*=
require_self@import "bootstrap";
を追記します。
追記したコードが、Bootstrapを読み込むための設定になります。
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
* vendor/assets/stylesheets directory can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
* files in this directory. Styles in this file should be added after the last require_* statement.
* It is generally better to create a new file per style scope.
*
*= require_tree . <(削除)
*= require_self <(削除)
*/
@import "bootstrap"; <(追加)
3. JSファイルを修正
Bootstrapで使われる「JavaScript」や「jQuery」などの関連ファイルを読み込む設定をします。
app/assets/javascripts/application.js
を開き、以下を参考に元々あったコードの上に追記してください。
# 以下の3つを追記
//= require jquery3
//= require popper
//= require bootstrap
# 元々あったコード
//= require rails-ujs
//= require activestorage
//= require turbolinks
4. Rails(Puma)を再起動
ここで一度、ブラウザからアクセスしてみてください。
もし、この段階でエラーが表示されているのであれば、Rails(Puma)を再起動します。
それでもエラーが変わらない場合は、「node.js」のバージョンが古い可能性があります。
DockerでRailsを構築した方は、Dockerfileが以下のような設定になっているかを確認してください。
# Railsに必要なパッケージをインストール
RUN apt-get update -qq && apt-get install -y nodejs
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
&& apt-get install -y nodejs
# 以下の公式サイトの記述では、node.jsのバージョンが低くてbootstrapが使えない
# RUN apt-get update -qq && apt-get install -y nodejs
Bootstrapの使い方(テンプレート)
最後に、Bootstrapの簡単な使い方を紹介して終わりにします。
といっても、Bootstrapの使い方をすべて紹介するのは不可能なので、とりあえずここでは、Bootstrapのテンプレートから適当にデザインを選んで、ヘッダー部分のコードをコピペしてみましょう。
以下のように、app/views/layouts/application.html.erb
を書き変えて、ヘッダーのデザインが適用されたかを確認します。
<!DOCTYPE html>
<html>
<head>
<title>App</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom shadow-sm">
<h5 class="my-0 mr-md-auto font-weight-normal">Company name</h5>
<nav class="my-2 my-md-0 mr-md-3">
<a class="p-2 text-dark" href="#">Features</a>
<a class="p-2 text-dark" href="#">Enterprise</a>
<a class="p-2 text-dark" href="#">Support</a>
<a class="p-2 text-dark" href="#">Pricing</a>
</nav>
<a class="btn btn-outline-primary" href="#">Sign up</a>
</div>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</body>
</html>
下のようなヘッダーデザインに変わっていれば成功です。
ここからさきは、Bootstrapの公式サイトを見ながら、自分の好きなようにカスタマイズしてみてください。
まとめ
Bootstrapを使うことで、誰でも簡単にRailsにデザインを適用することができます。
大きなプロジェクトでBootstrap使うことは少ないと思いますが、管理画面のようにデザインにこだわらない画面や、個人のWebサイト、ポートフォリオなどに使ってみるのがおすすめです。
またね、キツネ(@kitaaaa_kitsune)でした!

