From 06e334f79489b6f04a85dcb38b1d7cb38ec32e61 Mon Sep 17 00:00:00 2001 From: raphaelgoettter Date: Thu, 27 Aug 2015 11:04:01 +0200 Subject: [PATCH] beautifying code --- less/_03-grids.less | 146 ++++++++------------------- less/_10-styling.less | 26 ++--- sass/_03-grids.scss | 225 +++++++++++------------------------------- sass/_10-styling.scss | 30 ++---- 4 files changed, 115 insertions(+), 312 deletions(-) diff --git a/less/_03-grids.less b/less/_03-grids.less index a8441ca..1564523 100644 --- a/less/_03-grids.less +++ b/less/_03-grids.less @@ -4,35 +4,37 @@ // Tuto : http://www.alsacreations.com/tuto/lire/1659-une-grille-responsive-avec-flexbox-et-LESS.html // Demo : http://codepen.io/raphaelgoetter/pen/zxBMLW + // Usage in vanilla CSS: // -
for an equal fourth columns grid container // -
for an uneven columns grid container + // Usage with preprocessors : if you're using LESS, you can config grids variables : // n = number of columns (default = 4) // example : .grid-perso { .grid(12); } // ... or uneven grids : // left = left ratio column (default = 2) / right = right ratio column (default = 1) // example : .grid-perso { .uneven-grid(2, 1); } -/* grid container */ +/* grid container */ [class*="@{kna-namespace}grid-"] { display: flex; flex-direction: row; flex-wrap: wrap; margin-left: -@gutter; + /* inline-block fallback for IE9 generation */ - letter-spacing: -0.31em; text-rendering: optimizespeed; } -/* grid childs */ +/* grid childs */ [class*="@{kna-namespace}grid-"] > * { flex: 0 0 auto; width: ~'calc(100% * 1 / @{number} - @{gutter} - .01px)'; margin-left: @gutter; + /* inline-block fallback for IE9 generation */ - display: inline-block; vertical-align: top; letter-spacing: normal; @@ -41,15 +43,11 @@ // LESS mixins for *equal* columns grid container // example : .grid-perso { .grid(12); } -.grid(@number: @number, -@gutter: @gutter) { +.grid(@number:@number, @gutter:@gutter) { & > * { width: ~'calc(100% * 1 / @{number} - @{gutter} - .01px)'; } - & > .@ { - kna-namespace - } - flex-item-double { + & > .@{kna-namespace}flex-item-double { width: ~'calc(100% * 2 / @{number} - @{gutter} - .01px)'; } } @@ -58,92 +56,81 @@ [class*="@{kna-namespace}grid-2"] { .grid(2); } - [class*="@{kna-namespace}grid-3"] { .grid(3); } - [class*="@{kna-namespace}grid-4"] { .grid(4); } - [class*="@{kna-namespace}grid-5"] { .grid(5); } - [class*="@{kna-namespace}grid-6"] { .grid(6); } - [class*="@{kna-namespace}grid-7"] { .grid(7); } - [class*="@{kna-namespace}grid-8"] { .grid(8); } - [class*="@{kna-namespace}grid-10"] { .grid(10); } - [class*="@{kna-namespace}grid-12"] { .grid(12); } -/* Responsive grid */ +/* Responsive grid */ // "small-2" = 2 columns when small screen // example : .grid-4-small-2 will be 4 then 2 columns @media (max-width: @small-screen) { [class*="-small-4"] > * { width: ~'calc(100% * 1 / 4 - @{gutter} - .01px)'; } - [class*="-small-4"] > .flex-item-double { + [class*="-small-4"] > .flexitem-double { width: ~'calc(100% * 1 / 2 - @{gutter} - .01px)'; } [class*="-small-3"] > * { width: ~'calc(100% * 1 / 3 - @{gutter} - .01px)'; } - [class*="-small-3"] > .flex-item-double { + [class*="-small-3"] > .flexitem-double { width: ~'calc(100% * 2 / 3 - @{gutter} - .01px)'; } [class*="-small-2"] > * { width: ~'calc(100% * 1 / 2 - @{gutter} - .01px)'; } - [class*="-small-2"] > .flex-item-double { + [class*="-small-2"] > .flexitem-double { width: ~'calc(100% - @{gutter} - .01px)'; } [class*="-small-1"] > * { width: ~'calc(100% - @{gutter} - .01px)'; } - [class*="-small-1"] > .flex-item-double { + [class*="-small-1"] > .flexitem-double { width: ~'calc(100% - @{gutter} - .01px)'; } } - // "tiny-1" = 1 column when tiny screen // example : .grid-4-small-2-tiny-1 will be 4 then 2 columns then 1 column @media (max-width: @tiny-screen) { [class*="-tiny-2"] > * { width: ~'calc(100% * 1 / 2 - @{gutter} - .01px)'; } - [class*="-tiny-2"] > .flex-item-double { + [class*="-tiny-2"] > .flexitem-double { width: ~'calc(100% - @{gutter} - .01px)'; } [class*="-tiny-1"] > * { width: ~'calc(100% - @{gutter} - .01px)'; } - [class*="-tiny-1"] > .flex-item-double { + [class*="-tiny-1"] > .flexitem-double { width: ~'calc(100% - @{gutter} - .01px)'; } } // LESS mixins for *unequal* columns grid container // example : .grid-perso { .uneven-grid(2, 1); } -.uneven-grid(@left: @left, -@right: @right, -@gutter: @gutter) { - & > *: nth-child(odd) { +.uneven-grid(@left:@left, @right:@right, @gutter:@gutter) { + & > *:nth-child(odd) { @size: (@left / (@left + @right)) * 100%; width: ~'calc(@{size} - @{gutter} - .01px)'; } @@ -152,89 +139,42 @@ width: ~'calc(@{size} - @{gutter} - .01px)'; } @media (max-width: @small-screen) { - & > *: nth-child(n) { + & > *:nth-child(n) { width: ~'calc(100% - @{gutter} - .01px)'; } } } // Examples : will be compiled in CSS -.@ { - kna-namespace +.@{kna-namespace}grid-2-1 { + .uneven-grid(2,1); +} +.@{kna-namespace}grid-1-2 { + .uneven-grid(1,2); +} +.@{kna-namespace}grid-3-1 { + .uneven-grid(3,1); +} +.@{kna-namespace}grid-1-3 { + .uneven-grid(1,3); +} +.@{kna-namespace}grid-3-2 { + .uneven-grid(3,2); +} +.@{kna-namespace}grid-2-3 { + .uneven-grid(2,3); +} +.@{kna-namespace}grid-4-1 { + .uneven-grid(4,1); +} +.@{kna-namespace}grid-1-4 { + .uneven-grid(1,4); } -grid-2-1 { - .uneven-grid(2, 1); -} - -.@ { - kna-namespace -} - -grid-1-2 { - .uneven-grid(1, 2); -} - -.@ { - kna-namespace -} - -grid-3-1 { - .uneven-grid(3, 1); -} - -.@ { - kna-namespace -} - -grid-1-3 { - .uneven-grid(1, 3); -} - -.@ { - kna-namespace -} - -grid-3-2 { - .uneven-grid(3, 2); -} - -.@ { - kna-namespace -} - -grid-2-3 { - .uneven-grid(2, 3); -} - -.@ { - kna-namespace -} - -grid-4-1 { - .uneven-grid(4, 1); -} - -.@ { - kna-namespace -} - -grid-1-4 { - .uneven-grid(1, 4); -} - -.@ { - kna-namespace -} - -pull { +.@{kna-namespace}pull { margin-right: auto; } -.@ { - kna-namespace -} - -push { +.@{kna-namespace}push { margin-left: auto; } \ No newline at end of file diff --git a/less/_10-styling.less b/less/_10-styling.less index fabafa8..49a4fb6 100644 --- a/less/_10-styling.less +++ b/less/_10-styling.less @@ -1,8 +1,8 @@ /* ----------------------------- */ /* ==minor stylings */ /* ----------------------------- */ -/* styling elements */ +/* styling elements */ code, kbd, mark { @@ -16,7 +16,7 @@ kbd { code { padding: 2px 4px; - background: rgba(0, 0, 0, 0.04); + background: rgba(0,0,0,0.04); color: #b11; } @@ -28,7 +28,7 @@ pre code { } mark { - padding: 2px 4px; + padding:2px 4px; } sup, @@ -75,20 +75,12 @@ q { } q, -.@ { - kna-namespace -} - -q { +.@{kna-namespace}q { quotes: "“\00a0" "\00a0”"; } q:lang(fr), -.@ { - kna-namespace -} - -q:lang(fr) { +.@{kna-namespace}q:lang(fr) { quotes: "«\00a0" "\00a0»"; } @@ -102,14 +94,10 @@ hr { color: #ccc; background-color: #ccc; } + /* tables */ - table, -.@ { - kna-namespace -} - -table { +.@{kna-namespace}table { border: 1px solid #ccc; } diff --git a/sass/_03-grids.scss b/sass/_03-grids.scss index 3993146..fe75a63 100644 --- a/sass/_03-grids.scss +++ b/sass/_03-grids.scss @@ -4,41 +4,37 @@ // Tuto : http://www.alsacreations.com/tuto/lire/1659-une-grille-responsive-avec-flexbox-et-LESS.html // Demo : http://codepen.io/raphaelgoetter/pen/ZYjwEB + // Usage in vanilla CSS: // -
for an equal fourth columns grid container // -
for an uneven columns grid container + // Usage with preprocessors : if you're using Sass, you can config grids variables : // n = number of columns (default = 4) / g = gutter value (default = 1em) // example : .grid-perso { @include grid(12, 10px); } // ... or uneven grids : // left = left ratio column (default = 2) / right = right ratio column (default = 1) // example : .grid-perso { @include uneven-grid(2, 1, 10px); } -/* grid container */ +/* grid container */ [class*="#{$kna-namespace}grid-"] { display: flex; flex-direction: row; flex-wrap: wrap; margin-left: -$gutter; + /* inline-block fallback for IE9 generation */ - letter-spacing: -0.31em; text-rendering: optimizespeed; } -/* grid childs */ +/* grid childs */ [class*="#{$kna-namespace}grid-"] > * { flex: 0 0 auto; - width: calc(100% * 1 / # { - $number - } - - # { - $gutter - } - - .01px); + width: calc(100% * 1 / #{$number} - #{$gutter} - .01px); margin-left: $gutter; + /* inline-block fallback for IE9 generation */ - display: inline-block; vertical-align: top; letter-spacing: normal; @@ -47,32 +43,17 @@ // Sass mixins for *equal* columns grid container // example : .grid-perso { @include grid(12); } -@mixin grid($number:$number, -$gutter:$gutter) { +@mixin grid($number:$number,$gutter:$gutter) { & > * { - width: calc(100% * 1 / # { - $number - } - - # { - $gutter - } - - .01px); + width: calc(100% * 1 / #{$number} - #{$gutter} - .01px); } - & > .# { - $kna-namespace - } - flex-item-double { - width: calc(100% * 2 / # { - $number - } - - # { - $gutter - } - ); + & > .#{$kna-namespace}flex-item-double { + width: calc(100% * 2 / #{$number} - #{$gutter}); } } // Examples : will be compiled in CSS + [class*="#{$kna-namespace}grid-2"] { @include grid(2); } @@ -108,202 +89,110 @@ $gutter:$gutter) { [class*="#{$kna-namespace}grid-12"] { @include grid(12); } -/* Responsive grid */ +/* Responsive grid */ // "small-2" = 2 columns when small screen // example : .grid-4-small-2 will be 4 then 2 columns @media (max-width: $small-screen) { [class*="-small-4"] > * { - width: calc(100% * 1 / 4 - # { - $gutter - } - - .01px); + width: calc(100% * 1 / 4 - #{$gutter} - .01px); } - [class*="-small-4"] > .flex-item-double { - width: calc(100% * 1 / 2 - # { - $gutter - } - - .01px); + [class*="-small-4"] > .flexitem-double { + width: calc(100% * 1 / 2 - #{$gutter} - .01px); } [class*="-small-3"] > * { - width: calc(100% * 1 / 3 - # { - $gutter - } - - .01px); + width: calc(100% * 1 / 3 - #{$gutter} - .01px); } - [class*="-small-3"] > .flex-item-double { - width: calc(100% * 2 / 3 - # { - $gutter - } - - .01px); + [class*="-small-3"] > .flexitem-double { + width: calc(100% * 2 / 3 - #{$gutter} - .01px); } [class*="-small-2"] > * { - width: calc(100% * 1 / 2 - # { - $gutter - } - - .01px); + width: calc(100% * 1 / 2 - #{$gutter} - .01px); } - [class*="-small-2"] > .flex-item-double { - width: calc(100% - # { - $gutter - } - - .01px); + [class*="-small-2"] > .flexitem-double { + width: calc(100% - #{$gutter} - .01px); } [class*="-small-1"] > * { - width: calc(100% - # { - $gutter - } - - .01px); + width: calc(100% - #{$gutter} - .01px); } - [class*="-small-1"] > .flex-item-double { - width: calc(100% - # { - $gutter - } - - .01px); + [class*="-small-1"] > .flexitem-double { + width: calc(100% - #{$gutter} - .01px); } } - // "tiny-1" = 1 column when tiny screen // example : .grid-4-small-2-tiny-1 will be 4 then 2 columns then 1 column @media (max-width: $tiny-screen) { [class*="-tiny-2"] > * { - width: calc(100% * 1 / 2 - # { - $gutter - } - - .01px); + width: calc(100% * 1 / 2 - #{$gutter} - .01px); } - [class*="-tiny-2"] > .flex-item-double { - width: calc(100% - # { - $gutter - } - - .01px); + [class*="-tiny-2"] > .flexitem-double { + width: calc(100% - #{$gutter} - .01px); } [class*="-tiny-1"] > * { - width: calc(100% - # { - $gutter - } - - .01px); + width: calc(100% - #{$gutter} - .01px); } - [class*="-tiny-1"] > .flex-item-double { - width: calc(100% - # { - $gutter - } - - .01px); + [class*="-tiny-1"] > .flexitem-double { + width: calc(100% - #{$gutter} - .01px); } } // LESS mixins for *unequal* columns grid container // example : .grid-perso { @include uneven-grid(2, 1); } -@mixin uneven-grid($left:$left, -$right:$right, -$gutter:$gutter) { - & > *: nth-child(odd) { +@mixin uneven-grid($left:$left, $right:$right, $gutter:$gutter) { + & > *:nth-child(odd) { $size: ($left / ($left + $right)) * 100%; - width: calc(# { - $size - } - - # { - $gutter - } - ); + width: calc(#{$size} - #{$gutter}); } & > *:nth-child(even) { $size: ($right / ($left + $right)) * 100%; - width: calc(# { - $size - } - - # { - $gutter - } - ); + width: calc(#{$size} - #{$gutter}); } @media (max-width: $small-screen) { - & > *: nth-child(n) { - width: calc(100% - # { - $gutter - } - ); + & > *:nth-child(n) { + width: calc(100% - #{$gutter}); } } } + // Examples : will be compiled in CSS -.# { - $kna-namespace + +.#{$kna-namespace}grid-2-1 { + @include uneven-grid(2,1); } -grid-2-1 { - @include uneven-grid(2, 1); +.#{$kna-namespace}grid-1-2 { + @include uneven-grid(1,2); } -.# { - $kna-namespace +.#{$kna-namespace}grid-3-1 { + @include uneven-grid(3,1); } -grid-1-2 { - @include uneven-grid(1, 2); +.#{$kna-namespace}grid-1-3 { + @include uneven-grid(1,3); } -.# { - $kna-namespace +.#{$kna-namespace}grid-3-2 { + @include uneven-grid(3,2); } -grid-3-1 { - @include uneven-grid(3, 1); +.#{$kna-namespace}grid-2-3 { + @include uneven-grid(2,3); } -.# { - $kna-namespace +.#{$kna-namespace}grid-4-1 { + @include uneven-grid(4,1); } -grid-1-3 { - @include uneven-grid(1, 3); +.#{$kna-namespace}grid-1-4 { + @include uneven-grid(1,4); } -.# { - $kna-namespace -} - -grid-3-2 { - @include uneven-grid(3, 2); -} - -.# { - $kna-namespace -} - -grid-2-3 { - @include uneven-grid(2, 3); -} - -.# { - $kna-namespace -} - -grid-4-1 { - @include uneven-grid(4, 1); -} - -.# { - $kna-namespace -} - -grid-1-4 { - @include uneven-grid(1, 4); -} - -.# { - $kna-namespace -} - -pull { +.#{$kna-namespace}pull { margin-right: auto; } -.# { - $kna-namespace -} - -push { +.#{$kna-namespace}push { margin-left: auto; } \ No newline at end of file diff --git a/sass/_10-styling.scss b/sass/_10-styling.scss index 530b80a..0a0dacd 100644 --- a/sass/_10-styling.scss +++ b/sass/_10-styling.scss @@ -1,11 +1,9 @@ /* ----------------------------- */ /* ==minor stylings */ /* ----------------------------- */ -/* styling elements */ -code, -kbd, -mark { +/* styling elements */ +code, kbd, mark { border-radius: 2px; } @@ -16,7 +14,7 @@ kbd { code { padding: 2px 4px; - background: rgba(0, 0, 0, 0.04); + background: rgba(0,0,0,0.04); color: #b11; } @@ -28,7 +26,7 @@ pre code { } mark { - padding: 2px 4px; + padding:2px 4px; } sup, @@ -75,20 +73,12 @@ q { } q, -.# { - $kna-namespace -} - -q { +.#{$kna-namespace}q { quotes: "“\00a0" "\00a0”"; } q:lang(fr), -.# { - $kna-namespace -} - -q:lang(fr) { +.#{$kna-namespace}q:lang(fr) { quotes: "«\00a0" "\00a0»"; } @@ -102,14 +92,10 @@ hr { color: #ccc; background-color: #ccc; } + /* tables */ - table, -.# { - $kna-namespace -} - -table { +.#{$kna-namespace}table { border: 1px solid #ccc; }