-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtinygrid.less
90 lines (76 loc) · 2.19 KB
/
tinygrid.less
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*---------------------------------------------------------------------
* Usage:
* - don't change the left/right padding of `.r` or a `.c-*` elements
*-------------------------------------------------------------------*/
@number-of-columns: 12;
@column-percentage: 100% / @number-of-columns;
@min-column-size: 80px;
@max-column-size: 100px;
@gutter-size: 10px;
// 20px gutter between each AND at ends
@large-width: ((@number-of-columns * @min-column-size) + (@gutter-size * (@number-of-columns + 1)));
@grid-width: ((@number-of-columns * @max-column-size) + (@gutter-size * (@number-of-columns + 1)));
@column-width: @grid-width / @number-of-columns;
// resets
*,
*:after,
*:before {
margin: 0;
padding: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.r {
margin-left: auto;
margin-right: auto;
position: relative;
display: flex;
flex-direction: column;
flex-wrap: wrap;
width: 100%;
@media only screen and (min-width: @large-width) {
flex-direction: row;
}
}
.create-push(@cn, @n) when (@n > 0) {
.c-@{cn}.push-@{n} {
margin: 0;
@media only screen and (min-width: @large-width) {
margin-left: @n * @column-percentage;
margin-right: 0; // made up for by padding later
max-width: @cn * @column-percentage;
}
}
.create-push(@cn, @n - 1);
}
.create-pull(@cn, @n) when (@n > 0) {
.c-@{cn}.pull-@{n} {
margin-right: 0;
@media only screen and (min-width: @large-width) {
margin-right: (@n * @grid-width / @number-of-columns);
}
}
.create-pull(@cn, @n - 1);
}
.create-grid(@n) when (@n =1) {
@media only screen and (min-width: @large-width) {
padding-left: 20px;
}
}
.create-grid(@n) when (@n > 0) {
.c-@{n} {
width: 100%;
padding: 0 @gutter-size / 2;
.outer & {
margin: 0;
}
@media only screen and (min-width: @large-width) {
max-width: (@n * @column-percentage);
flex: 1 1 auto;
}
}
.create-push(@n, @number-of-columns);
.create-pull(@n, @number-of-columns);
.create-grid(@n - 1);
}
.create-grid(@number-of-columns);