bootstrap-4-grid-styl
Version:
Bootstrap 4 grid system and layout utilities using Stylus
44 lines (38 loc) • 1.75 kB
text/stylus
// Bootstrap functions
//
// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
// Ascending
// Used to evaluate Sass maps like our grid breakpoints.
_assert-ascending($map, $map-name)
$prev-key = null
$prev-num = null
for $key, $num in $map
if $prev-num == null
// Do nothing
else if !comparable($prev-num, $num)
warn("Potentially invalid value for "+$map-name+": This map must be in ascending order, but key '"+$key+"' has value "+$num+" whose unit makes it incomparable to "+$prev-num+", the value of the previous key '"+$prev-key+"' !")
else if $prev-num >= $num
warn("Invalid value for "+$map-name+": This map must be in ascending order, but key '"+$key+"' has value "+$num+" which isn't greater than "+$prev-num+", the value of the previous key '"+$prev-key+"' !")
$prev-key = $key
$prev-num = $num
// Starts at zero
// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.
_assert-starts-at-zero($map)
$values = values($map)
$first-value = $values[0]
if $first-value != 0
warn("First breakpoint in `$grid-breakpoints` must start at 0, but starts at "+$first-value+".")
// Replace `$search` with `$replace` in `$string`
// Used on our SVG icon backgrounds for custom forms.
//
// @author Hugo Giraudel
// @param {String} $string - Initial string
// @param {String} $search - Substring to replace
// @param {String} $replace ('') - New value
// @return {String} - Updated string
str-replace($string, $search, $replace = "")
$index = index($string, $search)
if $index
slice($string, 1, $index - 1) + $replace + replace(slice($string, $index + length($search)), $search, $replace)
else
$string