aboutsummaryrefslogtreecommitdiff
path: root/scss
diff options
context:
space:
mode:
authorMartijn Cuppens <[email protected]>2020-02-03 21:02:53 +0100
committerGitHub <[email protected]>2020-02-03 21:02:53 +0100
commit532feab38b99d5238118eb3e17b860a09d481fec (patch)
treef2483b7d6d4260aa966f8e6460edeff3523293f6 /scss
parentaa95f6d618691a8e14770106bb9dc5e75ea4170c (diff)
downloadbootstrap-532feab38b99d5238118eb3e17b860a09d481fec.tar.xz
bootstrap-532feab38b99d5238118eb3e17b860a09d481fec.zip
Split grid & containers (#29146)
Diffstat (limited to 'scss')
-rw-r--r--scss/_containers.scss45
-rw-r--r--scss/_grid.scss47
-rw-r--r--scss/_mixins.scss2
-rw-r--r--scss/bootstrap-grid.scss3
-rw-r--r--scss/bootstrap.scss1
-rw-r--r--scss/mixins/_container.scss19
-rw-r--r--scss/mixins/_grid-framework.scss64
-rw-r--r--scss/mixins/_grid.scss83
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);
+ }
+ }
+ }
+ }
+ }
+}