ep-react-ui
Version:
EP react UI elements.
89 lines (73 loc) • 1.53 kB
text/less
/**
* Grid layout
*/
// width loop
.grid-width(@size, @cols, @index: 1) when (@index < @cols) {
@name: ~"@{size}-@{index}";
> .c-@{name} {
width: ( percentage(@index / @cols) );
}
.grid-width(@size, @cols, @index + 1);
}
.grid-mixins(@cols) {
.grid-width('xs', @cols);
@media (min-width: @screen-sm) {
.grid-width('sm', @cols);
}
@media (min-width: @screen-md) {
.grid-width('md', @cols);
}
@media (min-width: @screen-lg) {
.grid-width('lg', @cols);
}
}
// Enable padding on grid layout
.grid-padding-size(@size, @padding: 5) when (@padding <= 20) {
@name: ~"@{size}-@{padding}";
&.grid-p-@{name} {
margin-left: unit(-@padding, px);
margin-right: unit(-@padding, px);
> *{
padding-left: unit(@padding, px);
padding-right: unit(@padding, px);
}
}
// loop
.grid-padding-size(@size, @padding + 5);
}
.grid-padding-mixins() {
.grid-padding-size('xs');
@media (min-width: @screen-sm) {
.grid-padding-size('sm');
}
@media (min-width: @screen-md) {
.grid-padding-size('md');
}
@media (min-width: @screen-lg) {
.grid-padding-size('lg');
}
}
.clearfix() {
&:before,
&:after {
content: " ";
display: table;
}
&:after {
clear: both;
}
}
// 12 columns grids
.grid-12{
@cols : 12;
.clearfix();
> *{
display: block;
width: 100%;
float: left;
}
// enable padding
.grid-padding-mixins();
// enable grids
.grid-mixins(12);
}