}
}
- /// Replace `$search` with `$replace` in `$string`
- /// @author Hugo Giraudel
- /// @param {String} $string - Initial string
- /// @param {String} $search - Substring to replace
- /// @param {String} $replace ('') - New value
- /// @return {String} - Updated string
++// Replace `$search` with `$replace` in `$string`
++// @author Hugo Giraudel
++// @param {String} $string - Initial string
++// @param {String} $search - Substring to replace
++// @param {String} $replace ('') - New value
++// @return {String} - Updated string
+@function str-replace($string, $search, $replace: "") {
+ $index: str-index($string, $search);
+
+ @if $index {
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+ }
+
+ @return $string;
+}
+
+ @mixin _assert-starts-at-zero($map) {
+ $values: map-values($map);
+ $first-value: nth($values, 1);
+ @if $first-value != 0 {
+ @warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
+ }
+ }
+
++
// General variable structure
//
// Variable format should follow the `$component-modifier-state-property` order.
xl: 1200px
) !default;
@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
+ @include _assert-starts-at-zero($grid-breakpoints);
-// Grid containers
+// 7. Grid containers
//
// Define the maximum width of `.container` for different screen sizes.