// Collapse classes
@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {
- @include -zf-each-breakpoint {
+ @each $bp in $breakpoint-classes {
@if $margin-grid {
- .#{$-zf-size}-margin-collapse {
- @include xy-grid-collapse($gutter-type: margin);
+ .#{$bp}-margin-collapse {
+ @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);
}
}
@if $padding-grid {
- .#{$-zf-size}-padding-collapse {
- @include xy-grid-collapse($gutter-type: padding);
+ .#{$bp}-padding-collapse {
+ @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);
}
}
}
@mixin xy-grid-collapse(
$selector: '.cell',
$gutter-type: margin,
- $gutter-position: right left
+ $gutter-position: right left,
+ $min-breakpoint: $-zf-zero-breakpoint
) {
// First, lets negate any margins on the top level
@if ($gutter-type == 'margin') {
- @each $value in $gutter-position {
- margin-#{$value}: 0;
- }
+ @include breakpoint($min-breakpoint) {
+ @each $value in $gutter-position {
+ margin-#{$value}: 0;
+ }
> #{$selector} {
@each $value in $gutter-position {
margin-#{$value}: 0;
}
}
+ }
+
+ $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);
// Output new widths to not include gutters
@each $bp in $breakpoint-classes {
- @for $i from 1 through $grid-columns {
- // Sizing (percentage)
- > .#{$bp}-#{$i} {
- @include xy-cell-static($i, $gutter-output: false, $gutter-type: padding);
+ @if(sl-contain($excluded-bps, $bp)) {
+ @include breakpoint($min-breakpoint) {
+ @for $i from 1 through $grid-columns {
+ // Sizing (percentage)
+ > .#{$bp}-#{$i} {
+ @include xy-cell-static($i, $gutter-output: false, $gutter-type: padding);
+ }
+ }
}
- }
+ } @else {
+ @include breakpoint($bp) {
+ @for $i from 1 through $grid-columns {
+ // Sizing (percentage)
+ > .#{$bp}-#{$i} {
+ @include xy-cell-static($i, $gutter-output: false, $gutter-type: padding);
+ }
+ }
+ }
+ }
}
}
@else {
- @each $value in $gutter-position {
- margin-#{$value}: 0;
- }
-
- > #{$selector} {
+ @include breakpoint($min-breakpoint) {
@each $value in $gutter-position {
- padding-#{$value}: 0;
+ margin-#{$value}: 0;
+ }
+
+ > #{$selector} {
+ @each $value in $gutter-position {
+ padding-#{$value}: 0;
+ }
}
}
}
<div class="cell medium-4"><div class="demo">4</div></div>
</div>
+ <p>Large margin collapse</p>
+ <div class="grid-x grid-margin-x large-margin-collapse">
+ <div class="small-10 medium-8 large-6 cell"><div class="demo">10/8/6 cells</div></div>
+ <div class="small-2 medium-4 large-6 cell"><div class="demo">2/4/6 cells</div></div>
+ </div>
+
+ <p>Medium margin collapse</p>
+ <div class="grid-x grid-margin-x medium-margin-collapse">
+ <div class="small-10 medium-8 large-6 cell"><div class="demo">10/8/6 cells</div></div>
+ <div class="small-2 medium-4 large-6 cell"><div class="demo">2/4/6 cells</div></div>
+ </div>
+
+ <p>Small margin collapse</p>
+ <div class="grid-x grid-margin-x small-margin-collapse">
+ <div class="small-10 medium-8 large-6 cell"><div class="demo">10/8/6 cells</div></div>
+ <div class="small-2 medium-4 large-6 cell"><div class="demo">2/4/6 cells</div></div>
+ </div>
+
<hr>
<h2>Padding Grid Collapse</h2>