1 $font-family: Roboto, 'Helvetica Neue', sans-serif !default;
2 $font-size: 10px !default;
3 $display-4-font-size-base: rem(11.20) !default;
4 $display-3-font-size-base: rem(5.600) !default;
5 $display-2-font-size-base: rem(4.500) !default;
6 $display-1-font-size-base: rem(3.400) !default;
7 $headline-font-size-base: rem(2.400) !default;
8 $title-font-size-base: rem(2.000) !default;
9 $subhead-font-size-base: rem(1.600) !default;
10 $body-font-size-base: rem(1.400) !default;
11 $caption-font-size-base: rem(1.200) !default;
12 $baseline-grid: 8px !default;
13 $layout-gutter-width: ($baseline-grid * 2) !default;
14 $layout-breakpoint-xs: 600px !default;
15 $layout-breakpoint-sm: 960px !default;
16 $layout-breakpoint-md: 1280px !default;
17 $layout-breakpoint-lg: 1920px !default;
18 $button-left-right-padding: rem(0.600) !default;
19 $icon-size: rem(2.400) !default;
20 $app-bar-height: 64px !default;
21 $toast-height: $baseline-grid * 3 !default;
22 $toast-margin: $baseline-grid * 1 !default;
23 $shadow-key-umbra-opacity: 0.2 !default;
24 $shadow-key-penumbra-opacity: 0.14 !default;
25 $shadow-ambient-shadow-opacity: 0.12 !default;
26 $whiteframe-shadow-1dp: 0px 1px 3px 0px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 1px 1px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 2px 1px -1px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
27 $whiteframe-shadow-2dp: 0px 1px 5px 0px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 2px 2px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 1px -2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
28 $whiteframe-shadow-3dp: 0px 1px 8px 0px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 3px 4px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 3px -2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
29 $whiteframe-shadow-4dp: 0px 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 4px 5px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 1px 10px 0px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
30 $whiteframe-shadow-5dp: 0px 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 5px 8px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 1px 14px 0px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
31 $whiteframe-shadow-6dp: 0px 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 6px 10px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 1px 18px 0px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
32 $whiteframe-shadow-7dp: 0px 4px 5px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 7px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 2px 16px 1px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
33 $whiteframe-shadow-8dp: 0px 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
34 $whiteframe-shadow-9dp: 0px 5px 6px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 9px 12px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 16px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
35 $whiteframe-shadow-10dp: 0px 6px 6px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 10px 14px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 4px 18px 3px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
36 $whiteframe-shadow-11dp: 0px 6px 7px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 11px 15px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 4px 20px 3px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
37 $whiteframe-shadow-12dp: 0px 7px 8px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 12px 17px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 5px 22px 4px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
38 $whiteframe-shadow-13dp: 0px 7px 8px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 13px 19px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 5px 24px 4px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
39 $whiteframe-shadow-14dp: 0px 7px 9px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 14px 21px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 5px 26px 4px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
40 $whiteframe-shadow-15dp: 0px 8px 9px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 15px 22px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 6px 28px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
41 $whiteframe-shadow-16dp: 0px 8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
42 $whiteframe-shadow-17dp: 0px 8px 11px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 17px 26px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 6px 32px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
43 $whiteframe-shadow-18dp: 0px 9px 11px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 18px 28px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 7px 34px 6px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
44 $whiteframe-shadow-19dp: 0px 9px 12px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 19px 29px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 7px 36px 6px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
45 $whiteframe-shadow-20dp: 0px 10px 13px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 20px 31px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 8px 38px 7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
46 $whiteframe-shadow-21dp: 0px 10px 13px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 21px 33px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 8px 40px 7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
47 $whiteframe-shadow-22dp: 0px 10px 14px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 22px 35px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 8px 42px 7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
48 $whiteframe-shadow-23dp: 0px 11px 14px -7px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 23px 36px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 9px 44px 8px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
49 $whiteframe-shadow-24dp: 0px 11px 15px -7px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 24px 38px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 9px 46px 8px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
50 $z-index-toast: 105 !default;
51 $z-index-tooltip: 100 !default;
52 $z-index-menu: 100 !default;
53 $z-index-calendar-pane: 100 !default;
54 $z-index-select: 90 !default;
55 $z-index-dialog: 80 !default;
56 $z-index-bottom-sheet: 70 !default;
57 $z-index-scroll-mask: 50 !default;
58 $z-index-scroll-mask-bar: 65 !default;
59 $z-index-sidenav: 60 !default;
60 $z-index-backdrop: 50 !default;
61 $z-index-fab: 20 !default;
62 $z-index-progress-circular: 2 !default; // Used to fix animation bug in Chrome
63 $swift-ease-out-duration: 0.4s !default;
64 $swift-ease-out-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;
65 $swift-ease-out: all $swift-ease-out-duration $swift-ease-out-timing-function !default;
66 $swift-ease-in-duration: 0.3s !default;
67 $swift-ease-in-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2) !default;
68 $swift-ease-in: all $swift-ease-in-duration $swift-ease-in-timing-function !default;
69 $swift-ease-in-out-duration: 0.5s !default;
70 $swift-ease-in-out-timing-function: cubic-bezier(0.35, 0, 0.25, 1) !default;
71 $swift-ease-in-out: all $swift-ease-in-out-duration $swift-ease-in-out-timing-function !default;
72 $swift-linear-duration: 0.08s !default;
73 $swift-linear-timing-function: linear !default;
74 $swift-linear: all $swift-linear-duration $swift-linear-timing-function !default;
75 $material-enter-duration: 0.3s;
76 $material-enter-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
77 $material-enter: all $material-enter-duration $material-enter-timing-function;
78 $material-leave-duration: 0.3s;
79 $material-leave-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
80 $material-leave: all $material-leave-duration $material-leave-timing-function;
81 $button-fab-width: rem(5.600) !default;
82 $button-fab-height: rem(5.600) !default;
83 $button-fab-padding: rem(1.60) !default;
84 $checkbox-width: 20px !default;
85 $checkbox-height: $checkbox-width !default;
86 $checkbox-border-radius: 2px !default;
87 $checkbox-border-width: 2px !default;
88 $baseline-grid: 8px !default;
89 $layout-gutter-width: ($baseline-grid * 2) !default;
90 $layout-breakpoint-xs: 600px !default;
91 $layout-breakpoint-sm: 960px !default;
92 $layout-breakpoint-md: 1280px !default;
93 $layout-breakpoint-lg: 1920px !default;
95 // ------------------------------
97 //-- Must be defined before $font-size.
98 @function rem($multiplier) {
99 @return $multiplier * $font-size;
105 // ------------------------------
119 // NOTE(shyndman): gulp-sass seems to be failing if I split the shadow defs across
120 // multiple lines. Ugly. Sorry.
123 //--------------------------------------------
127 //--------------------------------------------
135 // Fab Buttons (shared between buttons.scss and fab*.scss)
136 // -------------------------------------------
139 // Shared Checkbox variables
141 @mixin margin-selectors($before:1em, $after:1em, $start:0px, $end:0px) {
142 -webkit-margin-before: $before;
143 -webkit-margin-after: $after;
144 -webkit-margin-start: $start;
145 -webkit-margin-end: $end;
148 @mixin not-selectable($value:none) {
149 -webkit-touch-callout: $value;
150 -webkit-user-select: $value;
151 -khtml-user-select: $value;
152 -moz-user-select: $value;
153 -ms-user-select: $value;
157 @mixin input-placeholder-color($color) {
158 $pseudos: '::-webkit-input-placeholder', ':-moz-placeholder', '::-moz-placeholder',
159 ':-ms-input-placeholder', '::-webkit-input-placeholder';
161 // It is important to export every pseudo within its own block, because otherwise the placeholder
162 // won't be set on the most browsers.
163 @each $pseudo in $pseudos {
165 color: unquote($color);
170 @mixin pie-clearfix {
178 @mixin md-shadow-bottom-z-1() {
179 box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
182 @mixin md-shadow-bottom-z-2() {
183 box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4);
186 // Mixin for a "flat" input that can be used for components that contain an input
187 // (datepicker, autocomplete).
188 @mixin md-flat-input() {
191 box-sizing: border-box;
195 background: transparent;
197 // The "clear X" that IE adds to input[type="search"]
206 font-size: $title-font-size-base;
208 letter-spacing: 0.005em;
212 font-size: $body-font-size-base;
214 letter-spacing: 0.010em;
219 font-size: $body-font-size-base;
221 letter-spacing: 0.010em;
222 line-height: rem(2.4);
225 @mixin md-subhead() {
226 font-size: $subhead-font-size-base;
228 letter-spacing: 0.010em;
229 line-height: rem(2.4);
232 @function map-to-string($map) {
234 $keys: map-keys($map);
236 @for $i from 1 through $len {
237 $key: nth($keys, $i);
238 $value: map-get($map, $key);
239 $map-str: $map-str + '_' + $key + '_: _' + map-get($map, $key) + '_';
241 $map-str: $map-str + ',';
244 @return $map-str + '}';
247 // This is a mixin, which fixes IE11's vertical alignment issue, when using `min-height`.
248 // See https://connect.microsoft.com/IE/feedback/details/816293/
249 @mixin ie11-min-height-flexbug($min-height) {
252 min-height: $min-height;
254 display: inline-block;
258 // mixin definition ; sets LTR and RTL within the same style call
259 // @see https://css-tricks.com/almanac/properties/d/direction/
261 @mixin rtl($prop, $ltr-value, $rtl-value) {
262 #{$prop}: $ltr-value;
264 #{$prop}: $rtl-value;
268 @mixin rtl-prop($ltr-prop, $rtl-prop, $value, $reset-value) {
269 #{$ltr-prop}: $value;
271 #{$ltr-prop}: $reset-value;
272 #{$rtl-prop}: $value;
276 // To reverse padding (top left bottom right) -> (top right bottom left)
277 @function rtl-value($list) {
278 @if length($list) == 4 {
279 @return nth($list, 1) nth($list, 4) nth($list, 3) nth($list, 2)
281 @if length($list) == 5 {
282 @return nth($list, 1) nth($list, 4) nth($list, 3) nth($list, 2) nth($list, 5)
287 // Position a FAB button.
288 @mixin fab-position($spot, $top: auto, $right: auto, $bottom: auto, $left: auto) {
298 @mixin fab-all-positions() {
299 @include fab-position(bottom-right, auto, ($button-fab-width - $button-fab-padding)/2, ($button-fab-height - $button-fab-padding)/2, auto);
300 @include fab-position(bottom-left, auto, auto, ($button-fab-height - $button-fab-padding)/2, ($button-fab-width - $button-fab-padding)/2);
301 @include fab-position(top-right, ($button-fab-height - $button-fab-padding)/2, ($button-fab-width - $button-fab-padding)/2, auto, auto);
302 @include fab-position(top-left, ($button-fab-height - $button-fab-padding)/2, auto, auto, ($button-fab-width - $button-fab-padding)/2);
305 // This mixin allows a user to use the md-checkbox css outside of the
306 // md-checkbox directive.
307 // See src/components/select/select.scss for an example.
308 @mixin checkbox-container(
309 $checkedSelector: '.md-checked',
310 $width: $checkbox-width,
311 $height: $checkbox-height,
312 $border-width: $checkbox-border-width,
313 $border-radius: $checkbox-border-radius) {
317 transform: translateY(-50%);
319 box-sizing: border-box;
320 display: inline-block;
324 @include rtl(left, 0, auto);
325 @include rtl(right, auto, 0);
328 box-sizing: border-box;
329 background-color: transparent;
339 transition: all 0.5s;
344 box-sizing: border-box;
353 .md-ripple-container {
367 box-sizing: border-box;
374 border-width: $border-width;
376 border-radius: $border-radius;
379 &#{$checkedSelector} .md-icon {
380 border-color: transparent;
383 box-sizing: border-box;
384 transform: rotate(45deg);
386 left: $width / 3 - $border-width;
387 top: $width / 9 - $border-width;
390 height: $width * 2 / 3;
391 border-width: $border-width;
404 &.md-indeterminate .md-icon {
406 box-sizing: border-box;
410 transform: translate(-50%, -50%);
413 height: $border-width;
414 border-width: $border-width;
423 // Mixin to create a primary checkbox.
424 // Used by the checkbox and select component.
425 @mixin checkbox-primary($checkedSelector: '.md-checked') {
427 color: '{{primary-600}}';
430 &#{$checkedSelector} .md-ripple {
431 color: '{{background-600}}';
435 color: '{{foreground-2}}';
438 &#{$checkedSelector} .md-ink-ripple {
439 color: '{{primary-color-0.87}}';
442 &:not(.md-checked) .md-icon {
443 border-color: '{{foreground-2}}';
446 &#{$checkedSelector} .md-icon {
447 background-color: '{{primary-color-0.87}}';
450 &#{$checkedSelector}.md-focused .md-container:before {
451 background-color: '{{primary-color-0.26}}';
454 &#{$checkedSelector} .md-icon:after {
455 border-color: '{{primary-contrast-0.87}}';
458 & .md-indeterminate[disabled] {
460 color: '{{foreground-3}}';
465 @mixin dense($prop, $normal, $dense) {
467 .md-dense > &:not(.md-dense-disabled),
468 .md-dense :not(.md-dense-disabled) &:not(.md-dense-disabled) {
473 @mixin dense-rtl($prop, $ltr-normal, $rtl-normal, $ltr-dense, $rtl-dense) {
474 @include rtl($prop, $ltr-normal, $rtl-normal);
475 .md-dense > &:not(.md-dense-disabled),
476 .md-dense :not(.md-dense-disabled) &:not(.md-dense-disabled) {
477 @include rtl($prop, $ltr-dense, $rtl-dense);
483 * Responsive attributes
486 * 1) https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties#flex
487 * 2) https://css-tricks.com/almanac/properties/f/flex/
488 * 3) https://css-tricks.com/snippets/css/a-guide-to-flexbox/
489 * 4) https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items
490 * 5) http://godban.com.ua/projects/flexgrid
495 // ------------------------------
499 @-moz-document url-prefix() {
509 @mixin flex-order-for-name($sizes:null) {
518 @for $i from -20 through 20 {
523 @if $s != '' { $suffix : '-#{$s}="#{$i}"'; }
524 @else { $suffix : '="#{$i}"'; }
526 $order : '[flex-order#{$suffix}]';
534 @mixin offset-for-name($sizes:null) {
535 @if $sizes == null { $sizes : ''; }
537 @for $i from 0 through 19 {
542 @if $s != '' { $suffix : '-#{$s}="#{$i * 5}"'; }
543 @else { $suffix : '="#{$i * 5}"'; }
545 $offsets : $offsets + '[flex-offset#{$suffix}], ';
549 margin-left: #{$i * 5 + '%'};
558 @if $s != '' { $suffix : '-#{$s}="#{$i}"'; }
559 @else { $suffix : '="#{$i}"'; }
561 $offsets : '[flex-offset#{$suffix}], ';
565 margin-left: calc(100% / 3);
574 @if $s != '' { $suffix : '-#{$s}="#{$i}"'; }
575 @else { $suffix : '="#{$i}"'; }
577 $offsets : '[flex-offset#{$suffix}]';
581 margin-left: calc(200% / 3);
586 @mixin layout-for-name($name: null) {
587 @if $name == null { $name : ''; }
588 @if $name != '' { $name : '-#{$name}'; }
590 [layout#{$name}], [layout#{$name}="column"], [layout#{$name}="row"] {
591 box-sizing: border-box;
592 display: -webkit-box;
593 display: -webkit-flex;
595 display: -ms-flexbox;
598 [layout#{$name}="column"] { flex-direction: column; }
599 [layout#{$name}="row"] { flex-direction: row; }
602 @mixin flex-properties-for-name($name: null) {
605 $flexName: 'flex-#{$name}';
611 [#{$flexName}] { flex: 1; box-sizing: border-box; } // === flex: 1 1 0%;
613 [#{$flexName}-grow] { flex: 1 1 100%; box-sizing: border-box; }
614 [#{$flexName}-initial] { flex: 0 1 auto; box-sizing: border-box; }
615 [#{$flexName}-auto] { flex: 1 1 auto; box-sizing: border-box; }
616 [#{$flexName}-none] { flex: 0 0 auto; box-sizing: border-box; }
618 // (1-20) * 5 = 0-100%
619 @for $i from 0 through 20 {
620 $value : #{$i * 5 + '%'};
622 [#{$flexName}="#{$i * 5}"] {
624 max-width: #{$value};
626 box-sizing: border-box;
629 [layout="row"] > [#{$flexName}="#{$i * 5}"] {
631 max-width: #{$value};
633 box-sizing: border-box;
636 [layout="column"] > [#{$flexName}="#{$i * 5}"] {
639 max-height: #{$value};
640 box-sizing: border-box;
644 > [#{$flexName}="33"] , > [#{$flexName}="33"] { flex: 1 1 33.33%; max-width: 33.33%; max-height: 100%; box-sizing: border-box; }
645 > [#{$flexName}="66"] , > [#{$flexName}="66"] { flex: 1 1 66.66%; max-width: 66.66%; max-height: 100%; box-sizing: border-box; }
649 > [#{$flexName}="33"] , > [#{$flexName}="33"] { flex: 1 1 33.33%; max-width: 100%; max-height: 33.33%; box-sizing: border-box; }
650 > [#{$flexName}="66"] , > [#{$flexName}="66"] { flex: 1 1 66.66%; max-width: 100%; max-height: 66.66%; box-sizing: border-box; }
653 [layout#{$name}="row"] > [#{$flexName}="#{$i * 5}"] {
655 max-width: #{$value};
657 box-sizing: border-box;
660 [layout#{$name}="column"] > [#{$flexName}="#{$i * 5}"] {
663 max-height: #{$value};
664 box-sizing: border-box;
668 [layout#{$name}="row"] {
669 > [#{$flexName}="33"] , > [#{$flexName}="33"] { flex: 1 1 33.33%; max-width: 33.33%; max-height: 100%; box-sizing: border-box; }
670 > [#{$flexName}="66"] , > [#{$flexName}="66"] { flex: 1 1 66.66%; max-width: 66.66%; max-height: 100%; box-sizing: border-box; }
673 [layout#{$name}="column"] {
674 > [#{$flexName}="33"] , > [#{$flexName}="33"] { flex: 1 1 33.33%; max-width: 100%; max-height: 33.33%; box-sizing: border-box; }
675 > [#{$flexName}="66"] , > [#{$flexName}="66"] { flex: 1 1 66.66%; max-width: 100%; max-height: 66.66%; box-sizing: border-box; }
679 @mixin layout-align-for-name($suffix: null) {
681 // Alignment attributes for layout containers' children
682 // Arrange on the Main Axis
683 // center, start, end, space-between, space-around
684 // flex-start is the default for justify-content
685 // ------------------------------
687 $name: 'layout-align';
688 @if $suffix != null {
689 $name: 'layout-align-#{$suffix}';
693 [#{$name}="start stretch"] // defaults
695 justify-content :flex-start;
696 align-content : stretch;
697 align-items: stretch;
701 [#{$name}="start start"],
702 [#{$name}="start center"],
703 [#{$name}="start end"],
704 [#{$name}="start stretch"]
706 justify-content: flex-start;
711 [#{$name}="center start"],
712 [#{$name}="center center"],
713 [#{$name}="center end"],
714 [#{$name}="center stretch"]
716 justify-content: center;
720 [#{$name}="end"], //stretch
721 [#{$name}="end center"],
722 [#{$name}="end start"],
723 [#{$name}="end end"],
724 [#{$name}="end stretch"]
726 justify-content: flex-end;
729 // Main Axis Space Around
730 [#{$name}="space-around"], //stretch
731 [#{$name}="space-around center"],
732 [#{$name}="space-around start"],
733 [#{$name}="space-around end"],
734 [#{$name}="space-around stretch"]
736 justify-content: space-around;
739 // Main Axis Space Between
740 [#{$name}="space-between"], //stretch
741 [#{$name}="space-between center"],
742 [#{$name}="space-between start"],
743 [#{$name}="space-between end"],
744 [#{$name}="space-between stretch"]
746 justify-content: space-between;
750 // Arrange on the Cross Axis
751 // center, start, end
752 // stretch is the default for align-items
753 // ------------------------------
756 [#{$name}="start start"],
757 [#{$name}="center start"],
758 [#{$name}="end start"],
759 [#{$name}="space-between start"],
760 [#{$name}="space-around start"]
762 align-items: flex-start;
763 align-content: flex-start;
767 [#{$name}="start center"],
768 [#{$name}="center center"],
769 [#{$name}="end center"],
770 [#{$name}="space-between center"],
771 [#{$name}="space-around center"]
774 align-content: center;
778 // Cross Axis Center IE overflow fix
779 [#{$name}="start center"] > *,
780 [#{$name}="center center"] > *,
781 [#{$name}="end center"] > *,
782 [#{$name}="space-between center"] > *,
783 [#{$name}="space-around center"] > *
786 box-sizing: border-box;
790 [#{$name}="start end"],
791 [#{$name}="center end"],
792 [#{$name}="end end"],
793 [#{$name}="space-between end"],
794 [#{$name}="space-around end"]
796 align-items: flex-end;
797 align-content: flex-end;
800 // Cross Axis stretch
801 [#{$name}="start stretch"],
802 [#{$name}="center stretch"],
803 [#{$name}="end stretch"],
804 [#{$name}="space-between stretch"],
805 [#{$name}="space-around stretch"]
807 align-items: stretch;
808 align-content: stretch;
811 @mixin layout-padding-margin() {
813 [layout-padding] > [flex-sm], [layout-padding] > [flex-lt-md] {
814 padding: $layout-gutter-width / 4;
817 [layout-padding] > [flex],
818 [layout-padding] > [flex-gt-sm],
819 [layout-padding] > [flex-md],
820 [layout-padding] > [flex-lt-lg]
822 padding: $layout-gutter-width / 2;
824 [layout-padding] > [flex-gt-md],
825 [layout-padding] > [flex-lg]
827 padding: $layout-gutter-width / 1;
830 [layout-margin] > [flex-sm],
831 [layout-margin] > [flex-lt-md]
833 margin: $layout-gutter-width / 4;
837 [layout-margin] > [flex],
838 [layout-margin] > [flex-gt-sm],
839 [layout-margin] > [flex-md],
840 [layout-margin] > [flex-lt-lg]
842 margin: $layout-gutter-width / 2;
845 [layout-margin] > [flex-gt-md],
846 [layout-margin] > [flex-lg]
848 margin: $layout-gutter-width / 1;
867 @mixin layouts_for_breakpoint($name:null) {
868 @include flex-order-for-name($name);
869 @include offset-for-name($name);
870 @include layout-align-for-name($name);
872 @include flex-properties-for-name($name);
873 @include layout-for-name($name);
877 * Apply Mixins to create Layout/Flexbox styles
882 @include layouts_for_breakpoint();
883 @include layout-padding-margin();
887 * `hide-gt-sm show-gt-lg` should hide from 600px to 1200px
888 * `show-md hide-gt-sm` should show from 0px to 960px and hide at >960px
889 * `hide-gt-md show-gt-sm` should show everywhere (show overrides hide)`
891 * hide means hide everywhere
893 * $layout-breakpoint-xs: 600px !default;
894 * $layout-breakpoint-sm: 960px !default;
895 * $layout-breakpoint-md: 1280px !default;
896 * $layout-breakpoint-lg: 1920px !default;
900 @media (max-width: $layout-breakpoint-xs - 1) {
903 &:not([show-xs]):not([show]) {
907 @include layouts_for_breakpoint(xs);
910 @media (min-width: $layout-breakpoint-xs) {
911 // BIGGER THAN Xtra-SMALL SCREEN
912 @include layouts_for_breakpoint(gt-xs);
916 @media (min-width: $layout-breakpoint-xs) and (max-width: $layout-breakpoint-sm - 1) {
918 [hide], [hide-gt-xs] {
919 &:not([show-gt-xs]):not([show-sm]):not([show]) {
923 [hide-sm]:not([show-gt-xs]):not([show-sm]):not([show]) {
926 @include layouts_for_breakpoint(sm);
929 @media (min-width: $layout-breakpoint-sm) {
930 // BIGGER THAN SMALL SCREEN
931 @include layouts_for_breakpoint(gt-sm);
935 @media (min-width: $layout-breakpoint-sm) and (max-width: $layout-breakpoint-md - 1) {
937 [hide], [hide-gt-xs], [hide-gt-sm] {
938 &:not([show-gt-xs]):not([show-gt-sm]):not([show-md]):not([show]) {
942 [hide-md]:not([show-md]):not([show]) {
945 @include layouts_for_breakpoint(md);
948 @media (min-width: $layout-breakpoint-md) {
949 // BIGGER THAN MEDIUM SCREEN
950 @include layouts_for_breakpoint(gt-md);
953 @media (min-width: $layout-breakpoint-md) and (max-width: $layout-breakpoint-lg - 1) {
955 [hide],[hide-gt-xs], [hide-gt-sm], [hide-gt-md] {
956 &:not([show-gt-xs]):not([show-gt-sm]):not([show-gt-md]):not([show-lg]):not([show]) {
960 [hide-lg]:not([show-lg]):not([show]) {
964 @include layouts_for_breakpoint(lg);
967 @media (min-width: $layout-breakpoint-lg) {
968 // BIGGER THAN LARGE SCREEN
969 @include layouts_for_breakpoint(gt-lg);
970 @include layouts_for_breakpoint(xl);
972 // BIGGER THAN LARGE SCREEN
973 [hide], [hide-gt-xs], [hide-gt-sm], [hide-gt-md], [hide-gt-lg] {
974 &:not([show-gt-xs]):not([show-gt-sm]):not([show-gt-md]):not([show-gt-lg]):not([show-xl]):not([show]) {
978 [hide-xl]:not([show-xl]):not([show-gt-lg]):not([show]) {
985 @include layouts_for_breakpoint(print);
987 [hide-print]:not([show-print]):not([show]) {