bootstrap-4-grid-styl
Version:
Bootstrap 4 grid system and layout utilities using Stylus
70 lines (56 loc) • 2.06 kB
text/stylus
// Framework grid generation
//
// Used only by Bootstrap to generate the correct number of grid classes given
// any value of `$grid-columns`.
make-grid-columns($columns = $grid-columns, $gutter = $grid-gutter-width, $breakpoints = $grid-breakpoints)
// Common properties for all breakpoints
//$grid-column
// position: relative
// width: 100%
// min-height: 1px // Prevent columns from collapsing when empty
// padding-right: $gutter / 2
// padding-left: $gutter / 2
for $breakpoint in keys($breakpoints)
$infix = breakpoint-infix($breakpoint, $breakpoints)
// Allow columns to stretch full width below their breakpoints
for $i in (1..$columns)
.col{$infix}-{$i}
// @expands $grid-column
position: relative
width: 100%
min-height: 1px // Prevent columns from collapsing when empty
padding-right: ($gutter / 2)
padding-left: ($gutter / 2)
.col{$infix},
.col{$infix}-auto
// @expands $grid-column
position: relative
width: 100%
min-height: 1px // Prevent columns from collapsing when empty
padding-right: ($gutter / 2)
padding-left: ($gutter / 2)
+media-breakpoint-up($breakpoint, $breakpoints)
// Provide basic `.col-{bp}` classes for equal-width flexbox columns
.col{$infix}
flex-basis: 0
flex-grow: 1
max-width: 100%
.col{$infix}-auto
flex: 0 0 auto
width: auto
max-width: none // Reset earlier grid tiers
for $i in (1..$columns)
.col{$infix}-{$i}
make-col($i, $columns);
.order{$infix}-first
order: -1
.order{$infix}-last
order: $columns + 1
for $i in (0..$columns)
.order{$infix}-{$i}
order: $i
// `$columns - 1` because offsetting by the width of an entire row isn't possible
for $i in (0..($columns - 1))
if !($infix == "" and $i == 0) // Avoid emitting useless .offset-0
.offset{$infix}-{$i}
make-col-offset($i, $columns)