Mercurial > minori
comparison dep/fmt/doc/bootstrap/mixins/grid-framework.less @ 343:1faa72660932
*: transfer back to cmake from autotools
autotools just made lots of things more complicated than
they should have and many things broke (i.e. translations)
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 20 Jun 2024 05:56:06 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
342:adb79bdde329 | 343:1faa72660932 |
---|---|
1 // Framework grid generation | |
2 // | |
3 // Used only by Bootstrap to generate the correct number of grid classes given | |
4 // any value of `@grid-columns`. | |
5 | |
6 .make-grid-columns() { | |
7 // Common styles for all sizes of grid columns, widths 1-12 | |
8 .col(@index) { // initial | |
9 @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; | |
10 .col((@index + 1), @item); | |
11 } | |
12 .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo | |
13 @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; | |
14 .col((@index + 1), ~"@{list}, @{item}"); | |
15 } | |
16 .col(@index, @list) when (@index > @grid-columns) { // terminal | |
17 @{list} { | |
18 position: relative; | |
19 // Prevent columns from collapsing when empty | |
20 min-height: 1px; | |
21 // Inner gutter via padding | |
22 padding-left: (@grid-gutter-width / 2); | |
23 padding-right: (@grid-gutter-width / 2); | |
24 } | |
25 } | |
26 .col(1); // kickstart it | |
27 } | |
28 | |
29 .float-grid-columns(@class) { | |
30 .col(@index) { // initial | |
31 @item: ~".col-@{class}-@{index}"; | |
32 .col((@index + 1), @item); | |
33 } | |
34 .col(@index, @list) when (@index =< @grid-columns) { // general | |
35 @item: ~".col-@{class}-@{index}"; | |
36 .col((@index + 1), ~"@{list}, @{item}"); | |
37 } | |
38 .col(@index, @list) when (@index > @grid-columns) { // terminal | |
39 @{list} { | |
40 float: left; | |
41 } | |
42 } | |
43 .col(1); // kickstart it | |
44 } | |
45 | |
46 .calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) { | |
47 .col-@{class}-@{index} { | |
48 width: percentage((@index / @grid-columns)); | |
49 } | |
50 } | |
51 .calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) { | |
52 .col-@{class}-push-@{index} { | |
53 left: percentage((@index / @grid-columns)); | |
54 } | |
55 } | |
56 .calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) { | |
57 .col-@{class}-push-0 { | |
58 left: auto; | |
59 } | |
60 } | |
61 .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) { | |
62 .col-@{class}-pull-@{index} { | |
63 right: percentage((@index / @grid-columns)); | |
64 } | |
65 } | |
66 .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) { | |
67 .col-@{class}-pull-0 { | |
68 right: auto; | |
69 } | |
70 } | |
71 .calc-grid-column(@index, @class, @type) when (@type = offset) { | |
72 .col-@{class}-offset-@{index} { | |
73 margin-left: percentage((@index / @grid-columns)); | |
74 } | |
75 } | |
76 | |
77 // Basic looping in LESS | |
78 .loop-grid-columns(@index, @class, @type) when (@index >= 0) { | |
79 .calc-grid-column(@index, @class, @type); | |
80 // next iteration | |
81 .loop-grid-columns((@index - 1), @class, @type); | |
82 } | |
83 | |
84 // Create grid for specific class | |
85 .make-grid(@class) { | |
86 .float-grid-columns(@class); | |
87 .loop-grid-columns(@grid-columns, @class, width); | |
88 .loop-grid-columns(@grid-columns, @class, pull); | |
89 .loop-grid-columns(@grid-columns, @class, push); | |
90 .loop-grid-columns(@grid-columns, @class, offset); | |
91 } |