Created
January 7, 2019 18:00
-
-
Save Xilonz/687e0cbf49cd2669bc6f6e2eae5958d2 to your computer and use it in GitHub Desktop.
Bootstrap 4: Allow for more columns than grid-columns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Define $total-columns in variables. | |
// This is usefull for horizontal scrolling purposes. | |
@mixin make-grid-columns($columns: $total-columns, $width: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) { | |
// Common properties for all breakpoints | |
%grid-column { | |
position: relative; | |
width: 100%; | |
padding-right: $gutter / 2; | |
padding-left: $gutter / 2; | |
} | |
@each $breakpoint in map-keys($breakpoints) { | |
$infix: breakpoint-infix($breakpoint, $breakpoints); | |
// Allow columns to stretch full width below their breakpoints | |
@for $i from 1 through $columns { | |
.col#{$infix}-#{$i} { | |
@extend %grid-column; | |
} | |
} | |
.col#{$infix}, | |
.col#{$infix}-auto { | |
@extend %grid-column; | |
} | |
@include 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: 100%; // Reset earlier grid tiers | |
} | |
@for $i from 1 through $columns { | |
.col#{$infix}-#{$i} { | |
@include make-col($i, $width); | |
} | |
} | |
.order#{$infix}-first { order: -1; } | |
.order#{$infix}-last { order: $columns + 1; } | |
@for $i from 0 through $columns { | |
.order#{$infix}-#{$i} { order: $i; } | |
} | |
// `$columns - 1` because offsetting by the width of an entire row isn't possible | |
@for $i from 0 through ($columns - 1) { | |
@if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0 | |
.offset#{$infix}-#{$i} { | |
@include make-col-offset($i, $width); | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment