Created
March 8, 2017 12:38
-
-
Save webdevian/5b377536265b6f8c95255451c032edf3 to your computer and use it in GitHub Desktop.
Foundation 6 responsive columns mixin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Make a responsive column element, with width and padding values for each breakpoint | |
| @mixin grid-columns( | |
| // {Integer} Small columns (i.e 6 = half (6/12)) | |
| $small: $grid-column-count, | |
| // {Integer} Medium columns | |
| $medium: false, | |
| // {Integer} Large columns | |
| $large: false, | |
| // {Boolean} Clear left if this column is the "first in the row" | |
| // i.e, if we have n columns per row, every nth column with have | |
| // clear:left to stop elements of different heights breaking the row | |
| $clear: false, | |
| // {Boolean} include left padding | |
| $left-padding: true, | |
| // {Boolean} include right padding | |
| $right-padding: true | |
| ){ | |
| width: percentage($small / $grid-column-count); | |
| float: left; | |
| @if($clear) { | |
| $n: floor(12 / $small); | |
| $only: ''; | |
| @if($medium) { | |
| $only: 'only'; | |
| } | |
| @if($n > 1) { | |
| @include breakpoint(small #{$only}) { | |
| &:nth-of-type(#{$n}n-#{$n - 1}) { | |
| clear: left; | |
| } | |
| } | |
| } | |
| } | |
| $padding: rem-calc(map-get($grid-column-gutter, 'small')) / 2; | |
| @if($right-padding) { | |
| padding-right: $padding; | |
| } | |
| @if($left-padding) { | |
| padding-left: $padding; | |
| } | |
| @include breakpoint(medium) { | |
| @if($medium) { | |
| width: percentage($medium / $grid-column-count); | |
| } | |
| $medium-padding: rem-calc(map-get($grid-column-gutter, 'medium')) / 2; | |
| @if($right-padding) { | |
| padding-right: $medium-padding; | |
| } | |
| @if($left-padding) { | |
| padding-left: $medium-padding; | |
| } | |
| } | |
| @if($clear and $medium) { | |
| $n: floor(12 / $medium); | |
| $only: ''; | |
| @if($medium) { | |
| $only: 'only'; | |
| } | |
| @if($n > 1) { | |
| @include breakpoint(medium #{$only}) { | |
| &:nth-of-type(#{$n}n-#{$n - 1}) { | |
| clear: left; | |
| } | |
| } | |
| } | |
| } | |
| @include breakpoint(large) { | |
| @if($large) { | |
| width: percentage($large / $grid-column-count); | |
| } | |
| $large-padding: rem-calc(map-get($grid-column-gutter, 'large')) / 2; | |
| @if($right-padding) { | |
| padding-right: $large-padding; | |
| } | |
| @if($left-padding) { | |
| padding-left: $large-padding; | |
| } | |
| } | |
| @if($clear and $large) { | |
| $n: floor(12 / $large); | |
| @if($n > 1) { | |
| @include breakpoint(large) { | |
| &:nth-of-type(#{$n}n-#{$n - 1}) { | |
| clear: left; | |
| } | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment