Generating a responsive CSS grid using Neat

I use a responsive grid system for this site (and a number of other projects) that's generated by pulling in Thoughtbot's Neat framework. To generate the framework for this grid, I've put together a simple SASS/SCSS mixin that looks like the following:"

.grid {
&-main-container {
@include outer-container;
}

&-row {
@include row;
@include pad(0 10%);

@media only screen and (max-width: 640px) {
@include pad(0 10%);
}

&.collapse {
@media only screen and (max-width: 640px) {
@include pad(0);
}
}

.grid-row {
// collapse nested grid rows
@include pad(0);
}
}

$grid-columns: 12;

@for $i from 0 through $grid-columns {
&-columns-#{$i} {
@include span-columns($i);
}

&-columns-small-#{$i} {
@include span-columns($i);

@media only screen and (max-width: 640px) {
@include span-columns(12);
}
}
}
@for $i from 0 through $grid-columns {
&-shift-left-#{$i} {
@include shift(-$i);
}

&-shift-right-#{$i} {
@include shift($i);
}

@media only screen and (max-width: 640px) {
&-shift-left-#{$i},
&-shift-right-#{$i}
{
@include shift(0);
}
}
}
}

To use the grid, simply drop it in as an import after including Neat. Once your SASS/SCSS files have been parsed, you'll end up with completed grid classes that will allow you to generate responsive markup for a page. For example:

<div class="grid-main-container">
<div class="grid-row>
<div class="
grid-columns-9">

<!-- Content -->
</div>
<div class="grid-columns-3">
<!-- Content -->
</div>
</div>
<!-- Columns in this row will collapse to the full screen width on small screens -->
<div class="grid-row>
<div class="
grid-columns-small-9">

<!-- Content -->
</div>
<div class="grid-columns-small-3">
<!-- Content -->
</div>
</div>
</div>
Cory
Cory Dransfeldt

I'm a software developer in Camarillo, California. I enjoy hanging out with my beautiful family and 4 rescue dogs, technology, automation, music, writing, reading and tv and movies.