83 lines
1.8 KiB
SCSS
83 lines
1.8 KiB
SCSS
@use "sass:math";
|
|
|
|
$grid-columns: 12;
|
|
|
|
.grid-container {
|
|
@include overflow(hidden);
|
|
}
|
|
.cell {
|
|
min-width: 0;
|
|
}
|
|
|
|
@mixin make-cell($columns) {
|
|
@if $columns == "auto" {
|
|
@include flex(1 1 0);
|
|
width: auto;
|
|
} @else if $columns == "shrink" {
|
|
@include flex(0 0 auto);
|
|
width: auto;
|
|
} @else if $columns == "stretch" {
|
|
@include flex(1);
|
|
} @else {
|
|
@include flex(none);
|
|
width: percentage(math.div($columns, $grid-columns));
|
|
}
|
|
}
|
|
|
|
@mixin make-grid-cell($columns, $breakpoint) {
|
|
@include media-breakpoint-up($breakpoint) {
|
|
.cell--#{breakpoint-infix($breakpoint)}#{$columns} {
|
|
@include make-cell($columns);
|
|
}
|
|
}
|
|
}
|
|
|
|
.grid {
|
|
@include flexbox();
|
|
@include flex-wrap(wrap);
|
|
& > {
|
|
@each $breakpoint in map-keys($responsive) {
|
|
@for $i from 1 through $grid-columns {
|
|
@include make-grid-cell($i, $breakpoint);
|
|
}
|
|
@include make-grid-cell("auto", $breakpoint);
|
|
@include make-grid-cell("shrink", $breakpoint);
|
|
@include make-grid-cell("stretch", $breakpoint);
|
|
}
|
|
}
|
|
}
|
|
|
|
.grid--reverse {
|
|
flex-direction: row-reverse;
|
|
}
|
|
|
|
@mixin make-grid() {
|
|
$types: ("p");
|
|
$directions: ("x", "y", "");
|
|
$spacers: (0, 1, 2, 3, 4, 5);
|
|
|
|
@each $type in $types {
|
|
@each $direction in $directions {
|
|
@each $spacer in $spacers {
|
|
@if $direction == "" {
|
|
.grid--#{$type}-#{$spacer} {
|
|
@include make-spacing("m", "", $spacer, true);
|
|
.cell {
|
|
@include make-spacing($type, "", $spacer);
|
|
}
|
|
}
|
|
} @else {
|
|
.grid--#{$type}#{$direction}-#{$spacer} {
|
|
@include make-spacing("m", $direction, $spacer, true);
|
|
.cell {
|
|
@include make-spacing($type, $direction, $spacer);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@include make-grid();
|