.gridlayout { display: grid; grid-gap: 1em 1em; grid-template-columns: repeat( 4, 1fr ); } /** Définition des tailles */ .gridlayout { /** Du parent */ @for $i from 1 through 6 { &.grid-#{$i} { grid-template-columns: repeat( $i, 1fr ); } /** Chaque enfant peut modifier sa propre taille */ @for $y from 1 through 6 { @if ( $y <= $i ) { &.grid-#{$i} > .gridw-#{$y} { grid-column: auto / span $y; @if ( $y > 1 ) { @media ( max-width: $media__medium ) { grid-column: auto / span 2; } } } } } } } /** Définition des hauteur des enfants */ .gridlayout { @for $i from 1 through 6 { > .gridh-#{$i} { grid-row: auto / span $i; @media ( max-width: $media__medium ) { grid-row: auto / span 1 !important; } } } } /** Mages */ .gridlayout { @for $i from 0 through 6 { &.grid-margin-#{$i} { margin: #{$i}em 0; } } } /** Gouttières */ .gridlayout { @for $i from 0 through 6 { &.grid-gap-#{$i} { grid-gap: #{$i}em #{$i}em; } } } /** Media queries */ .gridlayout { @for $i from 1 through 6 { @if ( $i > 2 ) { @media ( max-width: $media__medium ) { &.grid-#{$i} { grid-template-columns: repeat( 2, 1fr ) !important; } } } @if ( $i > 1 ) { @media ( max-width: $media__small ) { &.grid-#{$i} { grid-template-columns: repeat( 1, 1fr ) !important; } } } } > * { @media ( max-width: $media__small ) { grid-column: auto / span 1 !important; } } }