@use "sass:math"; $tablet: 769px; $desktop: 1024px; $widescreen: 1216px; $fullhd: 1408px; $widths: ( m: $tablet, l: $desktop, xl: $widescreen, xxl: $fullhd, ); @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: ((math.div(100%, 12))*$i); margin: 0; } @if $i < 12 { .col-offset-#{$i}:first-child { margin-left: (8.66666666667%*$i) !important; } .col-offset-#{$i}:not(first-child) { margin-left: 4% + (8.66666666667%*$i) !important; } } } @media screen and (max-width: calc(#{$tablet} - 1px)) { @for $i from 1 through 12 { .col-s-#{$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-s-#{$i} { margin-left: (8.66666666667%*$i); } } .col-no-margin-s-#{$i} { float: left; box-sizing: border-box; width: (math.div(100%, 12)*$i); } } .s-hidden { display: none !important; } .s-visible { display: block !important; } } @each $size, $width in $widths { @media screen and (min-width: $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: (math.div(100%, 12)*$i); } } .#{$size}-hidden { display: none !important; } .#{$size}-visible { display: block !important; } } } @mixin from($device) { @media screen and (min-width: $device) { @content; } } @mixin until($device) { @media screen and (max-width: calc(#{$device} - 1px)) { @content; } } @mixin between($from, $until) { @media screen and (min-width: $from) and (max-width: calc(#{$until} - 1px)) { @content; } } .vertical-center { display: flex; align-items: center; } .horizontal-center { display: flex; justify-content: center; margin-left: auto; margin-right: auto; } @mixin pull-right { display: inline-flex; text-align: right; justify-content: right; flex-grow: 1; } .pull-right { @include pull-right; } .hidden { display: none !important; } .no-content { display: flex; font-size: 1.5em; align-items: center; justify-content: center; }