This repository has been archived by the owner on Apr 22, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_flex-grid.scss
128 lines (102 loc) · 1.83 KB
/
_flex-grid.scss
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$grid-gutter-width: 1em !default;
$bp: (
xs: 0,
sm: 480px,
md: 768px,
lg: 1024px
) !default;
.flex-grid {
display: flex;
margin: (-$grid-gutter-width / 2);
&--wrap {
flex-wrap: wrap;
}
&--direction {
&-row {
flex-direction: row;
&-reverse {
flex-direction: row-reverse;
}
}
&-column {
flex-direction: column;
&-reverse {
flex-direction: column-reverse;
}
}
}
&--justify {
&-flex-start {
justify-content: flex-start;
}
&-flex-end {
justify-content: flex-end;
}
&-center {
justify-content: center;
}
&-space-between {
justify-content: space-between;
}
&-space-around {
justify-content: space-around;
}
}
&--align {
&-flex-start {
align-items: flex-start;
}
&-flex-end {
align-items: flex-end;
}
&-center {
align-items: center;
}
&-baseline {
align-items: baseline;
}
&-stretch {
align-items: stretch;
}
}
&__item {
flex: 0 0 auto;
min-width: 0; // Fixes a bug not letting the child shrink the content
padding: $grid-gutter-width / 2;
&--grow {
flex-grow: 1;
}
&--shrink {
flex-shrink: 1;
}
&--flex {
display: flex;
}
&--align {
&-flex-start {
align-self: flex-start;
}
&-flex-end {
align-self: flex-end;
}
&-center {
align-self: center;
}
&-baseline {
align-self: baseline;
}
&-stretch {
align-self: stretch;
}
}
@each $bp-key, $bp-value in $bp {
@media screen and (min-width: $bp-value) {
@for $i from 1 through 12 {
&--#{$bp-key}-#{$i} {
width: percentage($i / 12);
}
}
}
}
}
}