| ////////////////////////////// |
| // Default Variables |
| ////////////////////////////// |
| $Breakpoint-Settings: ( |
| 'default media': all, |
| 'default feature': min-width, |
| 'default pair': width, |
| |
| 'force all media type': false, |
| 'to ems': false, |
| 'transform resolutions': true, |
| |
| 'no queries': false, |
| 'no query fallbacks': false, |
| |
| 'base font size': 16px, |
| |
| 'legacy syntax': false |
| ); |
| |
| $breakpoint: () !default; |
| |
| ////////////////////////////// |
| // Imports |
| ////////////////////////////// |
| @import "settings"; |
| @import "context"; |
| @import "helpers"; |
| @import "parsers"; |
| @import "no-query"; |
| |
| @import "respond-to"; |
| |
| @import "legacy-settings"; |
| |
| ////////////////////////////// |
| // Breakpoint Mixin |
| ////////////////////////////// |
| |
| @mixin breakpoint($query, $no-query: false) { |
| @include legacy-settings-warning; |
| |
| // Reset contexts |
| @include private-breakpoint-reset-contexts(); |
| |
| $breakpoint: breakpoint($query, false); |
| |
| $query-string: map-get($breakpoint, 'query'); |
| $query-fallback: map-get($breakpoint, 'fallback'); |
| |
| $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global; |
| $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global; |
| |
| // Allow for an as-needed override or usage of no query fallback. |
| @if $no-query != false { |
| $query-fallback: $no-query; |
| } |
| |
| @if $query-fallback != false { |
| $context-setter: private-breakpoint-set-context('no-query', $query-fallback); |
| } |
| |
| // Print Out Query String |
| @if not breakpoint-get('no queries') { |
| @media #{$query-string} { |
| @content; |
| } |
| } |
| |
| @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true { |
| |
| $type: type-of(breakpoint-get('no query fallbacks')); |
| $print: false; |
| |
| @if ($type == 'bool') { |
| $print: true; |
| } |
| @else if ($type == 'string') { |
| @if $query-fallback == breakpoint-get('no query fallbacks') { |
| $print: true; |
| } |
| } |
| @else if ($type == 'list') { |
| @each $wrapper in breakpoint-get('no query fallbacks') { |
| @if $query-fallback == $wrapper { |
| $print: true; |
| } |
| } |
| } |
| |
| // Write Fallback |
| @if ($query-fallback != false) and ($print == true) { |
| $type-fallback: type-of($query-fallback); |
| |
| @if ($type-fallback != 'bool') { |
| #{$query-fallback} & { |
| @content; |
| } |
| } |
| @else { |
| @content; |
| } |
| } |
| } |
| |
| @include private-breakpoint-reset-contexts(); |
| } |
| |
| |
| @mixin mq($query, $no-query: false) { |
| @include breakpoint($query, $no-query) { |
| @content; |
| } |
| } |