]> jfr.im git - irc/freenode/web-7.0.git/blame - static/css/style.css
Remove Shells badge from header and footer
[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
0e9ce6a5
TV
29 /* background colors */
30 --background-color: var(--c-light);
31
d1cee50f 32 /* box colors */
0e9ce6a5
TV
33 --border-color: var(--c-dark);
34 --box-color: var(--c-bg-light);
35 --box-hover-color: var(--c-dark);
36 --box-round: 10px;
37 --navbar-border-color: var(--border-color);
38 --footer-shadow-color: rgba(150,150,150,.36);
d439b099 39
d1cee50f 40 /* other */
46687d13 41 --max-width: 600px;
d1cee50f
SB
42 --max-width-box: 800px;
43 --margin-box-fa: 5px;
f38f696b 44}
0e9ce6a5
TV
45
46@media (prefers-color-scheme: dark) {
47 :root {
48 --text-color: var(--c-light);
49 --background-color: var(--c-dark);
50 --link-color: #00c8e8;
51 --link-hover-color: #21a9c1;
52 --c-shadow: var(--c-bg-light);
53 --border-color: #000000;
54 --navbar-border-color: var(--c-dark);
55 --footer-shadow-color: rgba(70, 70, 70, 0.5);
56 }
57}
58
d1cee50f
SB
59@custom-media --max-sm all and (max-width: 600px);
60@custom-media --max-md all and (max-width: 800px);
61@custom-media --max-rem all and (max-width: 60rem);
75b48f70 62@custom-media --sm-md (max-width: 850px) and (min-width: 600px);
2ed0f35d 63
2ed0f35d 64/* reset css for browser compat */
2ed0f35d 65* {
f38f696b
EK
66 margin: 0;
67 padding: 0;
68 box-sizing: border-box;
2ed0f35d
S
69}
70
71/* global */
2ed0f35d 72body {
3bb8ef3b 73 font-family: 'Open Sans', sans-serif;
512215ac
EK
74 font-feature-settings: "lnum";
75 font-variant-numeric: lining-nums;
f38f696b 76 color: var(--text-color);
0e9ce6a5 77 background-color: var(--background-color);
f38f696b
EK
78 font-size: 14px;
79 min-height: 100vh;
80 height: auto;
2ed0f35d
S
81}
82
834273d1
EK
83.invisible {
84 display: none;
85}
86
2ed0f35d 87a {
ef54eedd 88 color: var(--link-color);
f38f696b 89 text-decoration: none;
2ed0f35d
S
90}
91
d439b099
EK
92a:hover {
93 color: var(--link-hover-color);
94}
0e9ce6a5 95
a9a27d4b
SB
96img {
97 max-width: 100%;
98}
d439b099 99
2ed0f35d 100/* navbar */
2ed0f35d 101.navbar {
ffc164dc 102 color: var(--c-light);
f38f696b
EK
103 width: 100%;
104 height: 50px;
105 background-color: var(--navbar-bg);
545c8ea4 106 box-shadow: 0 3px 4px rgba(0, 0, 0, 0.5);
f38f696b
EK
107 position: fixed;
108 left: 0;
109 right: 0;
110 top: 0;
111 display: flex;
112 flex-wrap: nowrap;
113 justify-content: space-between;
114 align-items: center;
0e9ce6a5 115 border-bottom: 1px solid var(--navbar-border-color);
f38f696b 116 z-index: 100;
15bc3c0b 117 padding-right: 5px;
2ed0f35d
S
118}
119
e43e6fbd 120@media (--max-sm) {
545c8ea4
EK
121 .navbar {
122 position: absolute;
123 }
124}
125
126.navbar a {
15bc3c0b 127 margin-top: 2px;
545c8ea4
EK
128 height: 40px;
129}
130
457df43b
SB
131/* nav = navbar
132 * pia = Private Internet access
133 */
ffc164dc 134#nav-logo { order: 10; }
ffc164dc
EK
135
136#nav-jump { order: 1000; }
137
138#nav-search {
139 order: 20;
140 margin-left: auto;
141 line-height: 35px;
142}
143
144#nav-search input {
145 background-color: var(--c-bg-dark);
146 border-style: none;
147 border-radius: 2px;
148 color: var(--c-light);
149 padding: .5em;
150 padding-right: 2em;
151 margin-right: -2em;
152}
153
154#nav-label {
155 display: inline-block;
156 width: 2em;
157 margin-right: .7em;
158}
159
160@media (--max-sm) {
161 #nav-search {
162 order: 100;
163 margin: 0 .5em;
164 }
165
ffc164dc
EK
166 #nav-label {
167 width: auto;
168 margin: 0 .5em;
169 }
170
171 #nav-searchbox:not(:focus) {
172 display: inline-block;
173 position: absolute;
174 height: 0;
175 width: 0;
176 padding: 0;
177 margin: 0;
178 background: transparent;
179 overflow: hidden;
180 }
181
182 #nav-searchbox:focus {
183 position: absolute;
184 visibility: visible;
185 outline: none;
186 top: 0;
187 left: 0;
188 right: 0;
189 height: 50px;
190 line-height: 50px;
191 font-size: 1.5em;
192 padding-right: 2.5em;
193 width: 100%;
194 }
195
196 #nav-searchbox:focus + #nav-label {
197 display: block;
198 position: absolute;
199 pointer-events: none;
200 top: 0;
201 right: 0;
202 width: 1.5em;
203 font-size: 2em;
204 line-height: 50px;
205 padding-top: -.1em;
206 margin: 0;
207 }
208}
209
457df43b
SB
210/* n = nav */
211.nlogo { height: 40px; }
2ed0f35d 212
457df43b 213/* t = text (used in jumbotron for small logo as text) */
90257b61 214.tlogo {
e46a0cc3
EK
215 height: 2.4ex;
216 margin-bottom: -.47ex;
90257b61
AM
217 margin-left: -10px;
218 margin-right: -10px;
219}
220
f4c94bc3
SB
221@media (--max-md) {
222 margin-left: -5px;
223 margin-right: -5px;
224}
225
2ed0f35d 226/* main */
2ed0f35d 227.container {
f38f696b 228 width: 100%;
0a1e9a90
EK
229 min-height: 100vh;
230 padding-top: 50px;
ea5b3fae 231 padding-bottom: 17.5rem;
2ed0f35d
S
232}
233
234.main {
0a1e9a90 235 margin: 2em auto;
588c2afb 236 padding: 0 .75em;
4f236e86 237 max-width: var(--max-width);
10218a76 238 line-height: 1.8;
2ed0f35d
S
239}
240
0e9ffab7
EK
241.main h1,
242.main h2,
243.main h3,
19ea0778 244.main h4,
6908d6d7
EK
245.main h5,
246.main h6,
96915a91 247.main li,
19ea0778 248.main pre,
cc0249fc 249.main p,
9bb233b4 250.main blockquote {
588c2afb 251 margin-top: .7em;
0e9ffab7
EK
252}
253
96915a91
EK
254.artlist li {
255 margin-top: 0;
256}
257
19ea0778
EK
258.main h1 + p,
259.main h2 + p,
260.main h3 + p,
6908d6d7
EK
261.main h4 + p,
262.main h5 + p,
263.main h6 + p,
9bb233b4 264.main blockquote > p:first-child {
19ea0778
EK
265 margin-top: 0;
266}
267
ae820f7b
FB
268
269.main pre {
55bc73dc 270 padding: .5em .75em;
0e9ce6a5 271 border: 1px solid var(--border-color);
ae820f7b
FB
272 overflow-x: auto;
273}
274
9a913923
FB
275.main :not(pre)>code {
276 padding: 0 0.2em;
277}
278
279.main pre, .main :not(pre)>code {
280 background: var(--c-shadow);
ae820f7b 281 border-radius: .25em;
55bc73dc
SB
282}
283
98bbf581
S
284.toclink,
285.toclink:hover {
286 color: var(--text-color);
287}
288
289.toclink::after {
290 content: ' \f13d';
291 font-family: FontAwesome;
292 color: var(--link-color);
293 font-weight: normal;
e4b1b92b
S
294 opacity: 0;
295 transition: opacity .08s;
296}
297
98bbf581 298.toclink:hover::after {
e4b1b92b 299 opacity: 1;
98bbf581 300 color: var(--link-hover-color);
e4b1b92b
S
301}
302
303@media (--max-sm) {
98bbf581 304 .toclink::after {
e4b1b92b
S
305 opacity: 1;
306 }
307}
308
81cae952 309ul {
50d68b4a
EK
310 padding-left: 2em;
311 list-style-type: disc;
312}
313
f2fdabcd
SB
314ol {
315 padding-left: 2em;
316 list-style-type: decimal;
317}
318
19ea0778
EK
319hr {
320 margin-top: .8em;
321 margin-bottom: .8em;
322}
323
30b54282 324table {
0e9ce6a5 325 border: 1px solid var(--border-color);
30b54282
EK
326 border-collapse: collapse;
327}
328
329th, td {
330 margin: .2em;
331}
332
333th {
334 background-color: var(--c-bg-dark);
335 color: var(--c-light);
336}
337
338td {
339 padding: .2em .5em;
340}
341
342td:not(:first-child), th:not(:first-child) {
0e9ce6a5 343 border-left: 1px solid var(--border-color);
30b54282
EK
344}
345
0e9ce6a5 346tr:nth-child(even) {
1fb25165
EK
347 background-color: var(--c-shadow);
348}
349
2ed0f35d 350/* jumbotron */
2ed0f35d 351.jumbotron {
f38f696b
EK
352 position: relative;
353 width: 100%;
0a1e9a90 354 margin-top: -50px;
f38f696b 355 background: var(--jumbotron-bg);
545c8ea4 356 box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
f38f696b 357 color: var(--jumbotron-text-color);
7e59dd2d
SB
358 padding: 4em 0 4em 0;
359}
360
457df43b 361/* j = jumbotron */
7e59dd2d 362.jindex {
90257b61 363 z-index: 99;
7e59dd2d
SB
364}
365
366.jlogo {
367 display: block;
368 margin: 25px auto;
369}
370
371.jpia {
372 position: absolute;
373 height: 40px;
ea5b3fae 374 right: 0;
7e59dd2d
SB
375 top: 0;
376 margin: 25px;
377}
378
379@media (--max-sm) {
380 .jlogo {
381 margin: 2em auto -2em auto;
382 }
383 .jumbotron {
384 padding-bottom: 2em;
385 }
2ed0f35d
S
386}
387
388.child {
f38f696b 389 text-align: center;
ef54eedd 390 margin: .5em auto;
f38f696b
EK
391 font-size: 32px;
392 line-height: 48px;
ef54eedd 393 max-width: 75%;
2ed0f35d
S
394}
395
396.box-container {
f38f696b
EK
397 display: flex;
398 flex-wrap: wrap;
399 justify-content: space-around;
400 align-items: stretch;
d1cee50f 401 max-width: var(--max-width-box);
6c2065c4 402 margin: 0 auto;
2ed0f35d
S
403}
404
405.box {
6c2065c4 406 text-align: center;
f38f696b 407 text-decoration: none;
ef54eedd 408 color: var(--jumbotron-text-color);
f38f696b 409 margin-bottom: 5px;
f38f696b 410 flex-basis: 30%;
81cae952 411 min-width: 26%;
ef54eedd 412 background-color: var(--box-color);
f38f696b 413 border-radius: var(--box-round);
81cae952 414 padding: 1em;
f38f696b
EK
415}
416
417.box:hover,.box:active {
d439b099 418 color: var(--jumbotron-text-color);
f38f696b
EK
419 background-color: var(--box-hover-color);
420}
421
57bd8f7d 422.box span {
f38f696b 423 position: relative;
d4b00db0 424 top: initial;
257112d0 425 font-size: 20px;
ef54eedd 426 font-weight: 600;
d4b00db0 427 line-height: 16px;
d4b00db0 428 display: block;
81cae952 429 margin-top: .75em;
e9725e62 430}
431
457df43b 432/* fa = font awesome */
2ed0f35d 433.fa-users {
d1cee50f 434 margin-top: var(--margin-box-fa);
2ed0f35d
S
435}
436
cd9b0475 437.fa-comments,.fa-question {
d1cee50f 438 margin-bottom: var(--margin-box-fa);
2ed0f35d
S
439}
440
441.title {
f38f696b 442 text-align: center;
2ed0f35d
S
443}
444
d1cee50f
SB
445@media (--max-md) {
446 .box {
447 text-align: center;
448 }
449
450 .child {
451 font-size: 20px;
452 line-height: 30px;
453 padding: 10px 0 5px;
454 }
455
456 .fa-4x {
457 padding: 0;
458 margin: 0;
459 width: 60px;
460 text-align: center;
461 font-size: 28px;
462 }
463
464 .box-container {
465 flex-direction: column;
466 margin: 0 .5em;
467 }
468
57bd8f7d 469 .box span {
d1cee50f
SB
470 font-size: 22px;
471 line-height: 22px;
472 padding-left: 8px;
57bd8f7d 473 font-weight: bold;
d1cee50f 474 position: relative;
57bd8f7d 475 display: inline-block;
d1cee50f 476 text-align: center;
da5e0658 477 margin-top: 0;
d1cee50f
SB
478 }
479
480 .box {
481 text-align: left;
482 border-radius: calc(var(--box-round) / 2);
483 margin: 5px 0;
484 }
485}
486
b9f1cb69 487/* articles */
2ed0f35d 488h1 {
f38f696b 489 margin: 0;
2ed0f35d 490}
457df43b 491/* art = article */
8e4058cf
EK
492.artlist ul {
493 padding: 0;
5a791e57
EK
494 list-style-type: none;
495}
496
b9f1cb69 497.art-info {
512215ac 498 display: flex;
512215ac 499 flex-direction: row;
ea0081b5 500 flex-wrap: wrap;
512215ac 501 justify-content: space-between;
ea0081b5 502 align-items: baseline;
2ed0f35d
S
503}
504
b7b20c22 505.art-info h1 {
b7b20c22 506 margin-top: 0;
ea0081b5 507 display: inline;
0f23d7fd 508 margin-right: 2em;
b7b20c22
EK
509}
510
df8e5765
EK
511.art-warning {
512 margin-bottom: 2em;
513 padding: .5em;
514 border: 1px solid var(--border-color);
515 color: red;
516}
517
b9f1cb69
EK
518.art-body {
519 margin-bottom: 1em;
520}
521
8e4058cf
EK
522@media(--max-sm) {
523 .artlist .heading {
524 padding: 0 0.75em;
525 }
fd277af5
SB
526}
527
8e4058cf
EK
528.artlist ul {
529 max-width: var(--max-width);
530 margin: 2em auto;
531 margin-top: .5em;
d535feaa 532}
533
5a791e57 534.artlist li:not(:first-child) {
545c8ea4 535 border-top: 1px solid var(--border-color);
2ed0f35d
S
536}
537
a7a6cb8f 538.artlist .art {
5a791e57
EK
539 font-weight: bold;
540 font-size: 120%;
541}
542
dbdcf68c 543.art-date {
ea0081b5 544 display: inline-block;
0f23d7fd 545 vertical-align: baseline;
ea0081b5
EK
546 line-height: 1;
547 white-space: nowrap;
d1cee50f 548 color: var(--art-date-color);
512215ac
EK
549 font-feature-settings: "tnum";
550 font-variant-numeric: tabular-nums;
2ed0f35d
S
551}
552
5a791e57
EK
553.artlist .art-date {
554 margin-bottom: .5em;
555}
556
b9f1cb69
EK
557.art-nav {
558 display: flex;
559 flex-direction: row;
560 justify-content: space-between;
561 width: 100%;
2ed0f35d
S
562}
563
76f0d8e1
EK
564.art-nav * {
565 flex-basis: 30%;
566}
567
568.art-nav *:nth-child(1) { text-align: left; }
569.art-nav *:nth-child(2) { text-align: center; }
570.art-nav *:nth-child(3) { text-align: right; }
571
cc0249fc
SB
572blockquote {
573 padding-left: 1em;
cc0249fc
SB
574 display: inline-block;
575 border-left: .5em solid var(--c-shadow);
576 font-style: italic;
577}
578
d1cee50f 579@media (--max-md) {
4ec635fa
EK
580 .main.artlist {
581 padding-left: 0;
582 padding-right: 0;
583 }
584
512215ac 585 .artlist .art-info {
4ec635fa
EK
586 padding: 0 .75em;
587 }
588}
589
81cae952 590/* faq */
457df43b 591/* kb = knowledge base */
91b0633e 592.kb-index {
81cae952
EK
593 list-style-type: none;
594 padding-left: 0;
aad4ef42
EK
595 display: flex;
596 flex-direction: row;
597 flex-wrap: wrap;
598 justify-content: stretch;
81cae952
EK
599}
600
91b0633e 601.kb-index li {
aad4ef42
EK
602 display: block;
603 flex: 1 1 15em;
528842a3 604 height: 3em;
aad4ef42
EK
605 margin: 1em;
606}
607
91b0633e 608.kb-index li h2 {
aad4ef42
EK
609 margin-top: 0;
610}
611
91b0633e 612.kb-index a {
aad4ef42
EK
613 display: block;
614 color: var(--text-color);
615 width: 100%;
616 height: 100%;
617}
91b0633e 618.kb-index a h2 {
aad4ef42
EK
619 color: var(--link-color);
620}
91b0633e 621.kb-index a:hover h2 {
aad4ef42 622 color: var(--link-hover-color);
81cae952
EK
623}
624
2ed0f35d 625/* footer */
daf4b56e 626.footers {
28507109 627 /*min-height: 30vh;*/
ea5b3fae
EK
628 margin-top: -17rem;
629 min-height: 17rem;
daf4b56e
S
630}
631
2ed0f35d 632.footer {
f38f696b 633 background: var(--jumbotron-bg);
545c8ea4 634 color: var(--footer-text-color);
502cdd50 635 width: 100%;
0e9ce6a5 636 box-shadow: 0 -3px 5px var(--footer-shadow-color);
ea5b3fae 637 min-height: 15.4rem;
0f23d7fd 638 padding: 3em 0;
502cdd50 639}
640
57025cf5
EK
641.footer .fa-fw {
642 height: 14px;
643}
644
502cdd50 645.footer-container {
f38f696b 646 display: flex;
6c2065c4 647 flex-wrap: wrap;
0f23d7fd 648 justify-content: center;
f38f696b 649 align-items: flex-start;
502cdd50 650 margin: 0 auto;
2ed0f35d
S
651}
652
653.footerchild {
502cdd50 654 margin: 0 2em;
f38f696b 655 margin-top: .5em;
1e8d02c5 656 flex-grow: 1;
0f23d7fd 657 flex-shrink: 0;
28507109
EK
658}
659
660.footerchild:last-child {
7e59dd2d 661 margin-bottom: .5em;
6c2065c4
EK
662}
663
51b09107
EV
664.footer-push {
665 margin-left: auto;
666 width: max-content;
2ed0f35d
S
667}
668
502cdd50 669footer a {
545c8ea4 670 color: var(--footer-link-color);
2ed0f35d
S
671}
672
502cdd50 673footer a:hover {
d1cee50f 674 color: var(--footer-hover-color);
ef54eedd
EK
675}
676
f8883dc0 677.footer h2 {
28507109 678 margin-bottom: .1em;
f38f696b 679 display: inline-block;
f8883dc0
S
680}
681
81cae952
EK
682.footerchild ul, .footerchild ul ul {
683 padding-left: 0;
f38f696b
EK
684 margin-left: 10px;
685 margin-right: 10px;
686 list-style-type: none;
2ed0f35d
S
687}
688
689.footerchild ul ul {
f38f696b 690 padding-left: 30px;
2ed0f35d
S
691}
692
7e59dd2d 693@media (--max-sm) {
a406ba13 694 .footer-container {
f38f696b
EK
695 flex-direction: column;
696 }
db572d44 697
a406ba13
EV
698 .footer-push {
699 margin-left: 0;
7e59dd2d 700 width: 100%;
f38f696b 701 }
db572d44 702
f38f696b
EK
703 .footerchild ul li:last-child {
704 margin-bottom: .5em;
705 }
e9725e62 706
7e59dd2d
SB
707 .footer-push ul li:last-child {
708 margin-bottom: .1em;
709 }
710
457df43b 711 /* hdn = hidden */
f38f696b
EK
712 .hdn {
713 display: none;
714 }
7e59dd2d
SB
715 .footer {
716 padding: .5em 0;
717 }
fbbfcaa8
EK
718 .footer li a {
719 line-height: 1.8;
720 }
7e59dd2d
SB
721 .footer-push ul {
722 display: flex;
723 flex-wrap: wrap;
724 flex-direction: row;
725 justify-content: space-between;
726 align-items: flex-start;
727 text-align: center;
728 }
729 .footer-push ul li {
730 display: inline-block;
fbbfcaa8 731 font-size: 2.5rem;
7e59dd2d 732 }
fbbfcaa8
EK
733 .footerchild ul li img,
734 .footerchild ul li .fa-fw {
45d71cbd 735 height: 3.5rem;
7e59dd2d 736 }
2ed0f35d
S
737}
738
75b48f70
SB
739@media (--sm-md) {
740 .footer-container {
741 flex-flow: row wrap;
742 position: relative;
743 width: 95vw;
744 }
745
746 .footerchild {
747 flex-basis: 40%;
748 margin-bottom: 1em;
749 }
750
751 .footer-push {
752 margin-left: 0;
753 }
754}
755
502cdd50 756.footer h2, .footer h3 {
f38f696b
EK
757 margin-left: 10px;
758 margin-right: 10px;
2ed0f35d
S
759}
760
81cae952 761footer.copyright {
f38f696b 762 display: flex;
545c8ea4 763 flex-wrap: wrap;
1e8d02c5 764 justify-content: space-between;
545c8ea4
EK
765 background: var(--copyright-bg);
766 min-height: 1.5rem;
767 color: var(--copyright-text-color);
1e8d02c5
S
768 padding-left: .5em;
769 padding-right: .5em;
81cae952 770 overflow: hidden;
db572d44
SB
771}
772
81cae952 773footer.copyright div {
1e8d02c5 774 display: flex;
81cae952 775 align-items: center;
ea5b3fae
EK
776 height: 1.6rem;
777 line-height: 1.6rem;
81cae952 778 vertical-align: top;
db572d44
SB
779}
780
81cae952
EK
781.copyright * {
782 margin: 0;
ea5b3fae
EK
783 height: 1.6rem;
784 line-height: 1.6rem;
df74dd1d
SB
785}
786
502cdd50 787.copyright .fa {
788 height: 100%;
5b76ff14
SB
789 vertical-align: top;
790 font-size: 1.4em;
502cdd50 791}
792
81cae952
EK
793.copyright .footer-link {
794 height: 28px;
f38f696b 795 margin-right: .5em;
81cae952
EK
796}
797
798.copyright img {
81cae952 799 width: auto;
ebee5e25 800}