]> jfr.im git - irc/freenode/web-7.0.git/blame - static/css/style.css
Add styling to distinguish table rows. Close #167
[irc/freenode/web-7.0.git] / static / css / style.css
CommitLineData
2ed0f35d 1/* vars */
f38f696b 2:root {
d439b099
EK
3 --c-dark: #292f2f;
4 --c-bg-dark: #3a4346;
5 --c-bg-light: #4c5456;
6 --c-light: #ecf7fa;
7 --c-hl-dark: #008499;
8 --c-hl-light: #3baec4;
1fb25165 9 --c-shadow: #dae5e2;
d439b099 10
d1cee50f 11 /* backgrounds */
d439b099
EK
12 --navbar-bg: var(--c-dark);
13 --jumbotron-bg: var(--c-bg-dark);
14 --copyright-bg: var(--c-dark);
15
d1cee50f 16 /* link colors */
d439b099
EK
17 --link-color: var(--c-hl-dark);
18 --link-hover-color: var(--c-hl-light);
19 --footer-link-color: var(--c-light);
20 --footer-hover-color: #fff;
21
d1cee50f 22 /* text colors */
d439b099
EK
23 --text-color: var(--c-dark);
24 --footer-text-color: var(--c-light);
25 --copyright-text-color: var(--c-light);
26 --jumbotron-text-color: var(--c-light);
27 --art-date-color: color(var(--c-dark) tint(50%));
28
d1cee50f 29 /* box colors */
d439b099
EK
30 --border-color: var(--c-dark);
31 --box-color: var(--c-bg-light);
32 --box-hover-color: var(--c-dark);;
d1cee50f 33 --box-round: 10px;
d439b099 34
d1cee50f 35 /* other */
46687d13 36 --max-width: 600px;
d1cee50f
SB
37 --max-width-box: 800px;
38 --margin-box-fa: 5px;
f38f696b 39}
d1cee50f
SB
40@custom-media --max-sm all and (max-width: 600px);
41@custom-media --max-md all and (max-width: 800px);
42@custom-media --max-rem all and (max-width: 60rem);
2ed0f35d 43
2ed0f35d 44/* reset css for browser compat */
2ed0f35d 45* {
f38f696b
EK
46 margin: 0;
47 padding: 0;
48 box-sizing: border-box;
2ed0f35d
S
49}
50
51/* global */
2ed0f35d 52body {
f38f696b 53 font-family: 'Open Sans';
512215ac
EK
54 font-feature-settings: "lnum";
55 font-variant-numeric: lining-nums;
f38f696b
EK
56 color: var(--text-color);
57 font-size: 14px;
58 min-height: 100vh;
59 height: auto;
2ed0f35d
S
60}
61
62a {
ef54eedd 63 color: var(--link-color);
f38f696b 64 text-decoration: none;
2ed0f35d
S
65}
66
d439b099
EK
67a:hover {
68 color: var(--link-hover-color);
69}
a9a27d4b
SB
70img {
71 max-width: 100%;
72}
d439b099 73
2ed0f35d 74/* navbar */
2ed0f35d 75.navbar {
f38f696b
EK
76 width: 100%;
77 height: 50px;
78 background-color: var(--navbar-bg);
545c8ea4 79 box-shadow: 0 3px 4px rgba(0, 0, 0, 0.5);
f38f696b
EK
80 position: fixed;
81 left: 0;
82 right: 0;
83 top: 0;
84 display: flex;
85 flex-wrap: nowrap;
86 justify-content: space-between;
87 align-items: center;
545c8ea4 88 border-bottom: 1px solid var(--border-color);
f38f696b 89 z-index: 100;
15bc3c0b 90 padding-right: 5px;
2ed0f35d
S
91}
92
e43e6fbd 93@media (--max-sm) {
545c8ea4
EK
94 .navbar {
95 position: absolute;
96 }
97}
98
99.navbar a {
15bc3c0b 100 margin-top: 2px;
545c8ea4
EK
101 height: 40px;
102}
103
2ed0f35d 104.nlogo {
f38f696b 105 height: 40px;
2ed0f35d
S
106}
107
90257b61
AM
108.tlogo {
109 height: 40px;
110 margin-bottom: -9px;
111 margin-left: -10px;
112 margin-right: -10px;
113}
114
2ed0f35d 115/* main */
2ed0f35d 116.container {
f38f696b 117 width: 100%;
0a1e9a90
EK
118 min-height: 100vh;
119 padding-top: 50px;
ea5b3fae 120 padding-bottom: 17.5rem;
2ed0f35d
S
121}
122
123.main {
0a1e9a90 124 margin: 2em auto;
588c2afb 125 padding: 0 .75em;
4f236e86 126 max-width: var(--max-width);
10218a76 127 line-height: 1.8;
2ed0f35d
S
128}
129
0e9ffab7
EK
130.main h1,
131.main h2,
132.main h3,
19ea0778 133.main h4,
96915a91 134.main li,
19ea0778
EK
135.main pre,
136.main p {
588c2afb 137 margin-top: .7em;
0e9ffab7
EK
138}
139
96915a91
EK
140.artlist li {
141 margin-top: 0;
142}
143
19ea0778
EK
144.main h1 + p,
145.main h2 + p,
146.main h3 + p,
147.main h3 + p {
148 margin-top: 0;
149}
150
81cae952 151ul {
50d68b4a
EK
152 padding-left: 2em;
153 list-style-type: disc;
154}
155
f2fdabcd
SB
156ol {
157 padding-left: 2em;
158 list-style-type: decimal;
159}
160
19ea0778
EK
161hr {
162 margin-top: .8em;
163 margin-bottom: .8em;
164}
165
30b54282
EK
166table {
167 border: 1px solid var(--c-dark);
168 border-collapse: collapse;
169}
170
171th, td {
172 margin: .2em;
173}
174
175th {
176 background-color: var(--c-bg-dark);
177 color: var(--c-light);
178}
179
180td {
181 padding: .2em .5em;
182}
183
184td:not(:first-child), th:not(:first-child) {
185 border-left: 1px solid var(--c-dark);
186}
187
1fb25165
EK
188tr:nth-child(odd) {
189 background-color: var(--c-shadow);
190}
191
2ed0f35d 192/* jumbotron */
2ed0f35d 193.jumbotron {
f38f696b
EK
194 position: relative;
195 width: 100%;
0a1e9a90 196 margin-top: -50px;
f38f696b 197 background: var(--jumbotron-bg);
545c8ea4 198 box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
f38f696b 199 color: var(--jumbotron-text-color);
7e59dd2d
SB
200 padding: 4em 0 4em 0;
201}
202
203.jindex {
90257b61 204 z-index: 99;
7e59dd2d
SB
205}
206
207.jlogo {
208 display: block;
209 margin: 25px auto;
210}
211
212.jpia {
213 position: absolute;
214 height: 40px;
ea5b3fae 215 right: 0;
7e59dd2d
SB
216 top: 0;
217 margin: 25px;
218}
219
220@media (--max-sm) {
221 .jlogo {
222 margin: 2em auto -2em auto;
223 }
224 .jumbotron {
225 padding-bottom: 2em;
226 }
2ed0f35d
S
227}
228
229.child {
f38f696b 230 text-align: center;
ef54eedd 231 margin: .5em auto;
f38f696b
EK
232 font-size: 32px;
233 line-height: 48px;
ef54eedd 234 max-width: 75%;
2ed0f35d
S
235}
236
237.box-container {
f38f696b
EK
238 display: flex;
239 flex-wrap: wrap;
240 justify-content: space-around;
241 align-items: stretch;
d1cee50f 242 max-width: var(--max-width-box);
6c2065c4 243 margin: 0 auto;
2ed0f35d
S
244}
245
246.box {
6c2065c4 247 text-align: center;
f38f696b 248 text-decoration: none;
ef54eedd 249 color: var(--jumbotron-text-color);
f38f696b 250 margin-bottom: 5px;
f38f696b 251 flex-basis: 30%;
81cae952 252 min-width: 26%;
ef54eedd 253 background-color: var(--box-color);
f38f696b 254 border-radius: var(--box-round);
81cae952 255 padding: 1em;
f38f696b
EK
256}
257
258.box:hover,.box:active {
d439b099 259 color: var(--jumbotron-text-color);
f38f696b
EK
260 background-color: var(--box-hover-color);
261}
262
57bd8f7d 263.box span {
f38f696b 264 position: relative;
d4b00db0 265 top: initial;
257112d0 266 font-size: 20px;
ef54eedd 267 font-weight: 600;
d4b00db0 268 line-height: 16px;
d4b00db0 269 display: block;
81cae952 270 margin-top: .75em;
e9725e62 271}
272
2ed0f35d 273.fa-users {
d1cee50f 274 margin-top: var(--margin-box-fa);
2ed0f35d
S
275}
276
cd9b0475 277.fa-comments,.fa-question {
d1cee50f 278 margin-bottom: var(--margin-box-fa);
2ed0f35d
S
279}
280
281.title {
f38f696b 282 text-align: center;
2ed0f35d
S
283}
284
d1cee50f
SB
285@media (--max-md) {
286 .box {
287 text-align: center;
288 }
289
290 .child {
291 font-size: 20px;
292 line-height: 30px;
293 padding: 10px 0 5px;
294 }
295
296 .fa-4x {
297 padding: 0;
298 margin: 0;
299 width: 60px;
300 text-align: center;
301 font-size: 28px;
302 }
303
304 .box-container {
305 flex-direction: column;
306 margin: 0 .5em;
307 }
308
57bd8f7d 309 .box span {
d1cee50f
SB
310 font-size: 22px;
311 line-height: 22px;
312 padding-left: 8px;
57bd8f7d 313 font-weight: bold;
d1cee50f 314 position: relative;
57bd8f7d 315 display: inline-block;
d1cee50f 316 text-align: center;
da5e0658 317 margin-top: 0;
d1cee50f
SB
318 }
319
320 .box {
321 text-align: left;
322 border-radius: calc(var(--box-round) / 2);
323 margin: 5px 0;
324 }
325}
326
b9f1cb69 327/* articles */
2ed0f35d 328h1 {
f38f696b 329 margin: 0;
2ed0f35d
S
330}
331
8e4058cf
EK
332.artlist ul {
333 padding: 0;
5a791e57
EK
334 list-style-type: none;
335}
336
b9f1cb69 337.art-info {
512215ac 338 display: flex;
512215ac 339 flex-direction: row;
ea0081b5 340 flex-wrap: wrap;
512215ac 341 justify-content: space-between;
ea0081b5 342 align-items: baseline;
2ed0f35d
S
343}
344
b7b20c22 345.art-info h1 {
b7b20c22 346 margin-top: 0;
ea0081b5 347 display: inline;
0f23d7fd 348 margin-right: 2em;
b7b20c22
EK
349}
350
b9f1cb69
EK
351.art-body {
352 margin-bottom: 1em;
353}
354
8e4058cf
EK
355@media(--max-sm) {
356 .artlist .heading {
357 padding: 0 0.75em;
358 }
fd277af5
SB
359}
360
8e4058cf
EK
361.artlist ul {
362 max-width: var(--max-width);
363 margin: 2em auto;
364 margin-top: .5em;
d535feaa 365}
366
5a791e57 367.artlist li:not(:first-child) {
545c8ea4 368 border-top: 1px solid var(--border-color);
2ed0f35d
S
369}
370
5a791e57
EK
371.art-info .art {
372 font-weight: bold;
373 font-size: 120%;
374}
375
dbdcf68c 376.art-date {
ea0081b5 377 display: inline-block;
0f23d7fd 378 vertical-align: baseline;
ea0081b5
EK
379 line-height: 1;
380 white-space: nowrap;
d1cee50f 381 color: var(--art-date-color);
512215ac
EK
382 font-feature-settings: "tnum";
383 font-variant-numeric: tabular-nums;
2ed0f35d
S
384}
385
5a791e57
EK
386.artlist .art-date {
387 margin-bottom: .5em;
388}
389
b9f1cb69
EK
390.art-nav {
391 display: flex;
392 flex-direction: row;
393 justify-content: space-between;
5a791e57 394 flex-basis: 30%;
b9f1cb69 395 width: 100%;
2ed0f35d
S
396}
397
d1cee50f 398@media (--max-md) {
4ec635fa
EK
399 .main.artlist {
400 padding-left: 0;
401 padding-right: 0;
402 }
403
512215ac 404 .artlist .art-info {
4ec635fa
EK
405 padding: 0 .75em;
406 }
407}
408
81cae952 409/* faq */
91b0633e 410.kb-index {
81cae952
EK
411 list-style-type: none;
412 padding-left: 0;
aad4ef42
EK
413 display: flex;
414 flex-direction: row;
415 flex-wrap: wrap;
416 justify-content: stretch;
81cae952
EK
417}
418
91b0633e 419.kb-index li {
aad4ef42
EK
420 display: block;
421 flex: 1 1 15em;
422 height: 7em;
423 margin: 1em;
424}
425
91b0633e 426.kb-index li h2 {
aad4ef42
EK
427 margin-top: 0;
428}
429
91b0633e 430.kb-index a {
aad4ef42
EK
431 display: block;
432 color: var(--text-color);
433 width: 100%;
434 height: 100%;
435}
91b0633e 436.kb-index a h2 {
aad4ef42
EK
437 color: var(--link-color);
438}
91b0633e 439.kb-index a:hover h2 {
aad4ef42 440 color: var(--link-hover-color);
81cae952
EK
441}
442
2ed0f35d 443/* footer */
daf4b56e 444.footers {
28507109 445 /*min-height: 30vh;*/
ea5b3fae
EK
446 margin-top: -17rem;
447 min-height: 17rem;
daf4b56e
S
448}
449
2ed0f35d 450.footer {
f38f696b 451 background: var(--jumbotron-bg);
545c8ea4 452 color: var(--footer-text-color);
502cdd50 453 width: 100%;
502cdd50 454 box-shadow: 0 -3px 5px rgba(150,150,150,.36);
ea5b3fae 455 min-height: 15.4rem;
0f23d7fd 456 padding: 3em 0;
502cdd50 457}
458
57025cf5
EK
459.footer .fa-fw {
460 height: 14px;
461}
462
502cdd50 463.footer-container {
f38f696b 464 display: flex;
6c2065c4 465 flex-wrap: wrap;
0f23d7fd 466 justify-content: center;
f38f696b 467 align-items: flex-start;
502cdd50 468 margin: 0 auto;
2ed0f35d
S
469}
470
471.footerchild {
502cdd50 472 margin: 0 2em;
f38f696b 473 margin-top: .5em;
0f23d7fd 474 flex-grow: 1;
475 flex-shrink: 0;
28507109
EK
476}
477
478.footerchild:last-child {
7e59dd2d 479 margin-bottom: .5em;
6c2065c4
EK
480}
481
51b09107
EV
482.footer-push {
483 margin-left: auto;
484 width: max-content;
2ed0f35d
S
485}
486
502cdd50 487footer a {
545c8ea4 488 color: var(--footer-link-color);
2ed0f35d
S
489}
490
502cdd50 491footer a:hover {
d1cee50f 492 color: var(--footer-hover-color);
ef54eedd
EK
493}
494
f8883dc0 495.footer h2 {
28507109 496 margin-bottom: .1em;
f38f696b 497 display: inline-block;
f8883dc0
S
498}
499
81cae952
EK
500.footerchild ul, .footerchild ul ul {
501 padding-left: 0;
f38f696b
EK
502 margin-left: 10px;
503 margin-right: 10px;
504 list-style-type: none;
2ed0f35d
S
505}
506
507.footerchild ul ul {
f38f696b 508 padding-left: 30px;
2ed0f35d
S
509}
510
7e59dd2d 511@media (--max-sm) {
a406ba13 512 .footer-container {
f38f696b
EK
513 flex-direction: column;
514 }
db572d44 515
a406ba13
EV
516 .footer-push {
517 margin-left: 0;
7e59dd2d 518 width: 100%;
f38f696b 519 }
db572d44 520
f38f696b
EK
521 .footerchild ul li:last-child {
522 margin-bottom: .5em;
523 }
e9725e62 524
7e59dd2d
SB
525 .footer-push ul li:last-child {
526 margin-bottom: .1em;
527 }
528
f38f696b
EK
529 .hdn {
530 display: none;
531 }
7e59dd2d
SB
532 .footer {
533 padding: .5em 0;
534 }
fbbfcaa8
EK
535 .footer li a {
536 line-height: 1.8;
537 }
7e59dd2d
SB
538 .footer-push ul {
539 display: flex;
540 flex-wrap: wrap;
541 flex-direction: row;
542 justify-content: space-between;
543 align-items: flex-start;
544 text-align: center;
545 }
546 .footer-push ul li {
547 display: inline-block;
fbbfcaa8 548 font-size: 2.5rem;
7e59dd2d 549 }
fbbfcaa8
EK
550 .footerchild ul li img,
551 .footerchild ul li .fa-fw {
552 height: 2.5rem;
7e59dd2d 553 }
2ed0f35d
S
554}
555
502cdd50 556.footer h2, .footer h3 {
f38f696b
EK
557 margin-left: 10px;
558 margin-right: 10px;
2ed0f35d
S
559}
560
81cae952 561footer.copyright {
f38f696b 562 display: flex;
545c8ea4 563 flex-wrap: wrap;
f38f696b 564 justify-content: space-between;
545c8ea4
EK
565 background: var(--copyright-bg);
566 min-height: 1.5rem;
567 color: var(--copyright-text-color);
81cae952
EK
568 padding-left: .5em;
569 padding-right: .5em;
570 overflow: hidden;
db572d44
SB
571}
572
81cae952
EK
573footer.copyright div {
574 display: flex;
575 align-items: center;
ea5b3fae
EK
576 height: 1.6rem;
577 line-height: 1.6rem;
81cae952 578 vertical-align: top;
db572d44
SB
579}
580
81cae952
EK
581.copyright * {
582 margin: 0;
ea5b3fae
EK
583 height: 1.6rem;
584 line-height: 1.6rem;
df74dd1d
SB
585}
586
502cdd50 587.copyright .fa {
588 height: 100%;
5b76ff14
SB
589 vertical-align: top;
590 font-size: 1.4em;
502cdd50 591}
592
81cae952
EK
593.copyright .footer-link {
594 height: 28px;
f38f696b 595 margin-right: .5em;
81cae952
EK
596}
597
598.copyright img {
599 height: 1.5rem;
600 width: auto;
ebee5e25 601}