diff options
| author | Jacob Thornton <[email protected]> | 2012-03-04 14:06:30 -0800 |
|---|---|---|
| committer | Jacob Thornton <[email protected]> | 2012-03-04 14:06:30 -0800 |
| commit | 1aeca545c8708dce6d05e7698589a20b98b39a76 (patch) | |
| tree | 8e931be9c8d339035fe564907c9dfbeffbf0ec55 /less | |
| parent | 86159872433e39800374d563dde28afaa29545f0 (diff) | |
| download | bootstrap-1aeca545c8708dce6d05e7698589a20b98b39a76.tar.xz bootstrap-1aeca545c8708dce6d05e7698589a20b98b39a76.zip | |
new approach to grid with recursive mixins :D
Diffstat (limited to 'less')
| -rw-r--r-- | less/mixins.less | 258 |
1 files changed, 25 insertions, 233 deletions
diff --git a/less/mixins.less b/less/mixins.less index 5386d41ef..d58a43685 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -482,140 +482,24 @@ #grid { - // we have to define these bogus mixins otherwise - // less throws an exception when we call for them - // below and a guard hasn't overridden them - // (@fat will work with @cloudhead on coming up with something better hopefully) - .span1 (@gridColumns, @child: 0) {} - .span2 (@gridColumns, @child: 0) {} - .span3 (@gridColumns, @child: 0) {} - .span4 (@gridColumns, @child: 0) {} - .span5 (@gridColumns, @child: 0) {} - .span6 (@gridColumns, @child: 0) {} - .span7 (@gridColumns, @child: 0) {} - .span8 (@gridColumns, @child: 0) {} - .span9 (@gridColumns, @child: 0) {} - .span10 (@gridColumns, @child: 0) {} - .span11 (@gridColumns, @child: 0) {} - .span12 (@gridColumns, @child: 0) {} - .span13 (@gridColumns, @child: 0) {} - .span14 (@gridColumns, @child: 0) {} - .span15 (@gridColumns, @child: 0) {} - .span16 (@gridColumns, @child: 0) {} - .span17 (@gridColumns, @child: 0) {} - .span18 (@gridColumns, @child: 0) {} - .span19 (@gridColumns, @child: 0) {} - .span20 (@gridColumns, @child: 0) {} - .span21 (@gridColumns, @child: 0) {} - .span22 (@gridColumns, @child: 0) {} - .span23 (@gridColumns, @child: 0) {} - .span24 (@gridColumns, @child: 0) {} - - - // override mixins with guards - .span1 (@gridColumns) when (@gridColumns > 0) { .span1 { .span(1); } } - .span2 (@gridColumns) when (@gridColumns > 1) { .span2 { .span(2); } } - .span3 (@gridColumns) when (@gridColumns > 2) { .span3 { .span(3); } } - .span4 (@gridColumns) when (@gridColumns > 3) { .span4 { .span(4); } } - .span5 (@gridColumns) when (@gridColumns > 4) { .span5 { .span(5); } } - .span6 (@gridColumns) when (@gridColumns > 5) { .span6 { .span(6); } } - .span7 (@gridColumns) when (@gridColumns > 6) { .span7 { .span(7); } } - .span8 (@gridColumns) when (@gridColumns > 7) { .span8 { .span(8); } } - .span9 (@gridColumns) when (@gridColumns > 8) { .span9 { .span(9); } } - .span10 (@gridColumns) when (@gridColumns > 9) { .span10 { .span(10); } } - .span11 (@gridColumns) when (@gridColumns > 10) { .span11 { .span(11); } } - .span12 (@gridColumns) when (@gridColumns > 11) { .span12 { .span(12); } } - .span13 (@gridColumns) when (@gridColumns > 12) { .span13 { .span(13); } } - .span14 (@gridColumns) when (@gridColumns > 13) { .span14 { .span(14); } } - .span15 (@gridColumns) when (@gridColumns > 14) { .span15 { .span(15); } } - .span16 (@gridColumns) when (@gridColumns > 15) { .span16 { .span(16); } } - .span17 (@gridColumns) when (@gridColumns > 16) { .span17 { .span(17); } } - .span18 (@gridColumns) when (@gridColumns > 17) { .span18 { .span(18); } } - .span19 (@gridColumns) when (@gridColumns > 18) { .span19 { .span(19); } } - .span20 (@gridColumns) when (@gridColumns > 19) { .span20 { .span(20); } } - .span21 (@gridColumns) when (@gridColumns > 20) { .span21 { .span(21); } } - .span22 (@gridColumns) when (@gridColumns > 21) { .span22 { .span(22); } } - .span23 (@gridColumns) when (@gridColumns > 22) { .span23 { .span(23); } } - .span24 (@gridColumns) when (@gridColumns > 23) { .span24 { .span(24); } } - - .span1 (@gridColumns, @child) when (@gridColumns > 0) and (@child) { > .span1 { .span(1); } } - .span2 (@gridColumns, @child) when (@gridColumns > 1) and (@child) { > .span2 { .span(2); } } - .span3 (@gridColumns, @child) when (@gridColumns > 2) and (@child) { > .span3 { .span(3); } } - .span4 (@gridColumns, @child) when (@gridColumns > 3) and (@child) { > .span4 { .span(4); } } - .span5 (@gridColumns, @child) when (@gridColumns > 4) and (@child) { > .span5 { .span(5); } } - .span6 (@gridColumns, @child) when (@gridColumns > 5) and (@child) { > .span6 { .span(6); } } - .span7 (@gridColumns, @child) when (@gridColumns > 6) and (@child) { > .span7 { .span(7); } } - .span8 (@gridColumns, @child) when (@gridColumns > 7) and (@child) { > .span8 { .span(8); } } - .span9 (@gridColumns, @child) when (@gridColumns > 8) and (@child) { > .span9 { .span(9); } } - .span10 (@gridColumns, @child) when (@gridColumns > 9) and (@child) { > .span10 { .span(10); } } - .span11 (@gridColumns, @child) when (@gridColumns > 10) and (@child) { > .span11 { .span(11); } } - .span12 (@gridColumns, @child) when (@gridColumns > 11) and (@child) { > .span12 { .span(12); } } - .span13 (@gridColumns, @child) when (@gridColumns > 12) and (@child) { > .span13 { .span(13); } } - .span14 (@gridColumns, @child) when (@gridColumns > 13) and (@child) { > .span14 { .span(14); } } - .span15 (@gridColumns, @child) when (@gridColumns > 14) and (@child) { > .span15 { .span(15); } } - .span16 (@gridColumns, @child) when (@gridColumns > 15) and (@child) { > .span16 { .span(16); } } - .span17 (@gridColumns, @child) when (@gridColumns > 16) and (@child) { > .span17 { .span(17); } } - .span18 (@gridColumns, @child) when (@gridColumns > 17) and (@child) { > .span18 { .span(18); } } - .span19 (@gridColumns, @child) when (@gridColumns > 18) and (@child) { > .span19 { .span(19); } } - .span20 (@gridColumns, @child) when (@gridColumns > 19) and (@child) { > .span20 { .span(20); } } - .span21 (@gridColumns, @child) when (@gridColumns > 20) and (@child) { > .span21 { .span(21); } } - .span22 (@gridColumns, @child) when (@gridColumns > 21) and (@child) { > .span22 { .span(22); } } - .span23 (@gridColumns, @child) when (@gridColumns > 22) and (@child) { > .span23 { .span(23); } } - .span24 (@gridColumns, @child) when (@gridColumns > 23) and (@child) { > .span24 { .span(24); } } - - - // do the same with offset as we did with spans ;_; - .offset1 (@gridColumns) {} - .offset2 (@gridColumns) {} - .offset3 (@gridColumns) {} - .offset4 (@gridColumns) {} - .offset5 (@gridColumns) {} - .offset6 (@gridColumns) {} - .offset7 (@gridColumns) {} - .offset8 (@gridColumns) {} - .offset9 (@gridColumns) {} - .offset10 (@gridColumns) {} - .offset11 (@gridColumns) {} - .offset12 (@gridColumns) {} - .offset13 (@gridColumns) {} - .offset14 (@gridColumns) {} - .offset15 (@gridColumns) {} - .offset16 (@gridColumns) {} - .offset17 (@gridColumns) {} - .offset18 (@gridColumns) {} - .offset19 (@gridColumns) {} - .offset20 (@gridColumns) {} - .offset21 (@gridColumns) {} - .offset22 (@gridColumns) {} - .offset23 (@gridColumns) {} - .offset24 (@gridColumns) {} - - - // override with guards - .offset1 (@gridColumns) when (@gridColumns > 0) { .offset1 { .offset(1); } } - .offset2 (@gridColumns) when (@gridColumns > 1) { .offset2 { .offset(2); } } - .offset3 (@gridColumns) when (@gridColumns > 2) { .offset3 { .offset(3); } } - .offset4 (@gridColumns) when (@gridColumns > 3) { .offset4 { .offset(4); } } - .offset5 (@gridColumns) when (@gridColumns > 4) { .offset5 { .offset(5); } } - .offset6 (@gridColumns) when (@gridColumns > 5) { .offset6 { .offset(6); } } - .offset7 (@gridColumns) when (@gridColumns > 6) { .offset7 { .offset(7); } } - .offset8 (@gridColumns) when (@gridColumns > 7) { .offset8 { .offset(8); } } - .offset9 (@gridColumns) when (@gridColumns > 8) { .offset9 { .offset(9); } } - .offset10 (@gridColumns) when (@gridColumns > 9) { .offset10 { .offset(10); } } - .offset11 (@gridColumns) when (@gridColumns > 10) { .offset11 { .offset(11); } } - .offset12 (@gridColumns) when (@gridColumns > 11) { .offset12 { .offset(12); } } - .offset13 (@gridColumns) when (@gridColumns > 12) { .offset13 { .offset(13); } } - .offset14 (@gridColumns) when (@gridColumns > 13) { .offset14 { .offset(14); } } - .offset15 (@gridColumns) when (@gridColumns > 14) { .offset15 { .offset(15); } } - .offset16 (@gridColumns) when (@gridColumns > 15) { .offset16 { .offset(16); } } - .offset17 (@gridColumns) when (@gridColumns > 16) { .offset17 { .offset(17); } } - .offset18 (@gridColumns) when (@gridColumns > 17) { .offset18 { .offset(18); } } - .offset19 (@gridColumns) when (@gridColumns > 18) { .offset19 { .offset(19); } } - .offset20 (@gridColumns) when (@gridColumns > 19) { .offset20 { .offset(20); } } - .offset21 (@gridColumns) when (@gridColumns > 20) { .offset21 { .offset(21); } } - .offset22 (@gridColumns) when (@gridColumns > 21) { .offset22 { .offset(22); } } - .offset23 (@gridColumns) when (@gridColumns > 22) { .offset23 { .offset(23); } } - .offset24 (@gridColumns) when (@gridColumns > 23) { .offset24 { .offset(24); } } + // Recursive mixins! <3 + // Requires not yet released LESS ;) + + .spanX (@index) when not (@index = 0) { + ~".span@{index}" { .span(@index); } + #grid .spanX(@index - 1); + } + .spanX (@index, @child) when not (@index = 0) and (@child) { + ~"> .span@{index}" { .span(@index); } + #grid .spanX(@index - 1); + } + .spanX (0) {} + + .offsetX (@index) when not (@index = 0) { + ~".offset@{index}" { .offset(@index); } + #grid .offsetX(@index - 1); + } + .offsetX (0) {} .core (@gridColumnWidth, @gridGutterWidth) { @@ -642,57 +526,9 @@ .navbar-fixed-top .container, .navbar-fixed-bottom .container { .span(@gridColumns); } - // define up to max of 24 columns (default is 12) - #grid .span1(@gridColumns); - #grid .span2(@gridColumns); - #grid .span3(@gridColumns); - #grid .span4(@gridColumns); - #grid .span5(@gridColumns); - #grid .span6(@gridColumns); - #grid .span7(@gridColumns); - #grid .span8(@gridColumns); - #grid .span9(@gridColumns); - #grid .span10(@gridColumns); - #grid .span11(@gridColumns); - #grid .span12(@gridColumns); - #grid .span13(@gridColumns); - #grid .span14(@gridColumns); - #grid .span15(@gridColumns); - #grid .span16(@gridColumns); - #grid .span17(@gridColumns); - #grid .span18(@gridColumns); - #grid .span19(@gridColumns); - #grid .span20(@gridColumns); - #grid .span21(@gridColumns); - #grid .span22(@gridColumns); - #grid .span23(@gridColumns); - #grid .span24(@gridColumns); - - // define up to max of 24 offsets (default is 12) - #grid .offset1(@gridColumns); - #grid .offset2(@gridColumns); - #grid .offset3(@gridColumns); - #grid .offset4(@gridColumns); - #grid .offset5(@gridColumns); - #grid .offset6(@gridColumns); - #grid .offset7(@gridColumns); - #grid .offset8(@gridColumns); - #grid .offset9(@gridColumns); - #grid .offset10(@gridColumns); - #grid .offset11(@gridColumns); - #grid .offset12(@gridColumns); - #grid .offset13(@gridColumns); - #grid .offset14(@gridColumns); - #grid .offset15(@gridColumns); - #grid .offset16(@gridColumns); - #grid .offset17(@gridColumns); - #grid .offset18(@gridColumns); - #grid .offset19(@gridColumns); - #grid .offset20(@gridColumns); - #grid .offset21(@gridColumns); - #grid .offset22(@gridColumns); - #grid .offset23(@gridColumns); - #grid .offset24(@gridColumns); + // generate .spanX and .offsetX + #grid .spanX (@gridColumns); + #grid .offsetX (@gridColumns); } @@ -713,30 +549,8 @@ margin-left: 0; } - #grid .span1(@gridColumns, true); - #grid .span2(@gridColumns, true); - #grid .span3(@gridColumns, true); - #grid .span4(@gridColumns, true); - #grid .span5(@gridColumns, true); - #grid .span6(@gridColumns, true); - #grid .span7(@gridColumns, true); - #grid .span8(@gridColumns, true); - #grid .span9(@gridColumns, true); - #grid .span10(@gridColumns, true); - #grid .span11(@gridColumns, true); - #grid .span12(@gridColumns, true); - #grid .span13(@gridColumns, true); - #grid .span14(@gridColumns, true); - #grid .span15(@gridColumns, true); - #grid .span16(@gridColumns, true); - #grid .span17(@gridColumns, true); - #grid .span18(@gridColumns, true); - #grid .span19(@gridColumns, true); - #grid .span20(@gridColumns, true); - #grid .span21(@gridColumns, true); - #grid .span22(@gridColumns, true); - #grid .span23(@gridColumns, true); - #grid .span24(@gridColumns, true); + // generate .spanX + #grid .spanX (@gridColumns, true); } } @@ -752,30 +566,8 @@ .uneditable-input { margin-left: 0; // override margin-left from core grid system - #grid .span1(@gridColumns, true); - #grid .span2(@gridColumns, true); - #grid .span3(@gridColumns, true); - #grid .span4(@gridColumns, true); - #grid .span5(@gridColumns, true); - #grid .span6(@gridColumns, true); - #grid .span7(@gridColumns, true); - #grid .span8(@gridColumns, true); - #grid .span9(@gridColumns, true); - #grid .span10(@gridColumns, true); - #grid .span11(@gridColumns, true); - #grid .span12(@gridColumns, true); - #grid .span13(@gridColumns, true); - #grid .span14(@gridColumns, true); - #grid .span15(@gridColumns, true); - #grid .span16(@gridColumns, true); - #grid .span17(@gridColumns, true); - #grid .span18(@gridColumns, true); - #grid .span19(@gridColumns, true); - #grid .span20(@gridColumns, true); - #grid .span21(@gridColumns, true); - #grid .span22(@gridColumns, true); - #grid .span23(@gridColumns, true); - #grid .span24(@gridColumns, true); + // generate .spanX + #grid .spanX (@gridColumns, true); } } |
