An opinionated gem which brings Bootstrap for Sass 3.4.1, Font Awesome 4.7.0 and Respond.js assets into your Rails application.
We need this gem for some old projects that require Bootstrap 3.
In our new development stack, we are loading Bootstrap and Font Awesome via yarn.
Add the gem to your Gemfile
gem 'twbs_sass_rails', '~> 10.0'
Run the generator
$ rails g twbs_sass_rails:install
Rails 5.1 drops jQuery as a default dependency.
If you need the JavaScript part of Bootstrap, add to your Gemfile
gem 'jquery-rails', '~> 4.3'
and replace //= require rails-ujs
in your application JavaScript manifest with
//= require jquery
//= require jquery_ujs
Use twbs-variables.css.scss
to override Bootstrap defaults:
/* New variables */
$flat-ui-emerald: #2ecc71;
$flat-ui-nephritis: #27ae60;
$flat-ui-peter-river: #3498db;
$flat-ui-belize-hole: #2980b9;
/* Overrides */
$brand-primary: $flat-ui-belize-hole;
$brand-success: $flat-ui-nephritis;
/* Do not edit below this line */
@import "twbs/bootstrap/variables";
NOTE: Remember to import twbs-variables
instead of twbs/bootstrap/variables
in any new SCSS file.
WARNING: Leave @import "twbs/bootstrap/variables";
at the very end of the file.
Twbs Sass Rails comes with Glyphicons and Fontawesome, both disabled by default. Edit your twbs.css.scss
to enable them.
Use Glyphicons:
@import "twbs/bootstrap/glyphicons";
//@import "fontawesome/font-awesome";
Use FontAwesome:
//@import "twbs/bootstrap/glyphicons";
@import "fontawesome/font-awesome";
If you want to use the Bootstrap theme, uncomment //@import "twbs/bootstrap/theme"
in your twbs.css.scss
.
If you want to exclude some SCSS components, remove @import "twbs/bootstrap";
from your twbs.css.scss
and add the components you need, e.g.:
/* Use twbs-variables to define new variables and override Bootstrap defaults.
* Import "twbs-variables" instead of "twbs/bootstrap/variables"
* in each new stylesheet.
*/
@import "twbs-variables";
/* Start editing below this line */
// Core variables and mixins
@import "twbs/bootstrap/variables";
@import "twbs/bootstrap/mixins";
// Reset
@import "twbs/bootstrap/normalize";
@import "twbs/bootstrap/print";
/* ... */
Take a look at the whole list of SCSS components. Respect the order of the files and remember to edit paths.
If you want to exclude some Javascript components, remove //= require twbs/bootstrap
from twbs.js.coffee
and add the components you need, e.g:
/* ... */
//= require jquery_ujs
//= require twbs/bootstrap/transition
//= require twbs/bootstrap/alert
//= require twbs/bootstrap/button
//= require turbolinks
/* ... */
Take a look at the whole list of Javascript components. Respect the order of the files and remember to edit paths.
Twbs Sass Rails uses Appraisal for testing against multiple gem dependency versions.
$ appraisal install; appraisal update # Make sure your appraisals are installed and up to date
$ appraisal rake
Please read through our contributing guidelines. Included are directions for opening issues, coding standards, and notes on development.
More over, if your pull request contains patches or features, you must include relevant unit tests.
Editor preferences are available in the editor config for easy use in common text editors. Read more and download plugins at https://editorconfig.org/.
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Twbs Sass Rails will be maintained under the Semantic Versioning guidelines as much as possible. Twbs Sass Rails will not follow Bootstrap's version number.
Releases will be numbered with the following format:
<major>.<minor>.<patch>
And constructed with the following guidelines:
- Breaking backward compatibility bumps the major (and resets the minor and patch)
- New additions without breaking backward compatibility bumps the minor (and resets the patch)
- Bug fixes and misc changes bumps the patch
For more information on SemVer, please visit https://semver.org/.
Geremia Taglialatela
Cesidio Di Landa
Copyright 2021 diowa under the BSD 2-Clause license.