Bourbon is a comprehensive library of sass mixins that are designed to be simple and easy to use. No configuration required. The mixins aim to be as vanilla as possible, meaning they should be as close to the original CSS syntax as possible.
The mixins contain vendor specific prefixes for all CSS3 properties for support amongst modern browsers. The prefixes also ensure graceful degradation for older browsers that support only CSS3 prefixed properties. Bourbon uses SCSS syntax.
Sass 3.1+
In your Gemfile:
gem 'bourbon'
Then run:
$ bundle install
Rename application.css to application.css.scss:
mv app/assets/stylesheets/application.css app/assets/stylesheets/application.css.scss
Bourbon needs the sass files to be imported in a specific order to function properly. Therefore, you will need to disable the require_tree sprocket directive. Delete the following sprocket directive in application.css.scss:
*= require_tree .
Import bourbon at the beginning of application.css.scss:
@import "bourbon";
Import all additional stylesheets from your app/assets/stylesheets directory underneath the bourbon import:
@import "bourbon";
@import "home";
@import "users";
For Rails 3.0.x you must run the installation rake task. You should run this task every time a new version of Bourbon is released.
This will copy the Sass files into your project's public/stylesheets/sass
directory.
rake bourbon:install
Import the mixins at the beginning of your stylesheet
@import 'bourbon/bourbon';
Optional: If you use a non-standard location for your sass files, you can specify the path to your sass files as an argument to the install task
rake bourbon:install[app/stylesheets]
Bourbon includes an easy way to generate a directory with all the necessary files. Install the bourbon gem:
gem install bourbon
Change the directory to where you want to generate the bourbon folder and files:
cd project_name/stylesheets/sass/
Install bourbon:
bourbon install
This will generate a folder called bourbon
containing all the mixins and other necessary bourbon files. It is recommended not to add or modify the bourbon files so that you can update bourbon easily.
Update an existing bourbon installation with:
bourbon update
This will delete the bourbon directory and regenerate it.
Sass Watch: To output properly, Bourbon must be explicitly required (-r
) by Sass at the command line:
# Example (project root directory)
sass --watch stylesheets/sass:stylesheets -r ./stylesheets/sass/bourbon/lib/bourbon.rb
You will need to import the mixins at the beginning of your stylesheet(s):
@import 'bourbon/bourbon';
Bourbon aims to provide support for CSS3 properties that are not yet fully supported in modern stable browsers.
View the Bourbon documentation
@ denotes a mixin and must be prefaced with @include
Mixins
--------------------------------
animation
@ animation(*args)
@ animation-delay(*args)
@ animation-direction(*args)
@ animation-duration(*args)
@ animation-fill-mode(*args)
@ animation-iteration-count(*args)
@ animation-name(*args)
@ animation-play-state(*args)
@ animation-timing-function(*args)
@ appearance(*args)
@ background-image(*args)
@ background-size(*args)
@ border-image(*args)
border-radius
@ border-radius(*args)
@ border-radius-top(*args)
@ border-radius-top-left(*args)
@ border-radius-top-right(*args)
@ border-radius-bottom(*args)
@ border-radius-bottom-left(*args)
@ border-radius-bottom-right(*args)
@ border-radius-left(*args)
@ border-radius-right(*args)
@ box-shadow(*args)
@ box-sizing(*args)
columns
@columns(*args)
@column-count(*args)
@column-fill(*args)
@column-gap(*args)
@column-rule(*args)
@column-rule-color(*args)
@column-rule-style(*args)
@column-rule-width(*args)
@column-span(*args)
@column-width(*args)
flex-box
@ box(*args)
@ box-align(*args)
@ box-direction(*args)
@ box-flex(*args)
@ box-flex-group(*args)
@ box-lines(*args)
@ box-ordinal-group(*args)
@ box-orient(*args)
@ box-pack(*args)
@ display-box
@ inline-block
@ linear-gradient(*args)
@ radial-gradient(*args)
transform
@ transform(*args)
@ transform-origin(*args)
transition
@ transition(*args)
@ transition-delay(*args)
@ transition-duration(*args)
@ transition-property(*args)
@ transition-timing-function(*args)
@ user-select
Functions
--------------------------------
compact(*args)
flex-grid(*args)
golden-ratio(*args)
grid-width(*args)
linear-gradient(*args)
radial-gradient(*args)
shade(*args)
tint(*args)
Addons
-------------------------------
@ button(*args)
@ clearfix
@ hide-text
HTML5 Inputs
#{$all-text-inputs}
font-family
$georgia
$helvetica
$lucida-grande
$monospace
$verdana
timing-functions
$ease-in-*
$ease-out-*
$ease-in-out-*
* = quad, cubic, quart, quint, sine, expo, circ, back
Currently the project is a work in progress. Feel free to help out. A general rule when considering filing a pull request for a new mixin: Do the following browsers only support the CSS3 property using vendor specific prefixes? If the answer is yes, there is a high chance the mixin will be accepted via a pull request.
- Firefox 3.6+
- Safari 4.0+
- Chrome 4.0+
- Opera 10+
- IE 9+
Bourbon does not intend to support IE filters.
Resources for checking browser support: MDN - Moz Dev Network, Mozilla CSS Extensions, Webkit CSS Properties, Firefox CSS Properties, MSDN - Microsoft Dev Network
Got questions? Need help? Tweet at @phillapier.
Bourbon is maintained and funded by thoughtbot, inc
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
Bourbon is Copyright © 2011 thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.