A responsive, mobile first fluid grid system, based on flexbox CSS, that appropriately scales up to 12 columns as the device or viewport size increases. It includes predefined classes for easy layout options.
Drag & use this grid debugger bookmarklet to toggle a developpement helper for the grid.
Responsive modifiers enable specifying different column sizes, offsets, alignment and distribution at xs, sm, md & lg viewport widths.
<div class="grid-wrapper">
<div class="grid-container">
<div class="row">
<div class="col-xs-12
col-sm-8
col-md-6
col-lg-4">
<div class="box">Responsive</div>
</div>
</div>
</div>
</div>
Percent based widths allow fluid resizing of columns and rows.
All you need to remember is row, column, content.
<div class="row">
<div class="col-xs-12">
<div class="box">12</div>
</div>
</div>
Offset a column
<div class="row">
<div class="col-xs-offset-3 col-xs-9">
<div class="box">offset</div>
</div>
</div>
Add any number of auto sizing columns to a row. Let the grid figure it out.
<div class="row">
<div class="col-xs">
<div class="box">auto</div>
</div>
</div>
Nest grids inside grids inside grids.
<div class="row">
<div class="col-xs">
<div class="box">auto</div>
<div class="row">
<div class="col-xs">
<div class="box">auto</div>
</div>
</div>
</div>
</div>
</div>
Add classes to align elements to the start or end of a row as well as the top, bottom, or center of a column
<div class="row start-xs">
<div class="col-xs-6">
<div class="box">start</div>
</div>
</div>
<div class="row center-xs">
<div class="col-xs-6">
<div class="box">center</div>
</div>
</div>
<div class="row end-xs">
<div class="col-xs-6">
<div class="box">end</div>
</div>
</div>
Here is an example of using the modifiers in conjunction to acheive different alignment at different viewport sizes.
<div class="row center-xs end-sm start-lg">
<div class="col-xs-6">
<div class="box">All together now</div>
</div>
</div>
<div class="row top-xs">
<div class="col-xs-6">
<div class="box">top</div>
</div>
</div>
<div class="row middle-xs">
<div class="col-xs-6">
<div class="box">middle</div>
</div>
</div>
<div class="row bottom-xs">
<div class="col-xs-6">
<div class="box">bottom</div>
</div>
</div>
Add classes to distribute the contents of a row or column.
<div class="row around-xs">
<div class="col-xs-2">
<div class="box">around</div>
</div>
<div class="col-xs-2">
<div class="box">around</div>
</div>
<div class="col-xs-2">
<div class="box">around</div>
</div>
</div>
<div class="row between-xs">
<div class="col-xs-2">
<div class="box">between</div>
</div>
<div class="col-xs-2">
<div class="box">between</div>
</div>
<div class="col-xs-2">
<div class="box">between</div>
</div>
</div>
Add classes to reorder columns.
<div class="row">
<div class="col-xs-2">
<div class="box">1</div>
</div>
<div class="col-xs-2">
<div class="box">2</div>
</div>
<div class="col-xs-2 first-xs">
<div class="box">3</div>
</div>
</div>
<div class="row">
<div class="col-xs-2 last-xs">
<div class="box">1</div>
</div>
<div class="col-xs-2">
<div class="box">2</div>
</div>
<div class="col-xs-2">
<div class="box">3</div>
</div>
</div>
<div class="row reverse">
<div class="col-xs-2">
<div class="box">1</div>
</div>
<div class="col-xs-2">
<div class="box">2</div>
</div>
<div class="col-xs-2">
<div class="box">3</div>
</div>
</div>