// Collapsing
&.#{$collapse} {
- > .#{$column} { @include grid-col-collapse; }
+ > .#{$column} {
+ @include grid-col-collapse;
+ }
}
// Nesting
& & {
- @if $grid-column-gutter == null {
- @each $breakpoint, $gutter in $grid-column-responsive-gutter {
- @include breakpoint($breakpoint) {
- @include grid-row-nest($gutter);
- }
- }
- }
- @else {
- @include grid-row-nest($grid-column-gutter);
- }
+ @include grid-row-nest($grid-column-gutter);
&.#{$collapse} {
margin-left: 0;
}
// Responsive collapsing
- &.#{$-zf-size}-#{$collapse} {
+ .#{$-zf-size}-#{$collapse} {
> .#{$column} { @include grid-col-collapse; }
}
- &.#{$-zf-size}-#{$uncollapse} {
- @if $grid-column-gutter {
- $gutter: $grid-column-gutter;
- }
- @else {
- $gutter: -zf-get-bp-val($grid-column-responsive-gutter, $-zf-size);
- }
+ .#{$-zf-size}-#{$uncollapse} {
+ $gutter: -zf-get-bp-val($grid-column-gutter, $-zf-size);
+
> .#{$column} { @include grid-col-uncollapse($gutter); }
}
$columns: $grid-column-count,
$gutter: $grid-column-gutter
) {
- @if $gutter != null {
- $gutter: rem-calc($gutter) / 2;
- }
- @else {
- @each $breakpoint, $gutter in $grid-column-responsive-gutter {
- $padding: rem-calc($gutter) / 2;
-
- @include breakpoint($breakpoint) {
- padding-left: $padding;
- padding-right: $padding;
- }
- }
- }
-
+ // Core properties
@include grid-column-size($columns);
float: $global-left;
- padding-left: $gutter;
- padding-right: $gutter;
+ // Gutters
+ @each $breakpoint, $value in $gutter {
+ $padding: rem-calc($value) / 2;
+
+ @include breakpoint($breakpoint) {
+ padding-left: $padding;
+ padding-right: $padding;
+ }
+ }
+
+ // Last column alignment
@if $grid-column-align-edge {
&:last-child:not(:first-child) {
float: $global-right;
$columns: null,
$gutter: $grid-column-gutter
) {
- @if $gutter != null {
- $gutter: rem-calc($gutter) / 2;
- }
- @else {
- @each $breakpoint, $gutter in $grid-column-responsive-gutter {
- $padding: rem-calc($gutter) / 2;
-
- @include breakpoint($breakpoint) {
- padding-left: $padding;
- padding-right: $padding;
- }
+ // Base properties
+ flex: flex-grid-column($columns);
+
+ // Padding
+ @each $breakpoint, $value in $gutter {
+ $padding: rem-calc($value) / 2;
+
+ @include breakpoint($breakpoint) {
+ padding-left: $padding;
+ padding-right: $padding;
}
}
- flex: flex-grid-column($columns);
- padding-left: $gutter;
- padding-right: $gutter;
-
// max-width fixes IE 10/11 not respecting the flex-basis property
@if $columns != null and $columns != shrink {
max-width: grid-column($columns);
}
.#{$-zf-size}-uncollapse {
- @if $grid-column-gutter {
- $gutter: $grid-column-gutter;
- }
- @else {
- $gutter: -zf-get-bp-val($grid-column-responsive-gutter, $-zf-size);
- }
+ $gutter: -zf-get-bp-val($grid-column-gutter, $-zf-size);
+
> .column { @include grid-col-uncollapse($gutter); }
}
}
/// @type Number
$grid-column-count: 12 !default;
-// The amount of space between columns. Remove this in 6.2.
-// @type Number
-$grid-column-gutter: null !default;
-
-/// The amount of space between columns at different screen sizes.
-/// @type Map
+/// The amount of space between columns at different screen sizes. To use just one size, set the variable to a number instead of a map.
+/// @type Map | Length
/// @since 6.1.0
-$grid-column-responsive-gutter: (
+$grid-column-gutter: (
small: 20px,
medium: 30px,
) !default;
/// @type Boolean
$grid-column-align-edge: true !default;
-// Internal value to store the end column float direction
-$-zf-end-float: if($grid-column-align-edge, $global-right, $global-left);
-
/// The highest number of `.x-up` classes available when using the block grid CSS.
/// @type Number
$block-grid-max: 8 !default;
+// Internal value to store the end column float direction
+$-zf-end-float: if($grid-column-align-edge, $global-right, $global-left);
+
+// The last piece to transition the responsive gutter feature
+// Remove this in 6.3
+$grid-column-responsive-gutter: null !default;
+@if $grid-column-responsive-gutter {
+ @debug 'Rename $grid-column-responsive-gutter to $grid-column-gutter to remove this warning.';
+ $grid-column-gutter: $grid-column-responsive-gutter;
+}
+
+// If a single value is passed as a gutter, convert it to a map so the code knows what to do with it
+@if type-of($grid-column-gutter) == 'number' {
+ $grid-column-gutter: (
+ small: $grid-column-gutter,
+ );
+}
+
@import 'row';
@import 'column';
@import 'size';
/// Inverts the margins of a row to nest it inside of a column.
///
/// @param {Map|null} $gutter [null] - Gutter value to use when inverting the margins. Set to `null` to refer to the responsive gutter settings.
-@mixin grid-row-nest($gutter: null) {
- @if $gutter != null {
- $margin: rem-calc($gutter) / 2 * -1;
- margin-left: $margin;
- margin-right: $margin;
+@mixin grid-row-nest($gutter: $grid-column-gutter) {
+ @if type-of($gutter) == 'number' {
+ $gutter: (small: $gutter);
}
- @else {
- @each $breakpoint, $value in $grid-column-responsive-gutter {
- $margin: rem-calc($value) / 2 * -1;
- @include breakpoint($breakpoint) {
- margin-left: $margin;
- margin-right: $margin;
- }
+
+ @each $breakpoint, $value in $gutter {
+ $margin: rem-calc($value) / 2 * -1;
+
+ @include breakpoint($breakpoint) {
+ margin-left: $margin;
+ margin-right: $margin;
}
}
}
$grid-row-width: $global-width;
$grid-column-count: 12;
-$grid-column-responsive-gutter: (
+$grid-column-gutter: (
small: 20px,
medium: 30px,
);