]> jfr.im git - irc/freenode/web-7.0.git/blame_incremental - static/css/style.css
2021-06-05: update people
[irc/freenode/web-7.0.git] / static / css / style.css
... / ...
CommitLineData
1/* vars */
2:root {
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;
9 --c-shadow: #dae5e2;
10
11 /* backgrounds */
12 --navbar-bg: var(--c-dark);
13 --jumbotron-bg: var(--c-bg-dark);
14 --copyright-bg: var(--c-dark);
15
16 /* link colors */
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
22 /* text colors */
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
29 /* background colors */
30 --background-color: var(--c-light);
31
32 /* box colors */
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);
39
40 /* other */
41 --max-width: 600px;
42 --max-width-box: 800px;
43 --margin-box-fa: 5px;
44}
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
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);
62@custom-media --sm-md (max-width: 850px) and (min-width: 600px);
63
64/* reset css for browser compat */
65* {
66 margin: 0;
67 padding: 0;
68 box-sizing: border-box;
69}
70
71/* global */
72body {
73 font-family: 'Open Sans', sans-serif;
74 font-feature-settings: "lnum";
75 font-variant-numeric: lining-nums;
76 color: var(--text-color);
77 background-color: var(--background-color);
78 font-size: 14px;
79 min-height: 100vh;
80 height: auto;
81}
82
83.invisible {
84 display: none;
85}
86
87a {
88 color: var(--link-color);
89 text-decoration: none;
90}
91
92a:hover {
93 color: var(--link-hover-color);
94}
95
96img {
97 max-width: 100%;
98}
99
100/* navbar */
101.navbar {
102 color: var(--c-light);
103 width: 100%;
104 height: 50px;
105 background-color: var(--navbar-bg);
106 box-shadow: 0 3px 4px rgba(0, 0, 0, 0.5);
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;
115 border-bottom: 1px solid var(--navbar-border-color);
116 z-index: 100;
117 padding-right: 5px;
118}
119
120@media (--max-sm) {
121 .navbar {
122 position: absolute;
123 }
124}
125
126.navbar a {
127 margin-top: 2px;
128 height: 40px;
129}
130
131/* nav = navbar
132 * pia = Private Internet access
133 */
134#nav-logo { order: 10; }
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
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
210/* n = nav */
211.nlogo { height: 40px; }
212
213/* t = text (used in jumbotron for small logo as text) */
214.tlogo {
215 height: 2.4ex;
216 margin-bottom: -.47ex;
217 margin-left: -10px;
218 margin-right: -10px;
219}
220
221@media (--max-md) {
222 margin-left: -5px;
223 margin-right: -5px;
224}
225
226/* main */
227.container {
228 width: 100%;
229 min-height: 100vh;
230 padding-top: 50px;
231 padding-bottom: 17.5rem;
232}
233
234.main {
235 margin: 2em auto;
236 padding: 0 .75em;
237 max-width: var(--max-width);
238 line-height: 1.8;
239}
240
241.main h1,
242.main h2,
243.main h3,
244.main h4,
245.main h5,
246.main h6,
247.main li,
248.main pre,
249.main p,
250.main blockquote {
251 margin-top: .7em;
252}
253
254.artlist li {
255 margin-top: 0;
256}
257
258.main h1 + p,
259.main h2 + p,
260.main h3 + p,
261.main h4 + p,
262.main h5 + p,
263.main h6 + p,
264.main blockquote > p:first-child {
265 margin-top: 0;
266}
267
268
269.main pre {
270 padding: .5em .75em;
271 border: 1px solid var(--border-color);
272 overflow-x: auto;
273}
274
275.main :not(pre)>code {
276 padding: 0 0.2em;
277}
278
279.main pre, .main :not(pre)>code {
280 background: var(--c-shadow);
281 border-radius: .25em;
282}
283
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;
294 opacity: 0;
295 transition: opacity .08s;
296}
297
298.toclink:hover::after {
299 opacity: 1;
300 color: var(--link-hover-color);
301}
302
303@media (--max-sm) {
304 .toclink::after {
305 opacity: 1;
306 }
307}
308
309ul {
310 padding-left: 2em;
311 list-style-type: disc;
312}
313
314ol {
315 padding-left: 2em;
316 list-style-type: decimal;
317}
318
319hr {
320 margin-top: .8em;
321 margin-bottom: .8em;
322}
323
324table {
325 border: 1px solid var(--border-color);
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) {
343 border-left: 1px solid var(--border-color);
344}
345
346tr:nth-child(even) {
347 background-color: var(--c-shadow);
348}
349
350/* jumbotron */
351.jumbotron {
352 position: relative;
353 width: 100%;
354 margin-top: -50px;
355 background: var(--jumbotron-bg);
356 box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
357 color: var(--jumbotron-text-color);
358 padding: 4em 0 4em 0;
359}
360
361/* j = jumbotron */
362.jindex {
363 z-index: 99;
364}
365
366.jlogo {
367 display: block;
368 margin: 25px auto;
369}
370
371.jpia {
372 position: absolute;
373 height: 40px;
374 right: 0;
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 }
386}
387
388.child {
389 text-align: center;
390 margin: .5em auto;
391 font-size: 32px;
392 line-height: 48px;
393 max-width: 75%;
394}
395
396.box-container {
397 display: flex;
398 flex-wrap: wrap;
399 justify-content: space-around;
400 align-items: stretch;
401 max-width: var(--max-width-box);
402 margin: 0 auto;
403}
404
405.box {
406 text-align: center;
407 text-decoration: none;
408 color: var(--jumbotron-text-color);
409 margin-bottom: 5px;
410 flex-basis: 30%;
411 min-width: 26%;
412 background-color: var(--box-color);
413 border-radius: var(--box-round);
414 padding: 1em;
415}
416
417.box:hover,.box:active {
418 color: var(--jumbotron-text-color);
419 background-color: var(--box-hover-color);
420}
421
422.box span {
423 position: relative;
424 top: initial;
425 font-size: 20px;
426 font-weight: 600;
427 line-height: 16px;
428 display: block;
429 margin-top: .75em;
430}
431
432/* fa = font awesome */
433.fa-users {
434 margin-top: var(--margin-box-fa);
435}
436
437.fa-comments,.fa-question {
438 margin-bottom: var(--margin-box-fa);
439}
440
441.title {
442 text-align: center;
443}
444
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
469 .box span {
470 font-size: 22px;
471 line-height: 22px;
472 padding-left: 8px;
473 font-weight: bold;
474 position: relative;
475 display: inline-block;
476 text-align: center;
477 margin-top: 0;
478 }
479
480 .box {
481 text-align: left;
482 border-radius: calc(var(--box-round) / 2);
483 margin: 5px 0;
484 }
485}
486
487/* articles */
488h1 {
489 margin: 0;
490}
491/* art = article */
492.artlist ul {
493 padding: 0;
494 list-style-type: none;
495}
496
497.art-info {
498 display: flex;
499 flex-direction: row;
500 flex-wrap: wrap;
501 justify-content: space-between;
502 align-items: baseline;
503}
504
505.art-info h1 {
506 margin-top: 0;
507 display: inline;
508 margin-right: 2em;
509}
510
511.art-warning {
512 margin-bottom: 2em;
513 padding: .5em;
514 border: 1px solid var(--border-color);
515 color: red;
516}
517
518.art-body {
519 margin-bottom: 1em;
520}
521
522@media(--max-sm) {
523 .artlist .heading {
524 padding: 0 0.75em;
525 }
526}
527
528.artlist ul {
529 max-width: var(--max-width);
530 margin: 2em auto;
531 margin-top: .5em;
532}
533
534.artlist li:not(:first-child) {
535 border-top: 1px solid var(--border-color);
536}
537
538.artlist .art {
539 font-weight: bold;
540 font-size: 120%;
541}
542
543.art-date {
544 display: inline-block;
545 vertical-align: baseline;
546 line-height: 1;
547 white-space: nowrap;
548 color: var(--art-date-color);
549 font-feature-settings: "tnum";
550 font-variant-numeric: tabular-nums;
551}
552
553.artlist .art-date {
554 margin-bottom: .5em;
555}
556
557.art-nav {
558 display: flex;
559 flex-direction: row;
560 justify-content: space-between;
561 width: 100%;
562}
563
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
572blockquote {
573 padding-left: 1em;
574 display: inline-block;
575 border-left: .5em solid var(--c-shadow);
576 font-style: italic;
577}
578
579@media (--max-md) {
580 .main.artlist {
581 padding-left: 0;
582 padding-right: 0;
583 }
584
585 .artlist .art-info {
586 padding: 0 .75em;
587 }
588}
589
590/* faq */
591/* kb = knowledge base */
592.kb-index {
593 list-style-type: none;
594 padding-left: 0;
595 display: flex;
596 flex-direction: row;
597 flex-wrap: wrap;
598 justify-content: stretch;
599}
600
601.kb-index li {
602 display: block;
603 flex: 1 1 15em;
604 height: 3em;
605 margin: 1em;
606}
607
608.kb-index li h2 {
609 margin-top: 0;
610}
611
612.kb-index a {
613 display: block;
614 color: var(--text-color);
615 width: 100%;
616 height: 100%;
617}
618.kb-index a h2 {
619 color: var(--link-color);
620}
621.kb-index a:hover h2 {
622 color: var(--link-hover-color);
623}
624
625/* footer */
626.footers {
627 /*min-height: 30vh;*/
628 margin-top: -17rem;
629 min-height: 17rem;
630}
631
632.footer {
633 background: var(--jumbotron-bg);
634 color: var(--footer-text-color);
635 width: 100%;
636 box-shadow: 0 -3px 5px var(--footer-shadow-color);
637 min-height: 15.4rem;
638 padding: 3em 0;
639}
640
641.footer .fa-fw {
642 height: 14px;
643}
644
645.footer-container {
646 display: flex;
647 flex-wrap: wrap;
648 justify-content: center;
649 align-items: flex-start;
650 margin: 0 auto;
651}
652
653.footerchild {
654 margin: 0 2em;
655 margin-top: .5em;
656 flex-grow: 1;
657 flex-shrink: 0;
658}
659
660.footerchild:last-child {
661 margin-bottom: .5em;
662}
663
664.footer-push {
665 margin-left: auto;
666 width: max-content;
667}
668
669footer a {
670 color: var(--footer-link-color);
671}
672
673footer a:hover {
674 color: var(--footer-hover-color);
675}
676
677.footer h2 {
678 margin-bottom: .1em;
679 display: inline-block;
680}
681
682.footerchild ul, .footerchild ul ul {
683 padding-left: 0;
684 margin-left: 10px;
685 margin-right: 10px;
686 list-style-type: none;
687}
688
689.footerchild ul ul {
690 padding-left: 30px;
691}
692
693@media (--max-sm) {
694 .footer-container {
695 flex-direction: column;
696 }
697
698 .footer-push {
699 margin-left: 0;
700 width: 100%;
701 }
702
703 .footerchild ul li:last-child {
704 margin-bottom: .5em;
705 }
706
707 .footer-push ul li:last-child {
708 margin-bottom: .1em;
709 }
710
711 /* hdn = hidden */
712 .hdn {
713 display: none;
714 }
715 .footer {
716 padding: .5em 0;
717 }
718 .footer li a {
719 line-height: 1.8;
720 }
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;
731 font-size: 2.5rem;
732 }
733 .footerchild ul li img,
734 .footerchild ul li .fa-fw {
735 height: 3.5rem;
736 }
737}
738
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
756.footer h2, .footer h3 {
757 margin-left: 10px;
758 margin-right: 10px;
759}
760
761footer.copyright {
762 display: flex;
763 flex-wrap: wrap;
764 justify-content: space-between;
765 background: var(--copyright-bg);
766 min-height: 1.5rem;
767 color: var(--copyright-text-color);
768 padding-left: .5em;
769 padding-right: .5em;
770 overflow: hidden;
771}
772
773footer.copyright div {
774 display: flex;
775 align-items: center;
776 height: 1.6rem;
777 line-height: 1.6rem;
778 vertical-align: top;
779}
780
781.copyright * {
782 margin: 0;
783 height: 1.6rem;
784 line-height: 1.6rem;
785}
786
787.copyright .fa {
788 height: 100%;
789 vertical-align: top;
790 font-size: 1.4em;
791}
792
793.copyright .footer-link {
794 height: 28px;
795 margin-right: .5em;
796}
797
798.copyright img {
799 width: auto;
800}