npm install @wide/styles-grid --save
Please, note that more you add helper mixins, more your CSS compiled file will be heavy.
So add helpers you really need.
All those variables could be customized depending on what you need in your variables.scss
file.
Here are the default values.
Prefix for all grid classes.
$grid-prefix: '' !default;
Grid gutter length. Must be a pixel value.
$grid-gutter: 15px !default;
All those variables could be customized depending on what you need in your variables.scss
file.
Here are the default values.
Container's breakpoints list.
$containers: (
'xs': (
max-width: 320px
),
'sm': (
max-width: 540px
),
'md': (
max-width: 720px
),
'lg': (
max-width: 960px
),
'xl': (
max-width: 1140px
),
'xxl': (
max-width: 1540px
)
) !default;
Container classes prefix.
$containers-prefix: $grid-prefix !default;
Set all container classes.
@use '@wide/styles-grid' as grid;
@include grid.container-helper;
.container,
.container-fluid {
width: 100%;
margin-right: auto;
margin-left: auto;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
}
Set all container classes with breakpoints media queries.
@use '@wide/styles-grid' as grid;
@include grid.container-helper-with-bp;
@media (min-width: 20.375em) {
.container, .container\@xs {
max-width: 320px;
}
}
@media (min-width: 36em) {
.container, .container\@xs, .container\@sm {
max-width: 540px;
}
}
@media (min-width: 48em) {
.container, .container\@xs, .container\@sm, .container\@md {
max-width: 720px;
}
}
@media (min-width: 64em) {
.container, .container\@xs, .container\@sm, .container\@md, .container\@lg {
max-width: 960px;
}
}
@media (min-width: 75em) {
.container, .container\@xs, .container\@sm, .container\@md, .container\@lg, .container\@xl {
max-width: 1140px;
}
}
@media (min-width: 100em) {
.container, .container\@xs, .container\@sm, .container\@md, .container\@lg, .container\@xl, .container\@xxl {
max-width: 1540px;
}
}
.container\@xs, .container\@sm, .container\@md, .container\@lg, .container\@xl, .container\@xxl, .container-fluid {
width: 100%;
margin-right: auto;
margin-left: auto;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
}
Grid container
entry point
Combine both container-helper
and container-helper-with-bp
helpers in one helper.
@use '@wide/styles-grid' as grid;
@include grid.container;
Type | Description | Mandatory | Default |
---|---|---|---|
Boolean |
Use container-helper-with-bp() |
false |
true |
See container-helper
and container-helper-with-bp
outputs.
All those variables could be customized depending on what you need in your variables.scss
file.
Here are the default values.
Max columns for basic provided .row-col-{col}@{breakpoint}
classes.
$rows-cols-max-columns: 6 !default;
Row classes prefix.
$rows-prefix: $grid-prefix !default;
Set row class.
@use '@wide/styles-grid' as grid;
@include grid.row-helper;
.row {
display: flex;
flex-wrap: wrap;
margin-right: -0.9375rem;
margin-left: -0.9375rem;
}
Set all row-cols classes from the $rows-cols-max-columns
variable.
Specify on a parent element (e.g., .row
) to force immediate children into NN numberof columns.
@use '@wide/styles-grid' as grid;
@include grid.row-cols-helper;
.row-cols-1 > *,
.row-cols-1 > .col {
flex: 0 0 100%;
max-width: 100%;
}
.row-cols-2 > *,
.row-cols-2 > .col {
flex: 0 0 50%;
max-width: 50%;
}
.row-cols-3 > *,
.row-cols-3 > .col {
flex: 0 0 33.3333333333%;
max-width: 33.3333333333%;
}
.row-cols-4 > *,
.row-cols-4 > .col {
flex: 0 0 25%;
max-width: 25%;
}
.row-cols-5 > *,
.row-cols-5 > .col {
flex: 0 0 20%;
max-width: 20%;
}
.row-cols-6 > *,
.row-cols-6 > .col {
flex: 0 0 16.6666666667%;
max-width: 16.6666666667%;
}
Set all row-cols classes with breakpoints media queries.
@use '@wide/styles-grid' as grid;
@include grid.row-cols-helper-with-bp;
@media (min-width: 20.375em) and (max-width: 35.99875em) {
.row-cols-1\@xs-only > *,
.row-cols-1\@xs-only > .col {
flex: 0 0 100%;
max-width: 100%;
}
.row-cols-2\@xs-only > *,
.row-cols-2\@xs-only > .col {
flex: 0 0 50%;
max-width: 50%;
}
.row-cols-3\@xs-only > *,
.row-cols-3\@xs-only > .col {
flex: 0 0 33.3333333333%;
max-width: 33.3333333333%;
}
.row-cols-4\@xs-only > *,
.row-cols-4\@xs-only > .col {
flex: 0 0 25%;
max-width: 25%;
}
.row-cols-5\@xs-only > *,
.row-cols-5\@xs-only > .col {
flex: 0 0 20%;
max-width: 20%;
}
.row-cols-6\@xs-only > *,
.row-cols-6\@xs-only > .col {
flex: 0 0 16.6666666667%;
max-width: 16.6666666667%;
}
}
/* and so on */
@media (min-width: 36em) {
/*
* .row-cols-1\@sm > *
* .row-cols-1\@sm > .col
* .row-cols-2\@sm > *
* .row-cols-2\@sm > .col
* .row-cols-3\@sm > *
* .row-cols-3\@sm > .col
* .row-cols-4\@sm > *
* .row-cols-4\@sm > .col
* .row-cols-5\@sm > *
* .row-cols-5\@sm > .col
* .row-cols-6\@sm > *
* .row-cols-6\@sm > .col
*/
}
@media (min-width: 36em) and (max-width: 47.99875em) {
/*
* .row-cols-1\@sm-only > *
* .row-cols-1\@sm-only > .col
* .row-cols-2\@sm-only > *
* .row-cols-2\@sm-only > .col
* .row-cols-3\@sm-only > *
* .row-cols-3\@sm-only > .col
* .row-cols-4\@sm-only > *
* .row-cols-4\@sm-only > .col
* .row-cols-5\@sm-only > *
* .row-cols-5\@sm-only > .col
* .row-cols-6\@sm-only > *
* .row-cols-6\@sm-only > .col
*/
}
@media (min-width: 48em) {
/*
* .row-cols-1\@md > *
* .row-cols-1\@md > .col
* .row-cols-2\@md > *
* .row-cols-2\@md > .col
* .row-cols-3\@md > *
* .row-cols-3\@md > .col
* .row-cols-4\@md > *
* .row-cols-4\@md > .col
* .row-cols-5\@md > *
* .row-cols-5\@md > .col
* .row-cols-6\@md > *
* .row-cols-6\@md > .col
*/
}
@media (min-width: 48em) and (max-width: 63.99875em) {
/*
* .row-cols-1\@md-only > *
* .row-cols-1\@md-only > .col
* .row-cols-2\@md-only > *
* .row-cols-2\@md-only > .col
* .row-cols-3\@md-only > *
* .row-cols-3\@md-only > .col
* .row-cols-4\@md-only > *
* .row-cols-4\@md-only > .col
* .row-cols-5\@md-only > *
* .row-cols-5\@md-only > .col
* .row-cols-6\@md-only > *
* .row-cols-6\@md-only > .col
*/
}
@media (min-width: 64em) {
/*
* .row-cols-1\@lg > *
* .row-cols-1\@lg > .col
* .row-cols-2\@lg > *
* .row-cols-2\@lg > .col
* .row-cols-3\@lg > *
* .row-cols-3\@lg > .col
* .row-cols-4\@lg > *
* .row-cols-4\@lg > .col
* .row-cols-5\@lg > *
* .row-cols-5\@lg > .col
* .row-cols-6\@lg > *
* .row-cols-6\@lg > .col
*/
}
@media (min-width: 64em) and (max-width: 74.99875em) {
/*
* .row-cols-1\@lg-only > *
* .row-cols-1\@lg-only > .col
* .row-cols-2\@lg-only > *
* .row-cols-2\@lg-only > .col
* .row-cols-3\@lg-only > *
* .row-cols-3\@lg-only > .col
* .row-cols-4\@lg-only > *
* .row-cols-4\@lg-only > .col
* .row-cols-5\@lg-only > *
* .row-cols-5\@lg-only > .col
* .row-cols-6\@lg-only > *
* .row-cols-6\@lg-only > .col
*/
}
@media (min-width: 75em) {
/*
* .row-cols-1\@xl > *
* .row-cols-1\@xl > .col
* .row-cols-2\@xl > *
* .row-cols-2\@xl > .col
* .row-cols-3\@xl > *
* .row-cols-3\@xl > .col
* .row-cols-4\@xl > *
* .row-cols-4\@xl > .col
* .row-cols-5\@xl > *
* .row-cols-5\@xl > .col
* .row-cols-6\@xl > *
* .row-cols-6\@xl > .col
*/
}
@media (min-width: 75em) and (max-width: 99.99875em) {
/*
* .row-cols-1\@xl-only > *
* .row-cols-1\@xl-only > .col
* .row-cols-2\@xl-only > *
* .row-cols-2\@xl-only > .col
* .row-cols-3\@xl-only > *
* .row-cols-3\@xl-only > .col
* .row-cols-4\@xl-only > *
* .row-cols-4\@xl-only > .col
* .row-cols-5\@xl-only > *
* .row-cols-5\@xl-only > .col
* .row-cols-6\@xl-only > *
* .row-cols-6\@xl-only > .col
*/
}
@media (min-width: 100em) {
/*
* .row-cols-1\@xxl > *
* .row-cols-1\@xxl > .col
* .row-cols-2\@xxl > *
* .row-cols-2\@xxl > .col
* .row-cols-3\@xxl > *
* .row-cols-3\@xxl > .col
* .row-cols-4\@xxl > *
* .row-cols-4\@xxl > .col
* .row-cols-5\@xxl > *
* .row-cols-5\@xxl > .col
* .row-cols-6\@xxl > *
* .row-cols-6\@xxl > .col
*/
}
@media (min-width: 100em) {
/*
* .row-cols-1\@xxl-only > *
* .row-cols-1\@xxl-only > .col
* .row-cols-2\@xxl-only > *
* .row-cols-2\@xxl-only > .col
* .row-cols-3\@xxl-only > *
* .row-cols-3\@xxl-only > .col
* .row-cols-4\@xxl-only > *
* .row-cols-4\@xxl-only > .col
* .row-cols-5\@xxl-only > *
* .row-cols-5\@xxl-only > .col
* .row-cols-6\@xxl-only > *
* .row-cols-6\@xxl-only > .col
*/
}
Grid row
entry point
Combine row-helper
, row-cols-helper
and row-cols-helper-with-bp
helpers in one helper.
@use '@wide/styles-grid' as grid;
@include grid.row;
Type | Description | Mandatory | Default |
---|---|---|---|
Boolean |
Use row-cols-helper-with-bp() |
false |
true |
See row-helper
, row-cols-helper
and row-cols-helper-with-bp
outputs.
All those variables could be customized depending on what you need in your variables.scss
file.
Here are the default values.
Number of columns for basic provided .col-{col}@{breakpoint}
and .offset-{col}@{breakpoint}
classes.
$cols: 12 !default;
Col classes prefix.
$cols-prefix: $grid-prefix !default;
Offset classes prefix.
$offset-prefix: $grid-prefix !default;
Set col class.
@use '@wide/styles-grid' as grid;
@include grid.col-helper;
.col {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
}
Set all cols classes from the $cols
variable.
@use '@wide/styles-grid' as grid;
@include grid.cols-helper;
.col-auto {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 auto;
width: auto;
max-width: 100%;
}
.col-1 {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 8.3333333333%;
max-width: 8.3333333333%;
}
.offset-1 {
margin-left: 8.3333333333%;
}
/* and so on */
/*
* .col-2
* .offset-2
* .col-3
* .offset-3
* .col-4
* .offset-4
* .col-5
* .offset-5
* .col-6
* .offset-6
* .col-7
* .offset-7
* .col-8
* .offset-8
* .col-9
* .offset-9
* .col-10
* .offset-10
* .col-11
* .offset-11
* .col-12
*/
Set all cols classes from the $cols
variable with breakpoints media queries.
@use '@wide/styles-grid' as grid;
@include grid.cols-helper-with-bp;
@media (min-width: 20.375em) and (max-width: 35.99875em) {
.col-auto\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 auto;
width: auto;
max-width: 100%;
}
.col-1\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 8.3333333333%;
max-width: 8.3333333333%;
}
.offset-1\@xs-only {
margin-left: 8.3333333333%;
}
.col-2\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 16.6666666667%;
max-width: 16.6666666667%;
}
.offset-2\@xs-only {
margin-left: 16.6666666667%;
}
.col-3\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 25%;
max-width: 25%;
}
.offset-3\@xs-only {
margin-left: 25%;
}
.col-4\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 33.3333333333%;
max-width: 33.3333333333%;
}
.offset-4\@xs-only {
margin-left: 33.3333333333%;
}
.col-5\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 41.6666666667%;
max-width: 41.6666666667%;
}
.offset-5\@xs-only {
margin-left: 41.6666666667%;
}
.col-6\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 50%;
max-width: 50%;
}
.offset-6\@xs-only {
margin-left: 50%;
}
.col-7\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 58.3333333333%;
max-width: 58.3333333333%;
}
.offset-7\@xs-only {
margin-left: 58.3333333333%;
}
.col-8\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 66.6666666667%;
max-width: 66.6666666667%;
}
.offset-8\@xs-only {
margin-left: 66.6666666667%;
}
.col-9\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 75%;
max-width: 75%;
}
.offset-9\@xs-only {
margin-left: 75%;
}
.col-10\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 83.3333333333%;
max-width: 83.3333333333%;
}
.offset-10\@xs-only {
margin-left: 83.3333333333%;
}
.col-11\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 91.6666666667%;
max-width: 91.6666666667%;
}
.offset-11\@xs-only {
margin-left: 91.6666666667%;
}
.col-12\@xs-only {
position: relative;
width: 100%;
padding-right: 0.9375rem;
padding-left: 0.9375rem;
flex: 0 0 100%;
max-width: 100%;
}
}
/* and so on */
@media (min-width: 36em) {
/*
* .col-auto\@sm
* .col-1\@sm
* .offset-1\@sm
* .col-2\@sm
* .offset-2\@sm
* .col-3\@sm
* .offset-3\@sm
* .col-4\@sm
* .offset-4\@sm
* .col-5\@sm
* .offset-5\@sm
* .col-6\@sm
* .offset-6\@sm
* .col-7\@sm
* .offset-7\@sm
* .col-8\@sm
* .offset-8\@sm
* .col-9\@sm
* .offset-9\@sm
* .col-10\@sm
* .offset-10\@sm
* .col-11\@sm
* .offset-11\@sm
* .col-12\@sm
*/
}
@media (min-width: 36em) and (max-width: 47.99875em) {
/*
* .col-auto\@sm-only
* .col-1\@sm-only
* .offset-1\@sm-only
* .col-2\@sm-only
* .offset-2\@sm-only
* .col-3\@sm-only
* .offset-3\@sm-only
* .col-4\@sm-only
* .offset-4\@sm-only
* .col-5\@sm-only
* .offset-5\@sm-only
* .col-6\@sm-only
* .offset-6\@sm-only
* .col-7\@sm-only
* .offset-7\@sm-only
* .col-8\@sm-only
* .offset-8\@sm-only
* .col-9\@sm-only
* .offset-9\@sm-only
* .col-10\@sm-only
* .offset-10\@sm-only
* .col-11\@sm-only
* .offset-11\@sm-only
* .col-12\@sm-only
*/
}
@media (min-width: 48em) {
/*
* .col-auto\@md
* .col-1\@md
* .offset-1\@md
* .col-2\@md
* .offset-2\@md
* .col-3\@md
* .offset-3\@md
* .col-4\@md
* .offset-4\@md
* .col-5\@md
* .offset-5\@md
* .col-6\@md
* .offset-6\@md
* .col-7\@md
* .offset-7\@md
* .col-8\@md
* .offset-8\@md
* .col-9\@md
* .offset-9\@md
* .col-10\@md
* .offset-10\@md
* .col-11\@md
* .offset-11\@md
* .col-12\@md
*/
}
@media (min-width: 48em) and (max-width: 63.99875em) {
/*
* .col-auto\@md-only
* .col-1\@md-only
* .offset-1\@md-only
* .col-2\@md-only
* .offset-2\@md-only
* .col-3\@md-only
* .offset-3\@md-only
* .col-4\@md-only
* .offset-4\@md-only
* .col-5\@md-only
* .offset-5\@md-only
* .col-6\@md-only
* .offset-6\@md-only
* .col-7\@md-only
* .offset-7\@md-only
* .col-8\@md-only
* .offset-8\@md-only
* .col-9\@md-only
* .offset-9\@md-only
* .col-10\@md-only
* .offset-10\@md-only
* .col-11\@md-only
* .offset-11\@md-only
* .col-12\@md-only
*/
}
@media (min-width: 64em) {
/*
* .col-auto\@lg
* .col-1\@lg
* .offset-1\@lg
* .col-2\@lg
* .offset-2\@lg
* .col-3\@lg
* .offset-3\@lg
* .col-4\@lg
* .offset-4\@lg
* .col-5\@lg
* .offset-5\@lg
* .col-6\@lg
* .offset-6\@lg
* .col-7\@lg
* .offset-7\@lg
* .col-8\@lg
* .offset-8\@lg
* .col-9\@lg
* .offset-9\@lg
* .col-10\@lg
* .offset-10\@lg
* .col-11\@lg
* .offset-11\@lg
* .col-12\@lg
*/
}
@media (min-width: 64em) and (max-width: 74.99875em) {
/*
* .col-auto\@lg-only
* .col-1\@lg-only
* .offset-1\@lg-only
* .col-2\@lg-only
* .offset-2\@lg-only
* .col-3\@lg-only
* .offset-3\@lg-only
* .col-4\@lg-only
* .offset-4\@lg-only
* .col-5\@lg-only
* .offset-5\@lg-only
* .col-6\@lg-only
* .offset-6\@lg-only
* .col-7\@lg-only
* .offset-7\@lg-only
* .col-8\@lg-only
* .offset-8\@lg-only
* .col-9\@lg-only
* .offset-9\@lg-only
* .col-10\@lg-only
* .offset-10\@lg-only
* .col-11\@lg-only
* .offset-11\@lg-only
* .col-12\@lg-only
*/
}
@media (min-width: 75em) {
/*
* .col-auto\@xl
* .col-1\@xl
* .offset-1\@xl
* .col-2\@xl
* .offset-2\@xl
* .col-3\@xl
* .offset-3\@xl
* .col-4\@xl
* .offset-4\@xl
* .col-5\@xl
* .offset-5\@xl
* .col-6\@xl
* .offset-6\@xl
* .col-7\@xl
* .offset-7\@xl
* .col-8\@xl
* .offset-8\@xl
* .col-9\@xl
* .offset-9\@xl
* .col-10\@xl
* .offset-10\@xl
* .col-11\@xl
* .offset-11\@xl
* .col-12\@xl
*/
}
@media (min-width: 75em) and (max-width: 99.99875em) {
/*
* .col-auto\@xl-only
* .col-1\@xl-only
* .offset-1\@xl-only
* .col-2\@xl-only
* .offset-2\@xl-only
* .col-3\@xl-only
* .offset-3\@xl-only
* .col-4\@xl-only
* .offset-4\@xl-only
* .col-5\@xl-only
* .offset-5\@xl-only
* .col-6\@xl-only
* .offset-6\@xl-only
* .col-7\@xl-only
* .offset-7\@xl-only
* .col-8\@xl-only
* .offset-8\@xl-only
* .col-9\@xl-only
* .offset-9\@xl-only
* .col-10\@xl-only
* .offset-10\@xl-only
* .col-11\@xl-only
* .offset-11\@xl-only
* .col-12\@xl-only
*/
}
@media (min-width: 100em) {
/*
* .col-auto\@xxl
* .col-1\@xxl
* .offset-1\@xxl
* .col-2\@xxl
* .offset-2\@xxl
* .col-3\@xxl
* .offset-3\@xxl
* .col-4\@xxl
* .offset-4\@xxl
* .col-5\@xxl
* .offset-5\@xxl
* .col-6\@xxl
* .offset-6\@xxl
* .col-7\@xxl
* .offset-7\@xxl
* .col-8\@xxl
* .offset-8\@xxl
* .col-9\@xxl
* .offset-9\@xxl
* .col-10\@xxl
* .offset-10\@xxl
* .col-11\@xxl
* .offset-11\@xxl
* .col-12\@xxl
*/
}
@media (min-width: 100em) {
/*
* .col-auto\@xxl-only
* .col-1\@xxl-only
* .offset-1\@xxl-only
* .col-2\@xxl-only
* .offset-2\@xxl-only
* .col-3\@xxl-only
* .offset-3\@xxl-only
* .col-4\@xxl-only
* .offset-4\@xxl-only
* .col-5\@xxl-only
* .offset-5\@xxl-only
* .col-6\@xxl-only
* .offset-6\@xxl-only
* .col-7\@xxl-only
* .offset-7\@xxl-only
* .col-8\@xxl-only
* .offset-8\@xxl-only
* .col-9\@xxl-only
* .offset-9\@xxl-only
* .col-10\@xxl-only
* .offset-10\@xxl-only
* .col-11\@xxl-only
* .offset-11\@xxl-only
* .col-12\@xxl-only
*/
}
Grid col
entry point
Combine col-helper
, cols-helper
and cols-helper-with-bp
helpers in one helper.
@use '@wide/styles-grid' as grid;
@include grid.col;
Type | Description | Mandatory | Default |
---|---|---|---|
Boolean |
Use cols-helper-with-bp() |
false |
true |
See col-helper
, cols-helper
and cols-helper-with-bp
outputs.
- Aymeric Assier - github.com/myeti
- Julien Martins Da Costa - github.com/jdacosta
- Sébastien Robillard - github.com/robiseb
This project is licensed under the MIT License - see the licence file for details