The blueprint grid.
This file can be imported using:
@import "blueprint/grid"
24
The number of columns in the grid.
30px
The width of a column
10px
The amount of margin between columns
$blueprint-grid-width + $blueprint-grid-margin
The width of a column including the margin. With default settings this is 40px
.
$blueprint-grid-outer-width * $blueprint-grid-columns - $blueprint-grid-margin
The width of the container. With default settings this is 950px
.
@function span($n) @return $blueprint-grid-width * $n + $blueprint-grid-margin * ($n - 1)
@function span($n) { @return $blueprint-grid-width * $n + $blueprint-grid-margin * ($n - 1); }
Return the width in pixels of $n
columns.
=blueprint-grid // A container should group all your columns .container +container .column +column-base // The last column in a row needs this class (or mixin) or it will end up on the next row. .last +last // Use these classes (or mixins) to set the width of a column. @for $n from 1 to $blueprint-grid-columns .span-#{$n} @extend .column width: span($n) .span-#{$blueprint-grid-columns} @extend .column width: span($blueprint-grid-columns) margin: 0 input, textarea, select @for $n from 1 through $blueprint-grid-columns &.span-#{$n} width: span($n) // Add these to a column to append empty cols. @for $n from 1 to $blueprint-grid-columns .append-#{$n} +append($n) // Add these to a column to prepend empty cols. @for $n from 1 to $blueprint-grid-columns .prepend-#{$n} +prepend($n) // Use these classes on an element to push it into the // next column, or to pull it into the previous column. #{enumerate(".pull", 1, $blueprint-grid-columns)} +pull-base @for $n from 1 through $blueprint-grid-columns .pull-#{$n} +pull-margins($n) #{enumerate(".push", 1, $blueprint-grid-columns)} +push-base @for $n from 1 through $blueprint-grid-columns .push-#{$n} +push-margins($n) .prepend-top +prepend-top .append-bottom +append-bottom
@mixin blueprint-grid { // A container should group all your columns .container { @include container; } .column { @include column-base; } // The last column in a row needs this class (or mixin) or it will end up on the next row. .last { @include last; } // Use these classes (or mixins) to set the width of a column. @for $n from 1 to $blueprint-grid-columns { .span-#{$n} { @extend .column; width: span($n); } } .span-#{$blueprint-grid-columns} { @extend .column; width: span($blueprint-grid-columns); margin: 0; } input, textarea, select { @for $n from 1 through $blueprint-grid-columns { &.span-#{$n} { width: span($n); } } } // Add these to a column to append empty cols. @for $n from 1 to $blueprint-grid-columns { .append-#{$n} { @include append($n); } } // Add these to a column to prepend empty cols. @for $n from 1 to $blueprint-grid-columns { .prepend-#{$n} { @include prepend($n); } } // Use these classes on an element to push it into the // next column, or to pull it into the previous column. #{enumerate(".pull", 1, $blueprint-grid-columns)} { @include pull-base; } @for $n from 1 through $blueprint-grid-columns { .pull-#{$n} { @include pull-margins($n); } } #{enumerate(".push", 1, $blueprint-grid-columns)} { @include push-base; } @for $n from 1 through $blueprint-grid-columns { .push-#{$n} { @include push-margins($n); } } .prepend-top { @include prepend-top; } .append-bottom { @include append-bottom; } }
Generates presentational class names that you can use in your html to layout your pages.
Best practices discourage using this mixin, but it is provided to support legacy websites and to test the sass port against blueprint's example pages.
=container width: $blueprint-container-size margin: 0 auto +clearfix
@mixin container { width: $blueprint-container-size; margin: 0 auto; @include clearfix; }
A container for your columns.
If you use this mixin without the class and want to support ie6 you must set text-align left on your container element in an IE stylesheet.
=last margin-right: 0
@mixin last { margin-right: 0; }
The last column in a row needs this mixin or it will end up on the next row in some browsers.
=column($n, $last: false) +column-base($last) width: span($n)
@mixin column($n, $last: false) { @include column-base($last); width: span($n); }
Use this mixins to set the width of n columns.
=span($n, $important: false) @warn "The span mixin is deprecated. Please use the span function instead. E.g. width: span(#{$n})" @if $important width: span($n) !important @else width: span($n)
@mixin span($n, $important: false) { @warn "The span mixin is deprecated. Please use the span function instead. E.g. width: span(#{$n})"; @if $important { width: span($n) !important; } @else { width: span($n); } }
Set only the width of an element to align it with the grid.
Most of the time you'll want to use +column
instead.
This mixin is especially useful for aligning tables to the grid.
@deprecated Please use the span function with the width property instead.
=column-base($last: false) +float-left @if $last +last @else margin-right: $blueprint-grid-margin * html & overflow-x: hidden
@mixin column-base($last: false) { @include float-left; @if $last { @include last; } @else { margin-right: $blueprint-grid-margin; } * html & { overflow-x: hidden; } }
The basic set of styles needed to make an element behave like a column:
This mixin gets applied automatically when using +column
so you probably don't need to use it directly unless
you need to deviate from the grid or are trying
to reduce the amount of generated CSS.
=append($n) padding-right: $blueprint-grid-outer-width * $n
@mixin append($n) { padding-right: $blueprint-grid-outer-width * $n; }
Mixin to a column to append n empty columns to the right by adding right padding to the column.
=prepend($n) padding-left: $blueprint-grid-outer-width * $n
@mixin prepend($n) { padding-left: $blueprint-grid-outer-width * $n; }
Mixin to a column to append n empty columns to the left by adding left padding to the column.
=append-bottom($amount: 1.5em) margin-bottom: $amount
@mixin append-bottom($amount: 1.5em) { margin-bottom: $amount; }
Adds trailing margin.
=prepend-top($amount: 1.5em) margin-top: $amount
@mixin prepend-top($amount: 1.5em) { margin-top: $amount; }
Adds leading margin.
=pull-base +float-left position: relative
@mixin pull-base { @include float-left; position: relative; }
Base styles that make it possible to pull an element to the left.
This mixin gets applied automatically when using +pull
so you probably don't need to use it directly unless
you need to deviate from the grid or are trying
to reduce the amount of generated CSS.
=pull-margins($n, $last: false) @if $last margin-left: -$blueprint-grid-outer-width * $n + $blueprint-grid-margin @else margin-left: -$blueprint-grid-outer-width * $n
@mixin pull-margins($n, $last: false) { @if $last { margin-left: -$blueprint-grid-outer-width * $n + $blueprint-grid-margin; } @else { margin-left: -$blueprint-grid-outer-width * $n; } }
The amount of pulling for element to the left.
This mixin gets applied automatically when using +pull
so you probably don't need to use it directly unless
you need to deviate from the grid or are trying
to reduce the amount of generated CSS.
=pull($n, $last: false) +pull-base +pull-margins($n, $last)
@mixin pull($n, $last: false) { @include pull-base; @include pull-margins($n, $last); }
Moves a column n
columns to the left.
This mixin can also be used to change the display order of columns.
If pulling past the last (visually) element in a row,
pass true
as the second argument so the calculations can adjust
accordingly.
For example:
HTML:
OneTwo
Sass:
#one +column(18, true) +prepend(6) #two +column(6) +pull(18, true)
=push-base +float-left position: relative
@mixin push-base { @include float-left; position: relative; }
=push-margins($n) margin: 0 -$blueprint-grid-outer-width * $n 1.5em $blueprint-grid-outer-width * $n
@mixin push-margins($n) { margin: 0 -$blueprint-grid-outer-width * $n 1.5em $blueprint-grid-outer-width * $n; }
=push($n) +push-base +push-margins($n)
@mixin push($n) { @include push-base; @include push-margins($n); }
mixin to a column to push it n columns to the right
=border($border-color: $blueprint-border-color, $border-width: 1px) padding-right: $blueprint-grid-margin / 2 - $border-width margin-right: $blueprint-grid-margin / 2 border-right: #{$border-width} solid #{$border-color}
@mixin border($border-color: $blueprint-border-color, $border-width: 1px) { padding-right: $blueprint-grid-margin / 2 - $border-width; margin-right: $blueprint-grid-margin / 2; border-right: #{$border-width} solid #{$border-color}; }
Border on right hand side of a column.
=colborder($border-color: $blueprint-border-color, $border-width: 1px) padding-right: floor(($blueprint-grid-width + 2 * $blueprint-grid-margin - $border-width) / 2) margin-right: ceil(($blueprint-grid-width + 2 * $blueprint-grid-margin - $border-width) / 2) border-right: #{$border-width} solid #{$border-color}
@mixin colborder($border-color: $blueprint-border-color, $border-width: 1px) { padding-right: floor(($blueprint-grid-width + 2 * $blueprint-grid-margin - $border-width) / 2); margin-right: ceil(($blueprint-grid-width + 2 * $blueprint-grid-margin - $border-width) / 2); border-right: #{$border-width} solid #{$border-color}; }
Border with more whitespace, spans one column.
=colruler($border-color: #dddddd) background: $border-color color: $border-color clear: both float: none width: 100% height: 0.1em margin: 0 0 1.45em border: none
@mixin colruler($border-color: #dddddd) { background: $border-color; color: $border-color; clear: both; float: none; width: 100%; height: 0.1em; margin: 0 0 1.45em; border: none; }
Mixin this to an hr to make a horizontal ruler across a column.
=colspacer +colruler background: white color: white visibility: hidden
@mixin colspacer { @include colruler; background: white; color: white; visibility: hidden; }
Mixin this to an hr to make a horizontal spacer across a column.