2012-03-28 14:13:39 +01:00
# Bootstrap for Sass
2011-09-06 20:08:31 +01:00
2013-08-01 14:22:23 -07:00
[](http://travis-ci.org/thomas-mcdonald/bootstrap-sass) [](https://codeclimate.com/github/thomas-mcdonald/bootstrap-sass)
2012-05-11 14:38:25 +01:00
2013-08-11 04:14:05 -07:00
`bootstrap-sass` is an Sass-powered version of [Bootstrap ](http://github.com/twbs/bootstrap ), ready to drop right into your Sass powered applications.
2011-09-06 20:08:31 +01:00
2013-10-16 21:24:42 +02:00
## Installation
2011-09-06 20:08:31 +01:00
2013-10-16 21:24:42 +02:00
Please see the appropriate guide for your environment of choice:
2011-09-06 20:08:31 +01:00
2013-10-16 21:24:42 +02:00
### a. Rails
2013-09-29 10:38:18 -04:00
`bootstrap-sass` is easy to drop into Rails with the asset pipeline.
2013-09-29 10:46:34 -04:00
In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `sass-rails` gem is present - it is added to new Rails applications by default.
2013-09-29 10:38:18 -04:00
```ruby
gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2
2013-10-31 20:47:03 +01:00
gem 'bootstrap-sass', '~> 3.0.1.0.rc'
2013-09-29 10:54:55 -04:00
```
2013-09-29 10:46:34 -04:00
2013-09-29 10:38:18 -04:00
`bundle install` and restart your server to make the files available through the pipeline.
2013-10-16 21:29:06 +02:00
### b. Compass (no Rails)
2013-10-16 21:24:42 +02:00
Install the gem
```console
2013-10-23 20:19:54 +01:00
gem install bootstrap-sass --pre
2013-10-16 21:24:42 +02:00
```
If you have an existing Compass project:
```ruby
# config.rb:
require 'bootstrap-sass'
```
```console
compass install bootstrap
```
If you are creating a new Compass project, you can generate it with bootstrap-sass support:
```console
compass create my-new-project -r bootstrap-sass --using bootstrap
```
This will create a new Compass project with the following files in it:
2013-10-17 01:51:49 +02:00
* [_variables.scss ](/templates/project/_variables.scss.erb ) - all of bootstrap variables (override them here).
2013-10-16 21:29:06 +02:00
* [styles.scss ](/templates/project/styles.scss ) - main project SCSS file, import `variables` and `bootstrap` .
2013-10-16 21:24:42 +02:00
2013-10-16 21:29:06 +02:00
## Usage
2013-09-29 10:38:18 -04:00
2013-10-16 21:29:06 +02:00
### CSS / SCSS / SASS
2013-09-29 10:38:18 -04:00
Import Bootstrap in an SCSS file (for example, `application.css.scss` ) to get all of Bootstrap's styles, mixins and variables! We recommend against using `//= require` directives, since none of your other stylesheets will be [able to access][antirequire] the Bootstrap mixins or variables.
2013-11-04 20:00:12 +01:00
```scss
2013-09-29 10:38:18 -04:00
@import "bootstrap";
```
You can also include optional bootstrap theme:
2013-11-04 20:00:12 +01:00
```scss
2013-09-29 10:38:18 -04:00
@import "bootstrap/theme";
```
2013-09-17 15:42:08 -07:00
The full list of bootstrap variables can be found [here ](http://getbootstrap.com/customize/#less-variables ). You can override these by simply redefining the variable before the `@import` directive.
For example:
2013-11-04 20:00:12 +01:00
```scss
2013-09-17 15:42:08 -07:00
$navbar-default-bg: #312312 ;
$light-orange: #ff8c00 ;
$navbar-default-color: $light-orange;
@import "bootstrap";
```
2013-10-27 18:07:32 +01:00
For granular control over what is imported, instead of `@import "bootstrap"` , explicitly specify which modules and components should be included.
Copy `bootstrap.scss` from the gem into the project's vendor/ as `bootstrap-custom.scss` .
```bash
cp $(bundle show bootstrap-sass)/vendor/assets/stylesheets/bootstrap/bootstrap.scss \
vendor/assets/stylesheets/bootstrap-custom.scss
```
Comment out the import statements you do not need from `bootstrap-custom.scss` .
Finally, in your `application.sass` :
```scss
@import 'bootstrap-custom';
```
NB: This file now needs to be manually kept up to date with structural changes from upstream.
2013-10-16 21:29:06 +02:00
### Javascript
2013-09-29 10:38:18 -04:00
2013-10-16 22:04:41 +02:00
We have a helper that includes all Bootstrap javascripts. If you use Rails (or Sprockets separately),
put this in your Javascript manifest (usually in `application.js` ) to load the files in the [correct order ](/vendor/assets/javascripts/bootstrap.js ):
2013-09-29 10:38:18 -04:00
```js
// Loads all Bootstrap javascripts
//= require bootstrap
```
You can also load individual modules, provided you also require any dependencies. You can check dependencies in the [Bootstrap JS documentation][jsdocs].
```js
//= require bootstrap/scrollspy
//= require bootstrap/modal
//= require bootstrap/dropdown
```
2013-09-29 10:54:55 -04:00
## Development and Contributing
2011-09-06 20:08:31 +01:00
2013-09-29 10:38:18 -04:00
If you'd like to help with the development of bootstrap-sass itself, read this section.
2013-08-21 17:13:33 +01:00
### Upstream Converter
2011-09-19 23:02:29 +01:00
2013-09-29 10:54:55 -04:00
Keeping bootstrap-sass in sync with upstream changes from Bootstrap used to be an error prone and time consuming manual process. With Bootstrap 3 we have introduced a converter that automates this.
**Note: if you're just looking to *use* Bootstrap 3, see the [installation ](#installation ) section above.**
2013-03-20 12:56:42 +00:00
2013-08-01 01:09:59 -04:00
Upstream changes to the Bootstrap project can now be pulled in using the `convert` rake task.
2011-09-07 01:25:14 +02:00
2013-10-16 22:09:18 +02:00
Here's an example run that would pull down the master branch from the main [twbs/bootstrap ](https://github.com/twbs/bootstrap ) repo:
rake convert
This will convert the latest LESS to SASS and update to the latest JS.
To convert a specific branch or version, pass the branch name or the commit hash as the first task argument:
rake convert[e8a1df5f060bf7e6631554648e0abde150aedbe4]
2011-12-02 22:23:53 +00:00
2013-08-21 17:13:33 +01:00
The latest converter script is located [here][converter] and does the following:
2012-02-06 13:38:26 +00:00
2013-08-01 01:09:59 -04:00
* Converts upstream bootstrap LESS files to its matching SCSS file.
* Copies all upstream JavaScript into `vendor/assets/javascripts/bootstrap`
2013-05-30 00:25:02 -07:00
* Generates a javascript manifest at `vendor/assets/javascripts/bootstrap.js`
2013-08-21 18:30:32 +02:00
* Copies all upstream font files into `vendor/assets/fonts/bootstrap`
* Sets `Bootstrap::BOOTSTRAP_SHA` in [version.rb][version] to the branch sha.
2012-02-06 13:38:26 +00:00
2013-08-22 19:11:02 +02:00
This converter fully converts original LESS to SCSS. Conversion is automatic but requires instructions for certain transformations (see converter output).
2013-08-22 19:08:29 +02:00
Please submit GitHub issues tagged with `conversion` .
2011-09-19 23:02:29 +01:00
2013-08-21 17:13:33 +01:00
## Credits
2012-02-06 13:38:26 +00:00
2013-08-21 17:13:33 +01:00
bootstrap-sass has a number of major contributors:
2012-02-06 13:38:26 +00:00
2013-08-21 17:13:33 +01:00
<!-- feel free to make these link wherever you wish -->
2013-09-09 11:38:35 +01:00
* [Thomas McDonald ](https://twitter.com/thomasmcdonald_ )
2013-09-29 10:46:34 -04:00
* [Tristan Harward ](http://www.trisweb.com )
2013-08-21 17:13:33 +01:00
* Peter Gumeson
2013-09-09 11:38:35 +01:00
* [Gleb Mazovetskiy ](https://github.com/glebm )
2011-09-19 23:02:29 +01:00
2013-08-21 17:13:33 +01:00
and a [significant number of other contributors][contrib].
2012-05-13 21:28:06 +01:00
## You're in good company
2013-09-09 11:38:35 +01:00
bootstrap-sass is used to build some awesome projects all over the web, including
[Diaspora ](http://diasporaproject.org/ ), [rails_admin ](https://github.com/sferik/rails_admin ),
Michael Hartl's [Rails Tutorial ](http://railstutorial.org/ ), [gitlabhq ](http://gitlabhq.com/ ) and
[kandan ](http://kandanapp.com/ ).
2013-08-21 17:13:33 +01:00
[converter]: https://github.com/thomas-mcdonald/bootstrap-sass/blob/3/tasks/converter.rb
2013-08-21 18:30:32 +02:00
[version]: https://github.com/thomas-mcdonald/bootstrap-sass/blob/3/lib/bootstrap-sass/version.rb
2013-09-29 10:38:18 -04:00
[contrib]: https://github.com/thomas-mcdonald/bootstrap-sass/graphs/contributors
[antirequire]: https://github.com/thomas-mcdonald/bootstrap-sass/issues/79#issuecomment -4428595
2013-10-16 21:29:06 +02:00
[jsdocs]: http://getbootstrap.com/javascript/#transitions