]> git.ipfire.org Git - ipfire.org.git/blob - src/scss/bootstrap-4.0.0-alpha.6/scss/_card.scss
Introduce autotools
[ipfire.org.git] / src / scss / bootstrap-4.0.0-alpha.6 / scss / _card.scss
1 //
2 // Base styles
3 //
4
5 .card {
6 position: relative;
7 display: flex;
8 flex-direction: column;
9 background-color: $card-bg;
10 border: $card-border-width solid $card-border-color;
11 @include border-radius($card-border-radius);
12 }
13
14 .card-block {
15 // Enable `flex-grow: 1` for decks and groups so that card blocks take up
16 // as much space as possible, ensuring footers are aligned to the bottom.
17 flex: 1 1 auto;
18 padding: $card-spacer-x;
19 }
20
21 .card-title {
22 margin-bottom: $card-spacer-y;
23 }
24
25 .card-subtitle {
26 margin-top: -($card-spacer-y / 2);
27 margin-bottom: 0;
28 }
29
30 .card-text:last-child {
31 margin-bottom: 0;
32 }
33
34 .card-link {
35 @include hover {
36 text-decoration: none;
37 }
38
39 + .card-link {
40 margin-left: $card-spacer-x;
41 }
42 }
43
44 .card {
45 > .list-group:first-child {
46 .list-group-item:first-child {
47 @include border-top-radius($card-border-radius);
48 }
49 }
50
51 > .list-group:last-child {
52 .list-group-item:last-child {
53 @include border-bottom-radius($card-border-radius);
54 }
55 }
56 }
57
58
59 //
60 // Optional textual caps
61 //
62
63 .card-header {
64 padding: $card-spacer-y $card-spacer-x;
65 margin-bottom: 0; // Removes the default margin-bottom of <hN>
66 background-color: $card-cap-bg;
67 border-bottom: $card-border-width solid $card-border-color;
68
69 &:first-child {
70 @include border-radius($card-border-radius-inner $card-border-radius-inner 0 0);
71 }
72 }
73
74 .card-footer {
75 padding: $card-spacer-y $card-spacer-x;
76 background-color: $card-cap-bg;
77 border-top: $card-border-width solid $card-border-color;
78
79 &:last-child {
80 @include border-radius(0 0 $card-border-radius-inner $card-border-radius-inner);
81 }
82 }
83
84
85 //
86 // Header navs
87 //
88
89 .card-header-tabs {
90 margin-right: -($card-spacer-x / 2);
91 margin-bottom: -$card-spacer-y;
92 margin-left: -($card-spacer-x / 2);
93 border-bottom: 0;
94 }
95
96 .card-header-pills {
97 margin-right: -($card-spacer-x / 2);
98 margin-left: -($card-spacer-x / 2);
99 }
100
101
102 //
103 // Background variations
104 //
105
106 .card-primary {
107 @include card-variant($brand-primary, $brand-primary);
108 }
109 .card-success {
110 @include card-variant($brand-success, $brand-success);
111 }
112 .card-info {
113 @include card-variant($brand-info, $brand-info);
114 }
115 .card-warning {
116 @include card-variant($brand-warning, $brand-warning);
117 }
118 .card-danger {
119 @include card-variant($brand-danger, $brand-danger);
120 }
121
122 // Remove all backgrounds
123 .card-outline-primary {
124 @include card-outline-variant($btn-primary-bg);
125 }
126 .card-outline-secondary {
127 @include card-outline-variant($btn-secondary-border);
128 }
129 .card-outline-info {
130 @include card-outline-variant($btn-info-bg);
131 }
132 .card-outline-success {
133 @include card-outline-variant($btn-success-bg);
134 }
135 .card-outline-warning {
136 @include card-outline-variant($btn-warning-bg);
137 }
138 .card-outline-danger {
139 @include card-outline-variant($btn-danger-bg);
140 }
141
142 //
143 // Inverse text within a card for use with dark backgrounds
144 //
145
146 .card-inverse {
147 @include card-inverse;
148 }
149
150 //
151 // Blockquote
152 //
153
154 .card-blockquote {
155 padding: 0;
156 margin-bottom: 0;
157 border-left: 0;
158 }
159
160 // Card image
161 .card-img {
162 // margin: -1.325rem;
163 @include border-radius($card-border-radius-inner);
164 }
165 .card-img-overlay {
166 position: absolute;
167 top: 0;
168 right: 0;
169 bottom: 0;
170 left: 0;
171 padding: $card-img-overlay-padding;
172 }
173
174
175
176 // Card image caps
177 .card-img-top {
178 @include border-top-radius($card-border-radius-inner);
179 }
180 .card-img-bottom {
181 @include border-bottom-radius($card-border-radius-inner);
182 }
183
184
185 // Card deck
186
187 @include media-breakpoint-up(sm) {
188 .card-deck {
189 display: flex;
190 flex-flow: row wrap;
191
192 .card {
193 display: flex;
194 flex: 1 0 0;
195 flex-direction: column;
196
197 // Selectively apply horizontal margins to cards to avoid doing the
198 // negative margin dance like our grid. This differs from the grid
199 // due to the use of margins as gutters instead of padding.
200 &:not(:first-child) { margin-left: $card-deck-margin; }
201 &:not(:last-child) { margin-right: $card-deck-margin; }
202 }
203 }
204 }
205
206
207 //
208 // Card groups
209 //
210
211 @include media-breakpoint-up(sm) {
212 .card-group {
213 display: flex;
214 flex-flow: row wrap;
215
216 .card {
217 flex: 1 0 0;
218
219 + .card {
220 margin-left: 0;
221 border-left: 0;
222 }
223
224 // Handle rounded corners
225 @if $enable-rounded {
226 &:first-child {
227 @include border-right-radius(0);
228
229 .card-img-top {
230 border-top-right-radius: 0;
231 }
232 .card-img-bottom {
233 border-bottom-right-radius: 0;
234 }
235 }
236 &:last-child {
237 @include border-left-radius(0);
238
239 .card-img-top {
240 border-top-left-radius: 0;
241 }
242 .card-img-bottom {
243 border-bottom-left-radius: 0;
244 }
245 }
246
247 &:not(:first-child):not(:last-child) {
248 border-radius: 0;
249
250 .card-img-top,
251 .card-img-bottom {
252 border-radius: 0;
253 }
254 }
255 }
256 }
257 }
258 }
259
260
261 //
262 // Columns
263 //
264
265 @include media-breakpoint-up(sm) {
266 .card-columns {
267 column-count: $card-columns-count;
268 column-gap: $card-columns-gap;
269
270 .card {
271 display: inline-block; // Don't let them vertically span multiple columns
272 width: 100%; // Don't let their width change
273 margin-bottom: $card-columns-margin;
274 }
275 }
276 }