UNPKG

bootstrap-less-port

Version:
162 lines (149 loc) 4.31 kB
// 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); // // @if $columns > 0 { // // 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%; // } // // @if $grid-row-columns > 0 { // @for $i from 1 through $grid-row-columns { // .row-cols#{$infix}-#{$i} { // @include row-cols($i); // } // } // } // // .col#{$infix}-auto { // @include make-col-auto(); // } // // @if $columns > 0 { // @for $i from 1 through $columns { // .col#{$infix}-#{$i} { // @include make-col($i, $columns); // } // } // } // // .order#{$infix}-first { order: -1; } // // .order#{$infix}-last { order: $columns + 1; } // // @for $i from 0 through $columns { // .order#{$infix}-#{$i} { order: $i; } // } // // @if $columns > 0 { // // `$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); // } // } // } // } // } // } //} #make-grid-columns(@columns: @grid-columns, @gutter: @grid-gutter-width, @breakpoints: @grid-breakpoints) { // Common properties for all breakpoints // LESS PORT: Unfortunately we have to use an actual selector here in order to be able to // `:extend()` it later. This means that the selector is output in the compiled CSS, creating a // small disparity between the Less and Sass versions. \%grid-column { position: relative; width: 100%; padding-right: (@gutter / 2); padding-left: (@gutter / 2); }; each(map-keys(@breakpoints), #(@breakpoint) { @infix: breakpoint-infix(@breakpoint, @breakpoints); & when (@columns > 0) { // Allow columns to stretch full width below their breakpoints each(range(@columns), #(@i) { .col@{infix}-@{i} { &:extend(\%grid-column); } }); } .col@{infix}, .col@{infix}-auto { &:extend(\%grid-column); } #media-breakpoint-up(@breakpoint, { // 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%; } & when (@grid-row-columns > 0) { each(range(@grid-row-columns), #(@i) { .row-cols@{infix}-@{i} { #row-cols(@i); } }); } .col@{infix}-auto { #make-col-auto(); } & when (@columns > 0) { each(range(@columns), #(@i) { .col@{infix}-@{i} { #make-col(@i, @columns); } }); } .order@{infix}-first { order: -1; } .order@{infix}-last { order: (@columns + 1); } each(range(0, @columns), #(@i) { .order@{infix}-@{i} { order: @i; } }); & when (@columns > 0) { // `@columns - 1` because offsetting by the width of an entire row isn't possible each(range(0, (@columns - 1)), #(@i) { & when not (@i = 0), (@i = 0) and not (@infix = ~"") { .offset@{infix}-@{i} { #make-col-offset(@i, @columns); } } }); } }); }); }