optimisation de Grillade
This commit is contained in:
parent
43db2d6d4b
commit
5ed0b50dcb
9 changed files with 552 additions and 906 deletions
|
@ -2,61 +2,11 @@
|
|||
/* ==Grillade : Simple Grid System */
|
||||
/* ---------------------------------- */
|
||||
/* Doc : http://grillade.knacss.com */
|
||||
|
||||
// Grids variables
|
||||
$grid-gutter: 1rem !default; // gutter value for grid layouts. Unit can be: %, px, em, rem
|
||||
$grid-gutter-l: $grid-gutter * 2;
|
||||
$grid-gutter-xl: $grid-gutter * 4;
|
||||
|
||||
/* Grids common rules (for mono- and multi-lines grid) */
|
||||
// gutter values for grid layouts. Unit can be: %, px, em, rem
|
||||
$grid-gutters: ( '': 1rem, '-l': 2rem, '-xl': 4rem ); // IEfixing, see
|
||||
// https://github.com/alsacreations/KNACSS/issues/133;
|
||||
$iefix: 0.01px;
|
||||
@media (min-width: ($tiny + 1)) {
|
||||
[class*=" grid"],
|
||||
[class^="grid"] {
|
||||
& > * {
|
||||
box-sizing: border-box;
|
||||
min-width: 0; /* avoid min-width: auto */
|
||||
min-height: 0; /* avoid min-height: auto */
|
||||
}
|
||||
|
||||
&.has-gutter {
|
||||
margin-right: -$grid-gutter / 2;
|
||||
margin-left: -$grid-gutter / 2;
|
||||
|
||||
& > * {
|
||||
margin-right: $grid-gutter / 2;
|
||||
margin-left: $grid-gutter / 2;
|
||||
}
|
||||
}
|
||||
|
||||
&.has-gutter-l {
|
||||
margin-right: -$grid-gutter-l / 2;
|
||||
margin-left: -$grid-gutter-l / 2;
|
||||
|
||||
& > * {
|
||||
margin-right: $grid-gutter-l / 2;
|
||||
margin-left: $grid-gutter-l / 2;
|
||||
}
|
||||
}
|
||||
|
||||
&.has-gutter-xl {
|
||||
margin-right: -$grid-gutter-xl / 2;
|
||||
margin-left: -$grid-gutter-xl / 2;
|
||||
|
||||
& > * {
|
||||
margin-right: $grid-gutter-xl / 2;
|
||||
margin-left: $grid-gutter-xl / 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Mono-line grid system (.grid) */
|
||||
.grid {
|
||||
display: flex;
|
||||
|
||||
& > * {
|
||||
flex: 1 1 0%;
|
||||
}
|
||||
}
|
||||
/* Multi-line grid system (.grid-X) */
|
||||
[class*=" grid-"],
|
||||
[class^="grid-"] {
|
||||
display: flex;
|
||||
|
@ -64,24 +14,68 @@ $grid-gutter-xl: $grid-gutter * 4;
|
|||
flex-wrap: wrap;
|
||||
|
||||
& > * {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% - .01px); /* @bugfix IE https://github.com/alsacreations/KNACSS/issues/133; */
|
||||
}
|
||||
|
||||
&.has-gutter > * {
|
||||
width: calc(100% - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-l > * {
|
||||
width: calc(100% - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-xl > * {
|
||||
width: calc(100% - #{$grid-gutter-xl} - .01px);
|
||||
box-sizing: border-box;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Grid offsets */
|
||||
// Multi-line grid constructor
|
||||
// example : .grid-perso { @include grid(12, 3rem); }
|
||||
@mixin grid($grid-number:1, $own-gutter:0) {
|
||||
& > * {
|
||||
width: calc(100% / #{$grid-number} - #{$iefix});
|
||||
}
|
||||
@each $affix, $size in $grid-gutters {
|
||||
&.has-gutter#{$affix} {
|
||||
margin-right: -$size / 2;
|
||||
margin-left: -$size / 2;
|
||||
|
||||
& > * {
|
||||
width: calc(100% / #{$grid-number} - #{$size} - #{$iefix});
|
||||
margin-right: $size / 2;
|
||||
margin-left: $size / 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@if ($own-gutter != 0) {
|
||||
margin-right: -$own-gutter / 2;
|
||||
margin-left: -$own-gutter / 2;
|
||||
|
||||
& > * {
|
||||
width: calc(100% / #{$grid-number} - #{$own-gutter} - #{$iefix});
|
||||
margin-right: $own-gutter / 2;
|
||||
margin-left: $own-gutter / 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Mono-line grid constructor (.grid)
|
||||
@media (min-width: ($tiny + 1)) {
|
||||
.grid {
|
||||
display: flex;
|
||||
|
||||
& > * {
|
||||
flex: 1 1 0;
|
||||
box-sizing: border-box;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
@each $affix, $size in $grid-gutters {
|
||||
&.has-gutter#{$affix} > * + * {
|
||||
margin-left: calc(#{$size} - #{$iefix});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Constructing grids : will be compiled in CSS
|
||||
@media (min-width: ($tiny + 1)) {
|
||||
@for $i from 2 through 12{
|
||||
[class*="grid-#{$i}"] {
|
||||
@include grid(#{$i},0);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Grid offsets
|
||||
.push {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
|
@ -101,271 +95,34 @@ $grid-gutter-xl: $grid-gutter * 4;
|
|||
[class*="--reverse"] {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
// Sass mixin for Multi-line grid system
|
||||
// example : .grid-perso { @include grid(12, 3rem); }
|
||||
@mixin grid($grid-number:4, $new-gutter:$grid-gutter) {
|
||||
& > * {
|
||||
width: calc(100% * 1 / #{$grid-number} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter > * {
|
||||
width: calc(100% * 1 / #{$grid-number} - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-l > * {
|
||||
width: calc(100% * 1 / #{$grid-number} - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-xl > * {
|
||||
width: calc(100% * 1 / #{$grid-number} - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
@if ($new-gutter != 0) {
|
||||
@if ($new-gutter != $grid-gutter){
|
||||
margin-right: -$new-gutter / 2;
|
||||
margin-left: -$new-gutter / 2;
|
||||
|
||||
& > * {
|
||||
margin-right: $new-gutter / 2;
|
||||
margin-left: $new-gutter / 2;
|
||||
width: calc(100% * 1 / #{$grid-number} - #{$new-gutter} - .01px);
|
||||
// sizing individual children
|
||||
@media (min-width: ($tiny + 1)) {
|
||||
@each $flow, $divider in ("full" "1"), ("one-half" "2"), ("one-third" "3"), ("one-quarter" "4"), ("one-fifth" "5"), ("one-sixth" "6"), ("two-thirds" "3 * 2"), ("three-quarters" "4 * 3"), ("five-sixths" "6 * 5"){
|
||||
.#{$flow} {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / #{$divider} - #{$iefix});
|
||||
}
|
||||
@each $affix, $size in $grid-gutters {
|
||||
.has-gutter#{$affix} .#{$flow} {
|
||||
width: calc(100% / #{$divider} - #{$size} - #{$iefix});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Constructing grids : will be compiled in CSS
|
||||
@media (min-width: ($tiny + 1)) {
|
||||
@for $i from 2 through 12{
|
||||
[class*="grid-#{$i}"] {
|
||||
@include grid(#{$i},0);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Sizing individual children */
|
||||
@media (min-width: ($tiny + 1)) {
|
||||
.full {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
.one-half {
|
||||
flex: 0 0 auto;
|
||||
width: calc(50% - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(50% - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(50% - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(50% - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
.one-third {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 3 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 3 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 3 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 3 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
.one-quarter {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 4 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 4 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 4 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 4 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
.one-fifth {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 5 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 5 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 5 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 5 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
.two-thirds {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 3 * 2 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 3 * 2 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 3 * 2 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 3 * 2 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
.three-quarters {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 4 * 3 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 4 * 3 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 4 * 3 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 4 * 3 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
.one-sixth {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 6 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 6 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 6 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 6 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
.five-sixths {
|
||||
flex: 0 0 auto;
|
||||
width: calc(100% / 6 * 5 - .01px);
|
||||
|
||||
.has-gutter & {
|
||||
width: calc(100% / 6 * 5 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-l & {
|
||||
width: calc(100% / 6 * 5 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
.has-gutter-xl & {
|
||||
width: calc(100% / 6 * 5 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Responsive Small Breakpoint */
|
||||
// -small-X suffix means "X columns on small screen"
|
||||
// example : .grid-4-small-2 will be 1 column (tiny and down) then 2 columns (until small) then 4 columns
|
||||
@media (min-width: ($tiny + 1)) and (max-width: $small) {
|
||||
[class*="-small-4"] {
|
||||
& > * {
|
||||
width: calc(100% / 4 - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter > * {
|
||||
width: calc(100% / 4 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-l > * {
|
||||
width: calc(100% / 4 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-xl > * {
|
||||
width: calc(100% / 4 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
[class*="-small-3"] {
|
||||
& > * {
|
||||
width: calc(100% / 3 - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter > * {
|
||||
width: calc(100% / 3 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-l > * {
|
||||
width: calc(100% / 3 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-xl > * {
|
||||
width: calc(100% / 3 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
[class*="-small-2"] {
|
||||
& > * {
|
||||
width: calc(100% / 2 - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter > * {
|
||||
width: calc(100% / 2 - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-l > * {
|
||||
width: calc(100% / 2 - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-xl > * {
|
||||
width: calc(100% / 2 - #{$grid-gutter-xl} - .01px);
|
||||
}
|
||||
}
|
||||
|
||||
[class*="-small-1"] {
|
||||
& > * {
|
||||
width: calc(100% - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter > * {
|
||||
width: calc(100% - #{$grid-gutter} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-l > * {
|
||||
width: calc(100% - #{$grid-gutter-l} - .01px);
|
||||
}
|
||||
|
||||
&.has-gutter-xl > * {
|
||||
width: calc(100% - #{$grid-gutter-xl} - .01px);
|
||||
@for $i from 1 through 4{
|
||||
[class*="-small-#{$i}"] {
|
||||
& > * {
|
||||
width: calc(100% / #{$i} - #{$iefix});
|
||||
}
|
||||
@each $affix, $size in $grid-gutters {
|
||||
&.has-gutter#{$affix} > * {
|
||||
width: calc(100% / #{$i} - #{$size} - #{$iefix});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* www.KNACSS.com V6.0.1 (26 octobre 2016) @author: Alsacreations, Raphael Goetter
|
||||
* www.KNACSS.com V6.0.2 (27 octobre 2016) @author: Alsacreations, Raphael Goetter
|
||||
* Licence WTFPL http://www.wtfpl.net/
|
||||
*/
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue