4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RailsでBootstrapのグリッドシステムのみを使用する

Posted at

経緯

現在関わっているプロジェクト内で、以下のような要件があった。

  1. フロント側レスポンシブの対応をBootstrapのグリッドシステムを使いたい。
  2. 他のスタイルはBootstrapを使わずにCSSを独自で実装したい

RailsのアプリケーションにBootstrapを導入する手順は多く公開されているが、1.のグリッドシステムのみ導入が分からず、少し困ったので備忘録として残しておく。

環境

  • Rails 6.0.3.4
  • Ruby 2.7.2

Rails6から、WebPakerを使ったJSの管理がデフォルトになったので、yarnでBootstrapを追加します。

$ yarn add bootstrap

Bootstrapすべてインポートする場合

app/assets/stylesheets/application.scss
# 省略
import "bootstrap/scss/bootstrap.scss"

グリッドシステムのみを抜き出したい場合

app/assets/stylesheets/application.scss
# 省略
import "bootstrap/scss/bootstrap-grid.scss";

node_modules配下を確認するとの以下のパスにbootstrap-grid.scssが配置されている

$ ll node_modules/bootstrap/scss/

省略

-rw-r--r--   1 koeda  staff    409 12  2 20:29 bootstrap-grid.scss
-rw-r--r--   1 koeda  staff    918 12  2 20:29 bootstrap.scss

またbootstrap.scssを確認すると以下のように、分割されたスタイルシートをインポートしているため、用途に合わせて、別途抜き出して使うこともできる。

node_modules/bootstrap/scss/bootstrap.scss
/*!
 * Bootstrap v4.5.3 (https://getbootstrap.com/)
 * Copyright 2011-2020 The Bootstrap Authors
 * Copyright 2011-2020 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */

@import "functions";
@import "variables";
@import "mixins";
@import "root";
@import "reboot";
@import "type";
@import "images";
@import "code";
@import "grid";
@import "tables";
@import "forms";
@import "buttons";
@import "transitions";
@import "dropdown";
@import "button-group";
@import "input-group";
@import "custom-forms";
@import "nav";
@import "navbar";
@import "card";
@import "breadcrumb";
@import "pagination";
@import "badge";
@import "jumbotron";
@import "alert";
@import "progress";
@import "media";
@import "list-group";
@import "close";
@import "toasts";
@import "modal";
@import "tooltip";
@import "popover";
@import "carousel";
@import "spinners";
@import "utilities";
@import "print";

余談

node_modules/bootstrap/scss/bootstrap.scssを確認すると_alert.scss_reboot.scssなど、接頭語が_(アンダースコア)で始まるファイル名となっている。
これは、scssファイルをコンパイルしてもcssファイルが生成されない仕様らしいです。
またインポートする際には_(アンダースコア)は省略できます。

4
3
0

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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?