diff options
| author | Martijn Cuppens <[email protected]> | 2020-02-03 21:02:53 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-02-03 21:02:53 +0100 |
| commit | 532feab38b99d5238118eb3e17b860a09d481fec (patch) | |
| tree | f2483b7d6d4260aa966f8e6460edeff3523293f6 /scss | |
| parent | aa95f6d618691a8e14770106bb9dc5e75ea4170c (diff) | |
| download | bootstrap-532feab38b99d5238118eb3e17b860a09d481fec.tar.xz bootstrap-532feab38b99d5238118eb3e17b860a09d481fec.zip | |
Split grid & containers (#29146)
Diffstat (limited to 'scss')
| -rw-r--r-- | scss/_containers.scss | 45 | ||||
| -rw-r--r-- | scss/_grid.scss | 47 | ||||
| -rw-r--r-- | scss/_mixins.scss | 2 | ||||
| -rw-r--r-- | scss/bootstrap-grid.scss | 3 | ||||
| -rw-r--r-- | scss/bootstrap.scss | 1 | ||||
| -rw-r--r-- | scss/mixins/_container.scss | 19 | ||||
| -rw-r--r-- | scss/mixins/_grid-framework.scss | 64 | ||||
| -rw-r--r-- | scss/mixins/_grid.scss | 83 |
8 files changed, 133 insertions, 131 deletions
diff --git a/scss/_containers.scss b/scss/_containers.scss new file mode 100644 index 000000000..125de8d9b --- /dev/null +++ b/scss/_containers.scss @@ -0,0 +1,45 @@ +// Container widths +// +// Set the container width, and override it for fixed navbars in media queries. + +@if $enable-grid-classes { + // Single container class with breakpoint max-widths + .container { + @include make-container(); + @include make-container-max-widths(); + } + + // 100% wide container at all breakpoints + .container-fluid { + @include make-container(); + } + + // Responsive containers that are 100% wide until a breakpoint + @each $breakpoint, $container-max-width in $container-max-widths { + .container-#{$breakpoint} { + @extend .container-fluid; + } + + @include media-breakpoint-up($breakpoint, $grid-breakpoints) { + %responsive-container-#{$breakpoint} { + max-width: $container-max-width; + } + + // Extend each breakpoint which is smaller or equal to the current breakpoint + $extend-breakpoint: true; + + @each $name, $width in $grid-breakpoints { + @if ($extend-breakpoint) { + .container#{breakpoint-infix($name, $grid-breakpoints)} { + @extend %responsive-container-#{$breakpoint}; + } + + // Once the current breakpoint is reached, stop extending + @if ($breakpoint == $name) { + $extend-breakpoint: false; + } + } + } + } + } +} diff --git a/scss/_grid.scss b/scss/_grid.scss index 57ec5a9d0..8bcb419e1 100644 --- a/scss/_grid.scss +++ b/scss/_grid.scss @@ -1,50 +1,3 @@ -// Container widths -// -// Set the container width, and override it for fixed navbars in media queries. - -@if $enable-grid-classes { - // Single container class with breakpoint max-widths - .container { - @include make-container(); - @include make-container-max-widths(); - } - - // 100% wide container at all breakpoints - .container-fluid { - @include make-container(); - } - - // Responsive containers that are 100% wide until a breakpoint - @each $breakpoint, $container-max-width in $container-max-widths { - .container-#{$breakpoint} { - @extend .container-fluid; - } - - @include media-breakpoint-up($breakpoint, $grid-breakpoints) { - %responsive-container-#{$breakpoint} { - max-width: $container-max-width; - } - - // Extend each breakpoint which is smaller or equal to the current breakpoint - $extend-breakpoint: true; - - @each $name, $width in $grid-breakpoints { - @if ($extend-breakpoint) { - .container#{breakpoint-infix($name, $grid-breakpoints)} { - @extend %responsive-container-#{$breakpoint}; - } - - // Once the current breakpoint is reached, stop extending - @if ($breakpoint == $name) { - $extend-breakpoint: false; - } - } - } - } - } -} - - // Row // // Rows contain your columns. diff --git a/scss/_mixins.scss b/scss/_mixins.scss index b4b0ee763..5a04655d5 100644 --- a/scss/_mixins.scss +++ b/scss/_mixins.scss @@ -38,5 +38,5 @@ // Layout @import "mixins/clearfix"; -@import "mixins/grid-framework"; +@import "mixins/container"; @import "mixins/grid"; diff --git a/scss/bootstrap-grid.scss b/scss/bootstrap-grid.scss index bf609352e..ed72265a4 100644 --- a/scss/bootstrap-grid.scss +++ b/scss/bootstrap-grid.scss @@ -19,10 +19,11 @@ html { @import "variables"; @import "mixins/breakpoints"; -@import "mixins/grid-framework"; +@import "mixins/container"; @import "mixins/grid"; @import "mixins/utilities"; +@import "containers"; @import "grid"; @import "utilities"; diff --git a/scss/bootstrap.scss b/scss/bootstrap.scss index a2f055453..dcfdc05ce 100644 --- a/scss/bootstrap.scss +++ b/scss/bootstrap.scss @@ -19,6 +19,7 @@ @import "reboot"; @import "type"; @import "images"; +@import "containers"; @import "grid"; @import "tables"; @import "forms"; diff --git a/scss/mixins/_container.scss b/scss/mixins/_container.scss new file mode 100644 index 000000000..67c2f5fdc --- /dev/null +++ b/scss/mixins/_container.scss @@ -0,0 +1,19 @@ +// Container mixins + +@mixin make-container($padding-x: $container-padding-x) { + width: 100%; + padding-right: $padding-x; + padding-left: $padding-x; + margin-right: auto; + margin-left: auto; +} + + +// For each breakpoint, define the maximum width of the container in a media query +@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { + @each $breakpoint, $container-max-width in $max-widths { + @include media-breakpoint-up($breakpoint, $breakpoints) { + max-width: $container-max-width; + } + } +} diff --git a/scss/mixins/_grid-framework.scss b/scss/mixins/_grid-framework.scss deleted file mode 100644 index 53e97b44a..000000000 --- a/scss/mixins/_grid-framework.scss +++ /dev/null @@ -1,64 +0,0 @@ -// Framework grid generation -// -// Used only by Bootstrap to generate the correct number of grid classes given -// any value of `$grid-columns`. - -@mixin make-grid-columns($columns: $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; - min-width: 0; // See https://github.com/twbs/bootstrap/issues/25410 - max-width: 100%; - } - - @for $i from 1 through $grid-row-columns { - .row-cols#{$infix}-#{$i} { - @include row-cols($i); - } - } - - .col#{$infix}-auto { - @include make-col-auto(); - } - - @for $i from 1 through $columns { - .col#{$infix}-#{$i} { - @include make-col($i, $columns); - } - } - - // `$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, $columns); - } - } - } - } - } -} diff --git a/scss/mixins/_grid.scss b/scss/mixins/_grid.scss index 938b21095..f89ff1e3e 100644 --- a/scss/mixins/_grid.scss +++ b/scss/mixins/_grid.scss @@ -2,24 +2,6 @@ // // Generate semantic grid columns with these mixins. -@mixin make-container($padding-x: $container-padding-x) { - width: 100%; - padding-right: $padding-x; - padding-left: $padding-x; - margin-right: auto; - margin-left: auto; -} - - -// For each breakpoint, define the maximum width of the container in a media query -@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { - @each $breakpoint, $container-max-width in $max-widths { - @include media-breakpoint-up($breakpoint, $breakpoints) { - max-width: $container-max-width; - } - } -} - @mixin make-row($gutter: $grid-gutter-width) { display: flex; flex-wrap: wrap; @@ -67,3 +49,68 @@ max-width: 100% / $count; } } + +// Framework grid generation +// +// Used only by Bootstrap to generate the correct number of grid classes given +// any value of `$grid-columns`. + +@mixin make-grid-columns($columns: $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; + min-width: 0; // See https://github.com/twbs/bootstrap/issues/25410 + max-width: 100%; + } + + @for $i from 1 through $grid-row-columns { + .row-cols#{$infix}-#{$i} { + @include row-cols($i); + } + } + + .col#{$infix}-auto { + @include make-col-auto(); + } + + @for $i from 1 through $columns { + .col#{$infix}-#{$i} { + @include make-col($i, $columns); + } + } + + // `$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, $columns); + } + } + } + } + } +} |
