$widths: ( s: '(max-width: 720px)', m: '(max-width: 1024px) and (min-width: 720px)', l: '(min-width: 1024px)', ); @for $i from 1 through 12 { .col-#{$i} { float: left; box-sizing: border-box; @if $i < 12 { width: (4.66666666667%*$i) + (4% * if($i > 1, $i - 1, 0)); margin-left: 4%; } @else { width: 100%; margin-left: 0; } &:first-child { margin-left: 0; } } .col-no-margin-#{$i} { float: left; box-sizing: border-box; width: ((100%/12)*$i); } @if $i < 12 { .col-offset-#{$i} { margin-left: (8.66666666667%*$i); } } } @each $size, $width in $widths { @media #{$width} { @for $i from 1 through 12 { .col-#{$size}-#{$i} { float: left; box-sizing: border-box; @if $i < 12 { width: (4.66666666667%*$i) + (4% * if($i > 1, $i - 1, 0)); margin-left: 4%; } @else { width: 100%; margin-left: 0; } &:first-child { margin-left: 0; } } @if $i < 12 { .col-offset-#{$size}-#{$i} { margin-left: (8.66666666667%*$i); } } .col-no-margin-#{$size}-#{$i} { float: left; box-sizing: border-box; width: ((100%/12)*$i); } } .#{$size}-hidden { display: none !important; } .#{$size}-visible { display: block !important; } } } .vertical-center { display: flex; align-items: center; }