From ae7f94eeff733584cbdc80a2d13a85f136a7744e Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 30 Jan 2012 00:39:44 -0800 Subject: [PATCH] overhaul grid mixins and variables, standardize fluid grid system and enable it across responsive layouts --- docs/assets/bootstrap.zip | Bin 51339 -> 51780 bytes docs/assets/css/bootstrap-responsive.css | 198 +++++++++++++++++------ docs/assets/css/bootstrap.css | 78 +++------ docs/assets/css/docs.css | 1 + docs/base-css.html | 25 +++ docs/components.html | 4 + docs/download.html | 4 + docs/examples.html | 4 + docs/index.html | 4 + docs/javascript.html | 4 + docs/less.html | 4 + docs/scaffolding.html | 4 + docs/templates/layout.mustache | 4 + docs/templates/pages/base-css.mustache | 21 +++ docs/upgrading.html | 4 + examples/fluid.html | 6 +- less/forms.less | 44 +---- less/grid.less | 81 +--------- less/mixins.less | 134 +++++++++++++-- less/responsive.less | 188 +++------------------ less/variables.less | 25 +-- 21 files changed, 429 insertions(+), 408 deletions(-) diff --git a/docs/assets/bootstrap.zip b/docs/assets/bootstrap.zip index cb200386a733e39d239b41a1f123396fb41b9616..f42b5b57bf0fd36bc42c84c1c518d2a04358b848 100644 GIT binary patch delta 28646 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 AApigX delta 28139 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 L@TXn>wD11_ntG~x diff --git a/docs/assets/css/bootstrap-responsive.css b/docs/assets/css/bootstrap-responsive.css index 76e27d6720..fb1d626927 100644 --- a/docs/assets/css/bootstrap-responsive.css +++ b/docs/assets/css/bootstrap-responsive.css @@ -83,7 +83,7 @@ .row { margin-left: 0; } - .row > [class*="span"] { + .row > [class*="span"], .row-fluid > [class*="span"] { float: none; display: block; width: auto; @@ -91,10 +91,20 @@ } } @media (min-width: 768px) and (max-width: 940px) { - .container { - width: 724px; - padding-left: 20px; - padding-right: 20px; + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; } .span1 { width: 42px; @@ -129,7 +139,7 @@ .span11 { width: 662px; } - .span12 { + .span12, .container { width: 724px; } .offset1 { @@ -166,48 +176,94 @@ margin-left: 702px; } .row-fluid { - width: 102.76243093919337%; - margin-left: -2.762430939%; + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; } .row-fluid [class*="span"] { float: left; margin-left: 2.762430939%; } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } .row-fluid .span1 { - width: 5.6451612899588115%; + width: 5.801104972%; } .row-fluid .span2 { - width: 13.978494622708812%; + width: 14.364640883%; } .row-fluid .span3 { - width: 22.31182795545881%; + width: 22.928176794%; } .row-fluid .span4 { - width: 30.64516128820881%; + width: 31.491712705%; } .row-fluid .span5 { - width: 38.97849462095881%; + width: 40.055248616%; } .row-fluid .span6 { - width: 47.311827953708814%; + width: 48.618784527%; } .row-fluid .span7 { - width: 55.645161286458816%; + width: 57.182320438000005%; } .row-fluid .span8 { - width: 63.97849461920882%; + width: 65.74585634900001%; } .row-fluid .span9 { - width: 72.31182795195882%; + width: 74.30939226%; } .row-fluid .span10 { - width: 80.64516128470882%; + width: 82.87292817100001%; } .row-fluid .span11 { - width: 88.97849461745884%; + width: 91.436464082%; } .row-fluid .span12 { - width: 97.31182795020881%; + width: 99.999999993%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 32px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 94px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 156px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 218px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 280px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 342px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 404px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 466px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 528px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 590px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 652px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 714px; } } @media (max-width: 940px) { @@ -316,19 +372,19 @@ } } @media (min-width: 1200px) { - .thumbnails { - margin-left: -30px; - } - .thumbnails > li { - margin-left: 30px; - } - .container { - width: 1170px; - } .row { margin-left: -30px; + *zoom: 1; + } + .row:before, .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; } [class*="span"] { + float: left; margin-left: 30px; } .span1 { @@ -364,7 +420,7 @@ .span11 { width: 1070px; } - .span12 { + .span12, .container { width: 1170px; } .offset1 { @@ -401,47 +457,99 @@ margin-left: 1130px; } .row-fluid { - width: 102.56143440326584%; - margin-left: -2.56%; + width: 100%; + *zoom: 1; + } + .row-fluid:before, .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; } .row-fluid [class*="span"] { float: left; - margin-left: 2.56%; + margin-left: 2.564102564%; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; } .row-fluid .span1 { - width: 5.832601732615312%; + width: 5.982905983%; } .row-fluid .span2 { - width: 14.16126839928198%; + width: 14.529914530000001%; } .row-fluid .span3 { - width: 22.489935065948643%; + width: 23.076923077%; } .row-fluid .span4 { - width: 30.818601732615313%; + width: 31.623931624%; } .row-fluid .span5 { - width: 39.14726839928198%; + width: 40.170940171000005%; } .row-fluid .span6 { - width: 47.47593506594863%; + width: 48.717948718%; } .row-fluid .span7 { - width: 55.8046017326153%; + width: 57.264957265%; } .row-fluid .span8 { - width: 64.13326839928197%; + width: 65.81196581200001%; } .row-fluid .span9 { - width: 72.46193506594864%; + width: 74.358974359%; } .row-fluid .span10 { - width: 80.7906017326153%; + width: 82.905982906%; } .row-fluid .span11 { - width: 89.11926839928198%; + width: 91.45299145300001%; } .row-fluid .span12 { - width: 97.44793506594864%; + width: 100%; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 60px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 160px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 260px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 360px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 460px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 560px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 660px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 760px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 860px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 960px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1060px; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1160px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; } } diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 9b6217fbd4..b6766f0aaf 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -126,7 +126,7 @@ a:hover { margin-left: 20px; } .span1 { - width: 59.99999999999999px; + width: 60px; } .span2 { width: 140px; @@ -158,7 +158,7 @@ a:hover { .span11 { width: 860px; } -.span12 { +.span12, .container { width: 940px; } .offset1 { @@ -195,48 +195,58 @@ a:hover { margin-left: 900px; } .row-fluid { - width: 102.12765957421277%; - margin-left: -2.127659574%; + width: 100%; + *zoom: 1; +} +.row-fluid:before, .row-fluid:after { + display: table; + content: ""; +} +.row-fluid:after { + clear: both; } .row-fluid [class*="span"] { float: left; margin-left: 2.127659574%; } +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} .row-fluid .span1 { - width: 6.249999999619791%; + width: 6.382978723%; } .row-fluid .span2 { - width: 14.58333333211979%; + width: 14.89361702%; } .row-fluid .span3 { - width: 22.91666666461979%; + width: 23.404255317%; } .row-fluid .span4 { - width: 31.24999999711979%; + width: 31.914893614%; } .row-fluid .span5 { - width: 39.58333332961979%; + width: 40.425531911%; } .row-fluid .span6 { - width: 47.91666666211979%; + width: 48.93617020799999%; } .row-fluid .span7 { - width: 56.24999999461979%; + width: 57.446808505%; } .row-fluid .span8 { - width: 64.58333332711977%; + width: 65.95744680199999%; } .row-fluid .span9 { - width: 72.91666665961978%; + width: 74.468085099%; } .row-fluid .span10 { - width: 81.24999999211977%; + width: 82.97872339599999%; } .row-fluid .span11 { - width: 89.58333332461977%; + width: 91.489361693%; } .row-fluid .span12 { - width: 97.91666665711978%; + width: 99.99999998999999%; } .container { width: 940px; @@ -708,42 +718,6 @@ input.span11, textarea.span11, .uneditable-input.span11 { input.span12, textarea.span12, .uneditable-input.span12 { width: 930px; } -select.span1 { - width: 70px; -} -select.span2 { - width: 150px; -} -select.span3 { - width: 230px; -} -select.span4 { - width: 310px; -} -select.span5 { - width: 390px; -} -select.span6 { - width: 470px; -} -select.span7 { - width: 550px; -} -select.span8 { - width: 630px; -} -select.span9 { - width: 710px; -} -select.span10 { - width: 790px; -} -select.span11 { - width: 870px; -} -select.span12 { - width: 950px; -} input[disabled], select[disabled], textarea[disabled], diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css index 1380b9e6c9..acbcc69412 100644 --- a/docs/assets/css/docs.css +++ b/docs/assets/css/docs.css @@ -553,6 +553,7 @@ form.well { } /* For input sizes, make them display block */ +.docs-input-sizes select, .docs-input-sizes input[type=text] { display: block; margin-bottom: 9px; diff --git a/docs/base-css.html b/docs/base-css.html index 0406ff229e..72eea8d671 100644 --- a/docs/base-css.html +++ b/docs/base-css.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • @@ -1078,6 +1082,27 @@ For example, <code>section</code> should be wrapped as inline. + + +

    Use the same .span* classes from the grid system for input sizes.

    diff --git a/docs/components.html b/docs/components.html index 95c7c99078..f62d84b9a9 100644 --- a/docs/components.html +++ b/docs/components.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/download.html b/docs/download.html index 832b07ce65..da442ac620 100644 --- a/docs/download.html +++ b/docs/download.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/examples.html b/docs/examples.html index 7d79fc0a0a..63570c7cb0 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/index.html b/docs/index.html index e20d08bcdd..055f36028c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/javascript.html b/docs/javascript.html index eb4a175c33..c4c3dd72a9 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/less.html b/docs/less.html index 5935c91259..1242b66a17 100644 --- a/docs/less.html +++ b/docs/less.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/scaffolding.html b/docs/scaffolding.html index b9eb399f9b..5f3cd4f43f 100644 --- a/docs/scaffolding.html +++ b/docs/scaffolding.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/docs/templates/layout.mustache b/docs/templates/layout.mustache index 7c0ab655be..b372820fda 100644 --- a/docs/templates/layout.mustache +++ b/docs/templates/layout.mustache @@ -62,6 +62,10 @@
  • {{_i}}Customize{{/i}}
  • +
  • +
  • + {{_i}}Examples{{/i}} +
  • diff --git a/docs/templates/pages/base-css.mustache b/docs/templates/pages/base-css.mustache index b47bcf2659..dedc201f35 100644 --- a/docs/templates/pages/base-css.mustache +++ b/docs/templates/pages/base-css.mustache @@ -1006,6 +1006,27 @@ + + +

    {{_i}}Use the same .span* classes from the grid system for input sizes.{{/i}}

    diff --git a/docs/upgrading.html b/docs/upgrading.html index d7ad30f561..f4f848c111 100644 --- a/docs/upgrading.html +++ b/docs/upgrading.html @@ -62,6 +62,10 @@
  • Customize
  • +
  • +
  • + Examples +
  • diff --git a/examples/fluid.html b/examples/fluid.html index 1cdfd6568f..738c520581 100644 --- a/examples/fluid.html +++ b/examples/fluid.html @@ -55,7 +55,7 @@
    -
    +
    -
    +

    Heading

    Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.

    @@ -101,7 +101,7 @@

    View details »

    -
    +

    Heading

    Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui.

    diff --git a/less/forms.less b/less/forms.less index 9d94a64b7e..131f8af555 100644 --- a/less/forms.less +++ b/less/forms.less @@ -229,45 +229,13 @@ textarea[class*="span"], margin-left: 0; } -// This is a duplication of the main grid .columns() mixin, but subtracts 10px to account for input padding and border -.inputColumns(@columnSpan: 1) { - width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 10; -} -input, -textarea, -.uneditable-input { - // Default columns - &.span1 { .inputColumns(1); } - &.span2 { .inputColumns(2); } - &.span3 { .inputColumns(3); } - &.span4 { .inputColumns(4); } - &.span5 { .inputColumns(5); } - &.span6 { .inputColumns(6); } - &.span7 { .inputColumns(7); } - &.span8 { .inputColumns(8); } - &.span9 { .inputColumns(9); } - &.span10 { .inputColumns(10); } - &.span11 { .inputColumns(11); } - &.span12 { .inputColumns(12); } -} -.selectColumns(@columnSpan: 1) { - width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) + 10; -} -select { - &.span1 { .selectColumns(1); } - &.span2 { .selectColumns(2); } - &.span3 { .selectColumns(3); } - &.span4 { .selectColumns(4); } - &.span5 { .selectColumns(5); } - &.span6 { .selectColumns(6); } - &.span7 { .selectColumns(7); } - &.span8 { .selectColumns(8); } - &.span9 { .selectColumns(9); } - &.span10 { .selectColumns(10); } - &.span11 { .selectColumns(11); } - &.span12 { .selectColumns(12); } -} + +// GRID SIZING FOR INPUTS +// ---------------------- + +#inputGridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth); + diff --git a/less/grid.less b/less/grid.less index 2ef767a4a7..4acb0a44ce 100644 --- a/less/grid.less +++ b/less/grid.less @@ -1,81 +1,8 @@ // GRID SYSTEM // ----------- +// Fixed (940px) +#gridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth); -// Grid rows and columns -// --------------------- -.row { - margin-left: @gridGutterWidth * -1; - .clearfix(); -} - -// Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg) -[class*="span"] { - .gridColumn(); -} - -// Default columns -.span1 { .columns(1); } -.span2 { .columns(2); } -.span3 { .columns(3); } -.span4 { .columns(4); } -.span5 { .columns(5); } -.span6 { .columns(6); } -.span7 { .columns(7); } -.span8 { .columns(8); } -.span9 { .columns(9); } -.span10 { .columns(10); } -.span11 { .columns(11); } -.span12 { .columns(12); } - -// Offset column options -.offset1 { .offset(1); } -.offset2 { .offset(2); } -.offset3 { .offset(3); } -.offset4 { .offset(4); } -.offset5 { .offset(5); } -.offset6 { .offset(6); } -.offset7 { .offset(7); } -.offset8 { .offset(8); } -.offset9 { .offset(9); } -.offset10 { .offset(10); } -.offset11 { .offset(11); } - - - -// FLUID GRID SYSTEM -// ----------------- -// This is a very early and limited fluid grid system for now and will not be documented until it's refined in v2.1. - -.row-fluid { - @gridColumnWidth: 6.382978723%; - @gridGutterWidth: 2.127659574%; - - width: 100% * ((@gridGutterWidth + @gridRowWidth)/@gridRowWidth); - margin-left: 0 - @gridGutterWidth; - - // Redeclare the mixins - .gridColumn() { - float: left; - margin-left: @gridGutterWidth; - } - [class*="span"] { - .gridColumn(); - } - .fluidColumns(@columns: 1) { - width: @gridTotalWidth * ((((@gridGutterWidth+@gridColumnWidth)*@columns)-@gridGutterWidth)/(@gridRowWidth+@gridGutterWidth)); - } - // Redeclare the columns - .span1 { .fluidColumns(1); } - .span2 { .fluidColumns(2); } - .span3 { .fluidColumns(3); } - .span4 { .fluidColumns(4); } - .span5 { .fluidColumns(5); } - .span6 { .fluidColumns(6); } - .span7 { .fluidColumns(7); } - .span8 { .fluidColumns(8); } - .span9 { .fluidColumns(9); } - .span10 { .fluidColumns(10); } - .span11 { .fluidColumns(11); } - .span12 { .fluidColumns(12); } -} +// Fluid (940px) +#fluidGridSystem > .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth); diff --git a/less/mixins.less b/less/mixins.less index cba2670db1..39e1d87967 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -133,25 +133,135 @@ // Site container // ------------------------- .container-fixed() { - width: @gridTotalWidth; + width: @gridRowWidth; margin-left: auto; margin-right: auto; .clearfix(); } -// Columns and offseting mixins -// ---------------------------- -.columns(@columns: 1) { - //width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); - width: @gridTotalWidth * ((((@gridGutterWidth+@gridColumnWidth)*@columns)-@gridGutterWidth)/@gridRowWidth); +// Le grid system +// ------------------------- +#gridSystem { + // Setup the mixins to be used + .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) { + width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); + } + .offset(@gridColumnWidth, @gridGutterWidth, @columns) { + margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2); + } + .gridColumn(@gridGutterWidth) { + float: left; + margin-left: @gridGutterWidth; + } + // Take these values and mixins, and make 'em do their thang + .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) { + // Row surrounds the columns + .row { + margin-left: @gridGutterWidth * -1; + .clearfix(); + } + // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg) + [class*="span"] { + #gridSystem > .gridColumn(@gridGutterWidth); + } + // Default columns + .span1 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); } + .span2 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); } + .span3 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); } + .span4 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); } + .span5 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); } + .span6 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); } + .span7 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); } + .span8 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); } + .span9 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); } + .span10 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); } + .span11 { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); } + .span12, + .container { #gridSystem > .columns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); } + // Offset column options + .offset1 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 1); } + .offset2 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 2); } + .offset3 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 3); } + .offset4 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 4); } + .offset5 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 5); } + .offset6 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 6); } + .offset7 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 7); } + .offset8 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 8); } + .offset9 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 9); } + .offset10 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 10); } + .offset11 { #gridSystem > .offset(@gridColumnWidth, @gridGutterWidth, 11); } + } } -.offset(@columns: 1) { - margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2); + +// Fluid grid system +// ------------------------- +#fluidGridSystem { + // Setup the mixins to be used + .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, @columns) { + width: 1% * (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)); + } + .gridColumn(@fluidGridGutterWidth) { + float: left; + margin-left: @fluidGridGutterWidth; + } + // Take these values and mixins, and make 'em do their thang + .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth) { + // Row surrounds the columns + .row-fluid { + width: 100%; + .clearfix(); + + // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg) + [class*="span"] { + #fluidGridSystem > .gridColumn(@fluidGridGutterWidth); + } + [class*="span"]:first-child { + margin-left: 0; + } + // Default columns + .span1 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 1); } + .span2 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 2); } + .span3 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 3); } + .span4 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 4); } + .span5 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 5); } + .span6 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 6); } + .span7 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 7); } + .span8 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 8); } + .span9 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 9); } + .span10 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 10); } + .span11 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 11); } + .span12 { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 12); } + } + } } -// Necessary grid styles for every column to make them appear next to each other horizontally -.gridColumn() { - float: left; - margin-left: @gridGutterWidth; + + + + +// Input grid system +// ------------------------- +#inputGridSystem { + .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, @columns) { + width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 10; + } + .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth) { + input, + textarea, + .uneditable-input { + &.span1 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 1); } + &.span2 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 2); } + &.span3 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 3); } + &.span4 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 4); } + &.span5 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 5); } + &.span6 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 6); } + &.span7 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 7); } + &.span8 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 8); } + &.span9 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 9); } + &.span10 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 10); } + &.span11 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 11); } + &.span12 { #inputGridSystem > .inputColumns(@gridGutterWidth, @gridColumnWidth, @gridRowWidth, 12); } + } + } } diff --git a/less/responsive.less b/less/responsive.less index a1d4cf2c88..72fa213848 100644 --- a/less/responsive.less +++ b/less/responsive.less @@ -125,7 +125,8 @@ margin-left: 0; } // Make all columns even - .row > [class*="span"] { + .row > [class*="span"], + .row-fluid > [class*="span"] { float: none; display: block; width: auto; @@ -140,90 +141,15 @@ @media (min-width: 768px) and (max-width: 940px) { - // Reset grid variables - @gridColumns: 12; - @gridColumnWidth: 42px; - @gridGutterWidth: 20px; - @siteWidth: 724px; + // Fixed grid + #gridSystem > .generate(12, 42px, 20px); - // Bring grid mixins to recalculate widths - .columns(@columns: 1) { - width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); - } - .offset(@columns: 1) { - margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2); - } + // Fluid grid + #fluidGridSystem > .generate(12, 5.801104972%, 2.762430939%); - // 12cols at 44px wide with 20px gutters - .container { - width: @siteWidth; - padding-left: 20px; - padding-right: 20px; - } + // Input grid + #inputGridSystem > .generate(12, 42px, 20px); - // Default columns - .span1 { .columns(1); } - .span2 { .columns(2); } - .span3 { .columns(3); } - .span4 { .columns(4); } - .span5 { .columns(5); } - .span6 { .columns(6); } - .span7 { .columns(7); } - .span8 { .columns(8); } - .span9 { .columns(9); } - .span10 { .columns(10); } - .span11 { .columns(11); } - .span12 { .columns(12); } - - // Offset column options - .offset1 { .offset(1); } - .offset2 { .offset(2); } - .offset3 { .offset(3); } - .offset4 { .offset(4); } - .offset5 { .offset(5); } - .offset6 { .offset(6); } - .offset7 { .offset(7); } - .offset8 { .offset(8); } - .offset9 { .offset(9); } - .offset10 { .offset(10); } - .offset11 { .offset(11); } - - // FLUID GRID - // ---------- - .row-fluid { - @gridColumnWidth: 5.801104972%; - @gridGutterWidth: 2.762430939%; - @gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); - @gridTotalWidth: @gridRowWidth; - - width: 100% * ((@gridGutterWidth + @gridRowWidth)/@gridRowWidth); - margin-left: 0 - @gridGutterWidth; - - // Redeclare the mixins - .gridColumn() { - float: left; - margin-left: @gridGutterWidth; - } - [class*="span"] { - .gridColumn(); - } - .fluidColumns(@columns: 1) { - width: @gridTotalWidth * ((((@gridGutterWidth+@gridColumnWidth)*@columns)-@gridGutterWidth)/(@gridRowWidth+@gridGutterWidth)); - } - // Redeclare the columns - .span1 { .fluidColumns(1); } - .span2 { .fluidColumns(2); } - .span3 { .fluidColumns(3); } - .span4 { .fluidColumns(4); } - .span5 { .fluidColumns(5); } - .span6 { .fluidColumns(6); } - .span7 { .fluidColumns(7); } - .span8 { .fluidColumns(8); } - .span9 { .fluidColumns(9); } - .span10 { .fluidColumns(10); } - .span11 { .fluidColumns(11); } - .span12 { .fluidColumns(12); } - } } @@ -362,99 +288,21 @@ @media (min-width: 1200px) { - // Reset grid variables - @gridColumns: 12; - @gridColumnWidth: 70px; - @gridGutterWidth: 30px; - @siteWidth: 1170px; + // Fixed grid + #gridSystem > .generate(12, 70px, 30px); + + // Fluid grid + #fluidGridSystem > .generate(12, 5.982905983%, 2.564102564%); + + // Input grid + #inputGridSystem > .generate(12, 70px, 30px); // Thumbnails .thumbnails { - margin-left: @gridGutterWidth * -1; + margin-left: -30px; } .thumbnails > li { - margin-left: @gridGutterWidth; + margin-left: 30px; } - // Bring grid mixins to recalculate widths - .columns(@columns: 1) { - width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); - } - .offset(@columns: 1) { - margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2); - } - .container { - width: @siteWidth; - } - .row { - margin-left: @gridGutterWidth * -1; - } - [class*="span"] { - margin-left: @gridGutterWidth; - } - - // Default columns - .span1 { .columns(1); } - .span2 { .columns(2); } - .span3 { .columns(3); } - .span4 { .columns(4); } - .span5 { .columns(5); } - .span6 { .columns(6); } - .span7 { .columns(7); } - .span8 { .columns(8); } - .span9 { .columns(9); } - .span10 { .columns(10); } - .span11 { .columns(11); } - .span12 { .columns(12); } - - // Offset column options - .offset1 { .offset(1); } - .offset2 { .offset(2); } - .offset3 { .offset(3); } - .offset4 { .offset(4); } - .offset5 { .offset(5); } - .offset6 { .offset(6); } - .offset7 { .offset(7); } - .offset8 { .offset(8); } - .offset9 { .offset(9); } - .offset10 { .offset(10); } - .offset11 { .offset(11); } - - - // FLUID GRID - // ---------- - .row-fluid { - @gridColumnWidth: 5.982%; - @gridGutterWidth: 2.56%; - @gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); - @gridTotalWidth: @gridRowWidth; - - width: 100% * ((@gridGutterWidth + @gridRowWidth)/@gridRowWidth); - margin-left: 0 - @gridGutterWidth; - - // Redeclare the mixins - .gridColumn() { - float: left; - margin-left: @gridGutterWidth; - } - [class*="span"] { - .gridColumn(); - } - .fluidColumns(@columns: 1) { - width: @gridTotalWidth * ((((@gridGutterWidth+@gridColumnWidth)*@columns)-@gridGutterWidth)/(@gridRowWidth+@gridGutterWidth)); - } - // Redeclare the columns - .span1 { .fluidColumns(1); } - .span2 { .fluidColumns(2); } - .span3 { .fluidColumns(3); } - .span4 { .fluidColumns(4); } - .span5 { .fluidColumns(5); } - .span6 { .fluidColumns(6); } - .span7 { .fluidColumns(7); } - .span8 { .fluidColumns(8); } - .span9 { .fluidColumns(9); } - .span10 { .fluidColumns(10); } - .span11 { .fluidColumns(11); } - .span12 { .fluidColumns(12); } - } } diff --git a/less/variables.less b/less/variables.less index f09a88cdb3..d9d79f05c1 100644 --- a/less/variables.less +++ b/less/variables.less @@ -40,17 +40,6 @@ -// GRID SYSTEM VARIABLES -// -------------------------------------------------- - -@gridColumns: 12; -@gridColumnWidth: 60px; -@gridGutterWidth: 20px; -@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); -@gridTotalWidth: @gridRowWidth; - - - // COMPONENT VARIABLES // -------------------------------------------------- @@ -94,3 +83,17 @@ @infoBorder: darken(spin(@infoBackground, -10), 7%); + +// GRID +// -------------------------------------------------- + +// Default 940px grid +@gridColumns: 12; +@gridColumnWidth: 60px; +@gridGutterWidth: 20px; +@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); + +// Fluid grid +@fluidGridColumnWidth: 6.382978723%; +@fluidGridGutterWidth: 2.127659574%; +