960 Grid System - Compass Plugin
960.gs is created by Nathan Smith. See the official site for more info: <960.gs/>
-
This plugin is consistent with latest version of 960.gs as of 3/14/2011
This plugin adds the 960 Grid System framework to [Compass](compass-style.org/).
Install
gem install compass-960-plugin
Create a 960-based Compass Project
compass create -r ninesixty my_project --using 960
Or, If you prefer to use Sass’s indentation based syntax:
compass create -r ninesixty my_project --using 960 --syntax sass
Then edit your ‘grid.sass` and `text.sass` files accordingly. A reset is added into grid.sass automatically.
Adding the 960 plugin to an existing project
Add the following to your compass.rb config file:
# Require any additional compass plugins here.
require 'ninesixty'
Then make sure you have imported the grid library into your core .sass or .scss file with:
@import compass/reset
@import 960/grid
Customizing your Grid System
This plugin uses the following configuration variables:
-
‘$ninesixty-columns` (default: 12) controls the default number of grid columns
-
‘$ninesixty-grid-width` (default: 960px) controls the default overall grid width
-
‘$ninesixty-gutter-width` (default: 20px) controls the default gutter width
-
‘$ninesixty-class-separator` (default: ’_’) sets the word separator for classnames generated by +grid-system
All of the mixins included with this plugin use these configuration variables as defaults if the corresponding argument is omitted from a mixin call.
Class-Based Grid System
To create a grid system that works like the original 960 Grid System framework use the ‘+grid-system-complete` mixin to generate the corresponding classes. You can also customize the number of columns as demonstrated:
Example:
+grid-system-complete(24)
If you want to scope the grid inside a specific set of selectors or control your container class’ name you can use the ‘+grid-system` mixin instead.
Example:
#wrap
.my_container
+grid-system(16)
This will render all of the grid system nested below your selector, replacing the normal function of the container class (would be .container_16 in this example).
Making Semantic Grids
To create a grid system using only CSS, use the following semantic grid mixins:
-
Use the ‘+grid-container` mixin to declare your container element.
-
Use the ‘+grid(N, columns, gutter-width)` mixin to declare a grid element.
-
Use the ‘+alpha` and `+omega` mixins to declare the first and last grid elements for a row.
-
Use the ‘+grid-prefix(N, columns)` and `+grid-suffix(N, columns)` mixins to add empty grid columns before or after a grid element.
-
Use the ‘+grid-push(N, columns)` and `+grid-pull(N, columns)` mixins to move a grid element from its default position.
‘N` is the number of grid columns to span as in `grid_N` or `push_N` with the original 960 Grid System framework.
Example:
$ninesixty-columns: 16
#wrap
+grid-container
#header
+grid(16)
#middle
+grid(16)
#left-nav
+grid(5)
+alpha
#main-content
+grid-prefix(1)
+grid(10)
+omega
Authors/Contributors
[Chris Eppstein](chriseppstein.github.com/) is the creator of Compass, a core contributor to Sass and the father of this plugin.
[Nathan Smith](sonspring.com/) is the author of [960.gs](960.gs/), the grid system this plugin is based on. He’s also kind enough to let us pester him with questions from time to time.
These days, [Matt Sanders](github.com/mattsa) is probably the best person chat with if you’ve found a bug or want to get a patch included.
We’ve also been lucky enough to have some help from a number of [other contributors](github.com/chriseppstein/compass-960-plugin/contributors).