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