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