artistry
Version:
A powerful and configurable stylesheet
133 lines (107 loc) • 2.81 kB
text/stylus
@require 'grid-settings.styl';
row($min-width = false) {
display: flex;
if $min-width {
flex-direction: column;
@media only screen and (min-width: $min-width) {
flex-direction: row;
}
} else {
flex-direction: row;
}
}
row-reverse($min-width = false) {
display: flex;
if $min-width {
flex-direction: column;
@media only screen and (min-width: $min-width) {
flex-direction: row-reverse;
}
} else {
flex-direction: row-reverse;
}
}
flex-column($span, $total, $min-width) {
flex-grow: 0;
flex-shrink: 0;
if $min-width {
width: 100%;
@media only screen and (min-width: $min-width) {
width: ((100% * $span)/ $total);
}
} else {
width: ((100% * $span)/ $total);
}
}
flex-offset($span, $total, $min-width) {
flex-grow: 0;
flex-shrink: 0;
if $min-width {
margin-inline-start: 0;
@media only screen and (min-width: $min-width) {
margin-inline-start: ((100% * $span) / $total);
}
} else {
margin-inline-start: ((100% * $span) / $total);
}
}
flex-grid($columns, $min-width = false)
.row
row($min-width)
.row-reverse
row-reverse($min-width)
.row,
.row-reverse
& > .col
flex-grow: 1;
flex-shrink: 1;
&.col-fixed
--col-width: auto;
--col-offset: 0;
flex-grow: unset;
flex-shrink: unset;
width: var(--col-width);
margin-inline-start: var(--col-offset);
for $span in (1..$columns)
& > .col-{$span}
flex-column($span, $columns, $min-width)
& > .offset-{$span}
flex-offset($span, $columns, $min-width)
flex-grid(12)
&,
.grid >,
.grid-12 >,
.grid-xs-12 >
flex-grid(12)
.grid-xs-12
& >
flex-grid(12, $size-xs)
.grid-sm-12
& >
flex-grid(12, $size-sm)
.grid-md-12
& >
flex-grid(12, $size-md)
.grid-lg-12
& >
flex-grid(12, $size-lg);
.grid-xl-12
& >
flex-grid(12, $size-xl);
.grid-space
& > .row,
& > .row-reverse
padding: 0 ($grid-spacing / 2)
& > .col,
& > [class^=col-]
padding: ($grid-spacing / 2)
& > .row:first-child
& > .row-reverse:last-child
& > .col,
& > [class^=col-]
padding-top: $grid-spacing
& > .row:last-child
& > .row-reverse:first-child
& > .col,
& > [class^=col-]
padding-bottom: $grid-spacing