123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- @function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
- $n: index($breakpoint-names, $name);
- @if not $n {
- @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
- }
- @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
- }
- @function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
- $min: map-get($breakpoints, $name);
- @return if($min != 0, $min, null);
- }
- @function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
- $max: map-get($breakpoints, $name);
- @return if($max and $max > 0, $max - .02, null);
- }
- @function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
- @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
- }
- @mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
- $min: breakpoint-min($name, $breakpoints);
- @if $min {
- @media (min-width: $min) {
- @content;
- }
- } @else {
- @content;
- }
- }
- @mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
- $max: breakpoint-max($name, $breakpoints);
- @if $max {
- @media (max-width: $max) {
- @content;
- }
- } @else {
- @content;
- }
- }
- @mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
- $min: breakpoint-min($lower, $breakpoints);
- $max: breakpoint-max($upper, $breakpoints);
- @if $min != null and $max != null {
- @media (min-width: $min) and (max-width: $max) {
- @content;
- }
- } @else if $max == null {
- @include media-breakpoint-up($lower, $breakpoints) {
- @content;
- }
- } @else if $min == null {
- @include media-breakpoint-down($upper, $breakpoints) {
- @content;
- }
- }
- }
- @mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
- $min: breakpoint-min($name, $breakpoints);
- $next: breakpoint-next($name, $breakpoints);
- $max: breakpoint-max($next);
- @if $min != null and $max != null {
- @media (min-width: $min) and (max-width: $max) {
- @content;
- }
- } @else if $max == null {
- @include media-breakpoint-up($name, $breakpoints) {
- @content;
- }
- } @else if $min == null {
- @include media-breakpoint-down($next, $breakpoints) {
- @content;
- }
- }
- }
|