| // element-invisible as defined by http://snook.ca/archives/html_and_css/hiding-content-for-accessibility |
| @mixin element-invisible { |
| position: absolute !important; |
| height: 1px; |
| width: 1px; |
| overflow: hidden; |
| @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { |
| clip: rect(1px 1px 1px 1px); // IE6 and IE7 use the wrong syntax. |
| } |
| clip: rect(1px, 1px, 1px, 1px); |
| } |
| |
| // Turns off the element-invisible effect. |
| @mixin element-invisible-off { |
| position: static !important; |
| clip: auto; |
| height: auto; |
| width: auto; |
| overflow: auto; |
| } |
| |
| @mixin element-focusable { |
| @include element-invisible; |
| &:active, |
| &:focus { |
| @include element-invisible-off; |
| } |
| } |
| |
| @mixin display-flex() { |
| display: -webkit-box; // Old Safari :( |
| display: -webkit-flex; |
| display: -moz-flex; |
| display: -ms-flex; |
| display: -o-flex; |
| display: flex; |
| } |
| |
| @mixin display-inline-flex() { |
| display: -webkit-inline-flex; |
| display: -moz-inline-flex; |
| display: -ms-inline-flex; |
| display: -o-inline-flex; |
| display: inline-flex; |
| } |
| |
| @mixin flex($val) { |
| -webkit-box-flex: $val; // Old Safari :( |
| -webkit-flex: $val; |
| -moz-flex: $val; |
| -ms-flex: $val; |
| -o-flex: $val; |
| flex: $val; |
| } |
| |
| @mixin justify-content($val: center) { |
| -webkit-box-pack: 1; // Old Safari :( TODO: don't hardcode 1. |
| -webkit-justify-content: $val; |
| -moz-justify-content: $val; |
| -ms-justify-content: $val; |
| -o-justify-content: $val; |
| justify-content: $val; |
| } |
| |
| @mixin align-items($val: center) { |
| -webkit-box-align: $val; // Old Safari :( |
| -webkit-align-items: $val; |
| -moz-align-items: $val; |
| -ms-align-items: $val; |
| -o-align-items: $val; |
| align-items: $val; |
| } |
| |
| @mixin align-self($val: center) { |
| -webkit-align-self: $val; |
| -moz-align-self: $val; |
| -ms-align-self: $val; |
| -o-align-self: $val; |
| align-self: $val; |
| } |
| |
| @mixin flex-direction($val) { |
| -webkit-box-orient: vertical; // Old Safari :(. TODO: don't hardcode "vertical". |
| -webkit-flex-direction: $val; |
| -moz-flex-direction: $val; |
| -ms-flex-direction: $val; |
| -o-flex-direction: $val; |
| flex-direction: $val; |
| } |
| |
| @mixin flex-wrap($val: nowrap) { |
| -webkit-flex-wrap: $val; |
| -moz-flex-wrap: $val; |
| -ms-flex-wrap: $val; |
| -o-flex-wrap: $val; |
| flex-wrap: $val; |
| } |
| |
| @mixin order($val) { |
| -webkit-box-ordinal-group: $val; // Old Safari :( |
| -webkit-order: $val; |
| -moz-order: $val; |
| -ms-order: $val; |
| -o-order: $val; |
| order: $val; |
| } |
| |
| // @mixin width-max-content() { |
| // width: -webkit-max-content; |
| // width: -moz-max-c; |
| // width: -ms-max-content; |
| // width: -o-max-content; |
| // width: max-content; |
| // } |
| |
| // @mixin width-min-content() { |
| // width: -webkit-min-content; |
| // width: -moz-min-content; |
| // width: -ms-min-content; |
| // width: -o-min-content; |
| // width: min-content; |
| // } |
| |
| @mixin user-select($val: none) { |
| -webkit-user-select: $val; |
| -moz-user-select: $val; |
| -o-user-select: $val; |
| -ms-user-select: $val; |
| user-select: $val; |
| } |
| |
| @mixin calc($property, $expression) { |
| #{$property}: -moz-calc(#{$expression}); |
| #{$property}: -o-calc(#{$expression}); |
| #{$property}: -webkit-calc(#{$expression}); |
| #{$property}: calc(#{$expression}); |
| } |
| |
| @mixin filter($val: none) { |
| -webkit-filter: $val; |
| -moz-filter: $val; |
| -o-filter: $val; |
| -ms-filter: $val; |
| //filter: $val; |
| } |