$breakpoints: (xs: 576px, sm: 768px, md: 992px, lg: 1200px); @mixin respond-above($breakpoint) { @if map-has-key($breakpoints, $breakpoint) { $breakpoint-value: map-get($breakpoints, $breakpoint); @media (min-width: $breakpoint-value) { @content; } } @else { @warn 'Invalid breakpoint: #{$breakpoint}.'; } } @mixin respond-below($breakpoint) { @if map-has-key($breakpoints, $breakpoint) { $breakpoint-value: map-get($breakpoints, $breakpoint); @media (max-width: ($breakpoint-value - 1)) { @content; } } @else { @warn 'Invalid breakpoint: #{$breakpoint}.'; } } @mixin respond-between($lower, $upper) { @if map-has-key($breakpoints, $lower) and map-has-key($breakpoints, $upper) { $lower-breakpoint: map-get($breakpoints, $lower); $upper-breakpoint: map-get($breakpoints, $upper); @media (min-width: $lower-breakpoint) and (max-width: ($upper-breakpoint - 1)) { @content; } } @else { @if (map-has-key($breakpoints, $lower)==false) { @warn 'Your lower breakpoint was invalid: #{$lower}.'; } @if (map-has-key($breakpoints, $upper)==false) { @warn 'Your upper breakpoint was invalid: #{$upper}.'; } } } @mixin border-radius($px: 0) { -webkit-border-radius: $px; -moz-border-radius: $px; border-radius: $px; } @mixin box-shadow($value) { -webkit-box-shadow: $value; -moz-box-shadow: $value; box-shadow: $value; } @mixin transition($element: all, $time: .5s, $option: ease) { -webkit-transition: $element $time $option; transition: $element $time $option; } @mixin opacity($value) { $IEValue: $value*100; opacity: $value; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity="+$IEValue+")"; filter: alpha(opacity=$IEValue); } @mixin flexbox() { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; } @mixin flex($values) { -webkit-box-flex: $values; -moz-box-flex: $values; -webkit-flex: $values; -ms-flex: $values; flex: $values; } @mixin flex-direction($direction) { -webkit-flex-direction: $direction; -moz-flex-direction: $direction; -ms-flex-direction: $direction; flex-direction: $direction; } @mixin flex-wrap($wrap) { -webkit-flex-wrap: $wrap; -moz-flex-wrap: $wrap; -ms-flex-wrap: $wrap; flex-wrap: $wrap; } @mixin flex-flow($flow) { -webkit-flex-flow: $flow; -moz-flex-flow: $flow; -ms-flex-flow: $flow; flex-flow: $flow; } @mixin order($val) { -webkit-box-ordinal-group: $val; -moz-box-ordinal-group: $val; -ms-flex-order: $val; -webkit-order: $val; order: $val; } @mixin flex-grow($grow) { -webkit-flex-grow: $grow; -moz-flex-grow: $grow; -ms-flex-grow: $grow; flex-grow: $grow; } @mixin flex-shrink($shrink) { -webkit-flex-shrink: $shrink; -moz-flex-shrink: $shrink; -ms-flex-shrink: $shrink; flex-shrink: $shrink; } @mixin flex-basis($width) { -webkit-flex-basis: $width; -moz-flex-basis: $width; -ms-flex-basis: $width; flex-basis: $width; } @mixin justify-content($justify) { -webkit-justify-content: $justify; -moz-justify-content: $justify; -ms-justify-content: $justify; justify-content: $justify; -ms-flex-pack: $justify; } @mixin align-content($align) { -webkit-align-content: $align; -moz-align-content: $align; -ms-align-content: $align; align-content: $align; } @mixin align-items($align) { -webkit-align-items: $align; -moz-align-items: $align; -ms-align-items: $align; align-items: $align; } @mixin align-self($align) { -webkit-align-self: $align; -moz-align-self: $align; -ms-align-self: $align; align-self: $align; }