|
17 | 17 | @function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) { |
18 | 18 | $n: index($breakpoint-names, $name); |
19 | 19 | @if not $n { |
20 | | - @error "breakpoint `#{$name}` not found in `#{$breakpoints}`"; |
| 20 | + @error "breakpoint `#{$name}` not found in `#{$breakpoint-names}`"; |
21 | 21 | } |
22 | 22 | @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null); |
23 | 23 | } |
|
31 | 31 | @return if($min != 0, $min, null); |
32 | 32 | } |
33 | 33 |
|
34 | | -// Maximum breakpoint width. |
35 | | -// The maximum value is reduced by 0.02px to work around the limitations of |
36 | | -// `min-` and `max-` prefixes and viewports with fractional widths. |
37 | | -// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max |
38 | | -// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari. |
39 | | -// See https://bugs.webkit.org/show_bug.cgi?id=178261 |
| 34 | +// Maximum breakpoint width for range media queries. |
| 35 | +// Returns the breakpoint value to use as an upper bound in range queries. |
40 | 36 | // |
41 | | -// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)) |
42 | | -// 767.98px |
| 37 | +// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)) |
| 38 | +// 576px |
| 39 | +// >> breakpoint-max(xxl, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)) |
| 40 | +// null |
43 | 41 | @function breakpoint-max($name, $breakpoints: $grid-breakpoints) { |
| 42 | + @if $name == null { |
| 43 | + @return null; |
| 44 | + } |
44 | 45 | $max: map-get($breakpoints, $name); |
45 | | - @return if($max and $max > 0, $max - .02, null); |
| 46 | + @return if($max and $max > 0, $max, null); |
46 | 47 | } |
47 | 48 |
|
48 | 49 | // Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front. |
|
61 | 62 | @mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) { |
62 | 63 | $min: breakpoint-min($name, $breakpoints); |
63 | 64 | @if $min { |
64 | | - @media (min-width: $min) { |
| 65 | + @media (width >= $min) { |
65 | 66 | @content; |
66 | 67 | } |
67 | 68 | } @else { |
|
74 | 75 | @mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) { |
75 | 76 | $max: breakpoint-max($name, $breakpoints); |
76 | 77 | @if $max { |
77 | | - @media (max-width: $max) { |
| 78 | + @media (width < $max) { |
78 | 79 | @content; |
79 | 80 | } |
80 | 81 | } @else { |
|
89 | 90 | $max: breakpoint-max($upper, $breakpoints); |
90 | 91 |
|
91 | 92 | @if $min != null and $max != null { |
92 | | - @media (min-width: $min) and (max-width: $max) { |
| 93 | + @media (width >= $min) and (width < $max) { |
93 | 94 | @content; |
94 | 95 | } |
95 | 96 | } @else if $max == null { |
|
112 | 113 | $max: breakpoint-max($next, $breakpoints); |
113 | 114 |
|
114 | 115 | @if $min != null and $max != null { |
115 | | - @media (min-width: $min) and (max-width: $max) { |
| 116 | + @media (width >= $min) and (width < $max) { |
116 | 117 | @content; |
117 | 118 | } |
118 | 119 | } @else if $max == null { |
|
0 commit comments