@dabapps/roe
Version:
A Collection of React Components for Project Development
103 lines (80 loc) • 1.88 kB
text/less
/* @group Mixins */
.generate-columns (@prefix, @counter: 0) when (@counter <= @grid-divisions) {
&.@{prefix}-@{counter} {
width: floor(percentage(1 / @grid-divisions * @counter) * 100) / 100;
}
&.@{prefix}-offset-@{counter} {
margin-left: floor(percentage(1 / @grid-divisions * @counter) * 100) / 100;
}
&.@{prefix}-fill-@{counter} {
margin-right: floor(percentage(1 / @grid-divisions * @counter) * 100) / 100;
}
&.@{prefix}-push-@{counter} {
left: floor(percentage(1 / @grid-divisions * @counter) * 100) / 100;
}
&.@{prefix}-pull-@{counter} {
left: floor(percentage(1 / @grid-divisions * @counter) * 100) / 100 * -1;
}
.generate-columns(@prefix, @counter + 1);
}
/* @end Mixins */
.clearfix {
&::before,
&::after {
content: ' ';
display: table;
}
&::after {
clear: both;
}
}
.container,
.container-fluid,
.column {
.clearfix();
width: 100%;
padding-left: @gutter-width / 2;
padding-right: @gutter-width / 2;
}
.container {
margin: 0 auto;
&.solid {
background-color: @container-background;
}
@media all and (min-width: @screen-sm) {
width: @screen-sm;
}
@media all and (min-width: @screen-md) {
width: @screen-md;
}
@media all and (min-width: @screen-lg) {
width: @screen-lg;
}
@media all and (min-width: @screen-xl) {
width: @screen-xl;
}
}
.row {
.clearfix();
margin-left: -@gutter-width / 2;
margin-right: -@gutter-width / 2;
}
.column {
float: left;
min-height: 1px;
position: relative;
width: 100%;
.generate-columns(xs);
@media all and (min-width: @screen-sm) {
.generate-columns(sm);
}
@media all and (min-width: @screen-md) {
.generate-columns(md);
}
@media all and (min-width: @screen-lg) {
.generate-columns(lg);
}
@media all and (min-width: @screen-xl) {
.generate-columns(xl);
}
}