Bootstrap::Sass::Rails

Bootstrap is Twitter's toolkit for kickstarting CSS for websites, apps, and more. It includes base CSS styles for typography, forms, buttons, tables, grids, navigation, alerts, and more.

Twitter Bootstrap has been converted to Sass which makes it possible to use the default Rails Asset Pipeline

  • All assets have been namespaced within twitter/bootstrap to avoid naming conflicts
  • Top level requires for sprockets to get the complete bundle with a simple = require twitter/bootstrap
  • Ability to import individually namespaced stylesheets or javascripts.

Installation

Add these lines to your application's Gemfile:

group :assets do
  gem 'bootstrap-sass-rails'
end

And then execute:

$ bundle install

Or install it yourself as:

$ gem install bootstrap-sass-rails

Usage

Stylesheets

The easiest way to use Twitter Bootstrap is to require it in your application.css file.

/*
 *= require twitter/bootstrap
 */

#example {
  /* Your styles... */
}

If you need access to the variables within the Twitter Bootstrap framework or want to use the mixins you will need to import it within an .css.scss file. This will still include the complete framework.

@import "twitter/bootstrap";

#foo {
  @include border-radius(4px);
}

Using only parts of the framework like variables and mixin you can import all of these individually from within .css.scss files.

@import "twitter/bootstrap/variables";
@import "twitter/bootstrap/mixins";

@mixin myButton($radius: 5px) {
  @include border-radius($radius);
}

#foo {
  @include myButton(10px);
}

Responsive styles

Adding the responsive styles included with Twitter Bootstrap to your project is just as easy. Depending on the way you chose to include the base bootstrap styles you need to do one of the following:

Importing the responsive partial using the Sass @import directive in a .scss file:

@import 'twitter/bootstrap';
@import 'twitter/bootstrap/responsive';

Using =require to include the responsive partial in a .css file (watch the underscore in the partial name!):

/*
 *= require twitter/bootstrap
 *= require twitter/bootstrap/_responsive
 */

Using =require to include the responsive partial in a .scss file (watch the underscore in the partial name!):

#= require twitter/bootstrap
#= require twitter/bootstrap/_responsive

Icon Fonts

To ease the common use case of extending Twitter Bootstrap with a icon font like Font Awesome a css file is included which leaves out the original sprites.

You can use it like this

/*
 *= require twitter/bootstrap-no-sprites
 */

or

@import "twitter/bootstrap-no-sprites";

Please note that Font Awesome is not included in this gem - you will need to vendorize the font assets by yourself!

Javascripts

Using the JavaScript works the same way. You can include them all with a single require directive from your application.js.

//= require twitter/bootstrap

$(document).ready(function(){
});

If you only want a part of the javascripts require the individual files from your .js file.

//= require twitter/bootstrap/modal

$(document).ready(function(){
});

Versioning

This gem will directly track the semantic versioning releases of the Twitter Bootstrap project. If it should be necessary a build number will be added to the version to mark releases specific to this gem.

Note on Patches / Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Credits

This work incorporates Twitter Bootstrap by Twitter, Inc.
This gem has been inspired by less-rails-bootstrap by Ken Collins

Maintainers

License

Apache License, Version 2.0

Copyright 2011-2012 Morton Jonuschat
Twitter Bootstrap copyright 2011-2012 Twitter, Inc