Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
284 changes: 284 additions & 0 deletions css/_grid-mixins.scss.liquid
Original file line number Diff line number Diff line change
@@ -0,0 +1,284 @@
/*============================================================================
#Grid Setup
- Based on csswizardry grid, but with floated columns, a fixed gutter size, and BEM classes
- Breakpoints defined above, under #Breakpoint and Grid Variables
- Note the inclusion of .grid-uniform to take care of clearfixes on evenly sized grid items
==============================================================================*/
$responsive: true;
$mobile-first: true;
$use-silent-classes: false;
$push: true;
$pull: false;

$class-type: unquote(".");

@if $use-silent-classes == true {
$class-type: unquote("%");
}

@mixin grid-media-query($media-query) {
$breakpoint-found: false;

@each $breakpoint in $breakpoints {
$name: nth($breakpoint, 1);
$declaration: nth($breakpoint, 2);

@if $media-query == $name and $declaration {
$breakpoint-found: true;

@media only screen and #{$declaration} {
@content;
}
}
}

@if $breakpoint-found == false {
@warn "Breakpoint '#{$media-query}' does not exist";
}
}


/*============================================================================
Drop relative positioning into silent classes which can't take advantage of
the `[class*="push--"]` and `[class*="pull--"]` selectors.
==============================================================================*/
@mixin silent-relative() {
@if $use-silent-classes == true {
position:relative;
}
}

/*============================================================================
WIDTHS
- Create width classes, prefixed by the specified namespace.
==============================================================================*/
@mixin device-type($namespace:"") {
/** Whole */
#{$class-type}#{$namespace}one-whole { width: 100%; }

/* Halves */
#{$class-type}#{$namespace}one-half { width: 50%; }

/* Thirds */
#{$class-type}#{$namespace}one-third { width: 33.333%; }
#{$class-type}#{$namespace}two-thirds { width: 66.666%; }

/* Quarters */
#{$class-type}#{$namespace}one-quarter { width: 25%; }
#{$class-type}#{$namespace}two-quarters { width: 50%; }
#{$class-type}#{$namespace}three-quarters { width: 75%; }

/* Fifths */
#{$class-type}#{$namespace}one-fifth { width: 20%; }
#{$class-type}#{$namespace}two-fifths { width: 40%; }
#{$class-type}#{$namespace}three-fifths { width: 60%; }
#{$class-type}#{$namespace}four-fifths { width: 80%; }

/* Sixths */
#{$class-type}#{$namespace}one-sixth { width: 16.666%; }
#{$class-type}#{$namespace}two-sixths { width: 33.333%; }
#{$class-type}#{$namespace}three-sixths { width: 50%; }
#{$class-type}#{$namespace}four-sixths { width: 66.666%; }
#{$class-type}#{$namespace}five-sixths { width: 83.333%; }

/* Eighths */
#{$class-type}#{$namespace}one-eighth { width: 12.5%; }
#{$class-type}#{$namespace}two-eighths { width: 25%; }
#{$class-type}#{$namespace}three-eighths { width: 37.5%; }
#{$class-type}#{$namespace}four-eighths { width: 50%; }
#{$class-type}#{$namespace}five-eighths { width: 62.5%; }
#{$class-type}#{$namespace}six-eighths { width: 75%; }
#{$class-type}#{$namespace}seven-eighths { width: 87.5%; }

/* Tenths */
#{$class-type}#{$namespace}one-tenth { width: 10%; }
#{$class-type}#{$namespace}two-tenths { width: 20%; }
#{$class-type}#{$namespace}three-tenths { width: 30%; }
#{$class-type}#{$namespace}four-tenths { width: 40%; }
#{$class-type}#{$namespace}five-tenths { width: 50%; }
#{$class-type}#{$namespace}six-tenths { width: 60%; }
#{$class-type}#{$namespace}seven-tenths { width: 70%; }
#{$class-type}#{$namespace}eight-tenths { width: 80%; }
#{$class-type}#{$namespace}nine-tenths { width: 90%; }

/* Twelfths */
#{$class-type}#{$namespace}one-twelfth { width: 8.333%; }
#{$class-type}#{$namespace}two-twelfths { width: 16.666%; }
#{$class-type}#{$namespace}three-twelfths { width: 25%; }
#{$class-type}#{$namespace}four-twelfths { width: 33.333%; }
#{$class-type}#{$namespace}five-twelfths { width: 41.666% }
#{$class-type}#{$namespace}six-twelfths { width: 50%; }
#{$class-type}#{$namespace}seven-twelfths { width: 58.333%; }
#{$class-type}#{$namespace}eight-twelfths { width: 66.666%; }
#{$class-type}#{$namespace}nine-twelfths { width: 75%; }
#{$class-type}#{$namespace}ten-twelfths { width: 83.333%; }
#{$class-type}#{$namespace}eleven-twelfths { width: 91.666%; }
}

/*================ Clearfix helper on uniform grids ================*/
@mixin clearfix-helper($namespace:"") {
.grid-uniform {
#{$class-type}#{$namespace}one-half:nth-child(2n+1),
#{$class-type}#{$namespace}one-third:nth-child(3n+1),
#{$class-type}#{$namespace}one-quarter:nth-child(4n+1),
#{$class-type}#{$namespace}one-fifth:nth-child(5n+1),
#{$class-type}#{$namespace}one-sixth:nth-child(6n+1),
#{$class-type}#{$namespace}two-sixths:nth-child(3n+1),
#{$class-type}#{$namespace}three-sixths:nth-child(2n+1),
#{$class-type}#{$namespace}two-eighths:nth-child(4n+1),
#{$class-type}#{$namespace}four-eighths:nth-child(2n+1),
#{$class-type}#{$namespace}five-tenths:nth-child(2n+1),
#{$class-type}#{$namespace}one-twelfth:nth-child(12n+1),
#{$class-type}#{$namespace}two-twelfths:nth-child(6n+1),
#{$class-type}#{$namespace}three-twelfths:nth-child(4n+1),
#{$class-type}#{$namespace}four-twelfths:nth-child(3n+1),
#{$class-type}#{$namespace}six-twelfths:nth-child(2n+1) { clear: both; }
}
}

/*================ Helper show/hide classes around our breakpoints ================*/
@mixin device-helper($namespace:"") {
#{$class-type}#{$namespace}show { display: block!important; }
#{$class-type}#{$namespace}hide { display: none!important; }

#{$class-type}#{$namespace}text-left { text-align: left!important; }
#{$class-type}#{$namespace}text-right { text-align: right!important; }
#{$class-type}#{$namespace}text-center { text-align: center!important; }

#{$class-type}#{$namespace}left { float: left!important; }
#{$class-type}#{$namespace}right { float: right!important; }
}

/*============================================================================
PUSH
- Push classes, to move grid items over to the right by certain amounts
==============================================================================*/
@mixin push-setup($namespace: "") {
/* Whole */
#{$class-type}push--#{$namespace}one-whole { left: 100%; @include silent-relative(); }

/* Halves */
#{$class-type}push--#{$namespace}one-half { left: 50%; @include silent-relative(); }

/* Thirds */
#{$class-type}push--#{$namespace}one-third { left: 33.333%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-thirds { left: 66.666%; @include silent-relative(); }

/* Quarters */
#{$class-type}push--#{$namespace}one-quarter { left: 25%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-quarters { left: 50%; @include silent-relative(); }
#{$class-type}push--#{$namespace}three-quarters { left: 75%; @include silent-relative(); }

/* Fifths */
#{$class-type}push--#{$namespace}one-fifth { left: 20%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-fifths { left: 40%; @include silent-relative(); }
#{$class-type}push--#{$namespace}three-fifths { left: 60%; @include silent-relative(); }
#{$class-type}push--#{$namespace}four-fifths { left: 80%; @include silent-relative(); }

/* Sixths */
#{$class-type}push--#{$namespace}one-sixth { left: 16.666%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-sixths { left: 33.333%; @include silent-relative(); }
#{$class-type}push--#{$namespace}three-sixths { left: 50%; @include silent-relative(); }
#{$class-type}push--#{$namespace}four-sixths { left: 66.666%; @include silent-relative(); }
#{$class-type}push--#{$namespace}five-sixths { left: 83.333%; @include silent-relative(); }

/* Eighths */
#{$class-type}push--#{$namespace}one-eighth { left: 12.5%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-eighths { left: 25%; @include silent-relative(); }
#{$class-type}push--#{$namespace}three-eighths { left: 37.5%; @include silent-relative(); }
#{$class-type}push--#{$namespace}four-eighths { left: 50%; @include silent-relative(); }
#{$class-type}push--#{$namespace}five-eighths { left: 62.5%; @include silent-relative(); }
#{$class-type}push--#{$namespace}six-eighths { left: 75%; @include silent-relative(); }
#{$class-type}push--#{$namespace}seven-eighths { left: 87.5%; @include silent-relative(); }

/* Tenths */
#{$class-type}push--#{$namespace}one-tenth { left: 10%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-tenths { left: 20%; @include silent-relative(); }
#{$class-type}push--#{$namespace}three-tenths { left: 30%; @include silent-relative(); }
#{$class-type}push--#{$namespace}four-tenths { left: 40%; @include silent-relative(); }
#{$class-type}push--#{$namespace}five-tenths { left: 50%; @include silent-relative(); }
#{$class-type}push--#{$namespace}six-tenths { left: 60%; @include silent-relative(); }
#{$class-type}push--#{$namespace}seven-tenths { left: 70%; @include silent-relative(); }
#{$class-type}push--#{$namespace}eight-tenths { left: 80%; @include silent-relative(); }
#{$class-type}push--#{$namespace}nine-tenths { left: 90%; @include silent-relative(); }

/* Twelfths */
#{$class-type}push--#{$namespace}one-twelfth { left: 8.333%; @include silent-relative(); }
#{$class-type}push--#{$namespace}two-twelfths { left: 16.666%; @include silent-relative(); }
#{$class-type}push--#{$namespace}three-twelfths { left: 25%; @include silent-relative(); }
#{$class-type}push--#{$namespace}four-twelfths { left: 33.333%; @include silent-relative(); }
#{$class-type}push--#{$namespace}five-twelfths { left: 41.666%; @include silent-relative(); }
#{$class-type}push--#{$namespace}six-twelfths { left: 50%; @include silent-relative(); }
#{$class-type}push--#{$namespace}seven-twelfths { left: 58.333%; @include silent-relative(); }
#{$class-type}push--#{$namespace}eight-twelfths { left: 66.666%; @include silent-relative(); }
#{$class-type}push--#{$namespace}nine-twelfths { left: 75%; @include silent-relative(); }
#{$class-type}push--#{$namespace}ten-twelfths { left: 83.333%; @include silent-relative(); }
#{$class-type}push--#{$namespace}eleven-twelfths { left: 91.666%; @include silent-relative(); }
}

/*============================================================================
PULL
- Pull classes, to move grid items back to the left by certain amounts
==============================================================================*/
@mixin pull-setup($namespace: "") {
/* Whole */
#{$class-type}pull--#{$namespace}one-whole { right: 100%; @include silent-relative(); }

/* Halves */
#{$class-type}pull--#{$namespace}one-half { right: 50%; @include silent-relative(); }

/* Thirds */
#{$class-type}pull--#{$namespace}one-third { right: 33.333%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-thirds { right: 66.666%; @include silent-relative(); }

/* Quarters */
#{$class-type}pull--#{$namespace}one-quarter { right: 25%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-quarters { right: 50%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}three-quarters { right: 75%; @include silent-relative(); }

/* Fifths */
#{$class-type}pull--#{$namespace}one-fifth { right: 20%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-fifths { right: 40%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}three-fifths { right: 60%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}four-fifths { right: 80%; @include silent-relative(); }

/* Sixths */
#{$class-type}pull--#{$namespace}one-sixth { right: 16.666%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-sixths { right: 33.333%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}three-sixths { right: 50%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}four-sixths { right: 66.666%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}five-sixths { right: 83.333%; @include silent-relative(); }

/* Eighths */
#{$class-type}pull--#{$namespace}one-eighth { right: 12.5%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-eighths { right: 25%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}three-eighths { right: 37.5%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}four-eighths { right: 50%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}five-eighths { right: 62.5%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}six-eighths { right: 75%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}seven-eighths { right: 87.5%; @include silent-relative(); }

/* Tenths */
#{$class-type}pull--#{$namespace}one-tenth { right: 10%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-tenths { right: 20%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}three-tenths { right: 30%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}four-tenths { right: 40%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}five-tenths { right: 50%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}six-tenths { right: 60%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}seven-tenths { right: 70%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}eight-tenths { right: 80%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}nine-tenths { right: 90%; @include silent-relative(); }

/* Twelfths */
#{$class-type}pull--#{$namespace}one-twelfth { right: 8.333%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}two-twelfths { right: 16.666%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}three-twelfths { right: 25%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}four-twelfths { right: 33.333%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}five-twelfths { right: 41.666%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}six-twelfths { right: 50%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}seven-twelfths { right: 58.333%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}eight-twelfths { right: 66.666%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}nine-twelfths { right: 75%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}ten-twelfths { right: 83.333%; @include silent-relative(); }
#{$class-type}pull--#{$namespace}eleven-twelfths { right: 91.666%; @include silent-relative(); }
}
Loading