X-Git-Url: https://jfr.im/git/irc/freenode/web-7.0.git/blobdiff_plain/a895232a75a203c7f480a9b1eaab4e687b7b2585..HEAD:/static/css/style.css diff --git a/static/css/style.css b/static/css/style.css index a05330699..da8c733ac 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -6,6 +6,7 @@ --c-light: #ecf7fa; --c-hl-dark: #008499; --c-hl-light: #3baec4; + --c-shadow: #dae5e2; /* backgrounds */ --navbar-bg: var(--c-dark); @@ -25,20 +26,40 @@ --jumbotron-text-color: var(--c-light); --art-date-color: color(var(--c-dark) tint(50%)); + /* background colors */ + --background-color: var(--c-light); + /* box colors */ - --border-color: var(--c-dark); - --box-color: var(--c-bg-light); - --box-hover-color: var(--c-dark);; - --box-round: 10px; + --border-color: var(--c-dark); + --box-color: var(--c-bg-light); + --box-hover-color: var(--c-dark); + --box-round: 10px; + --navbar-border-color: var(--border-color); + --footer-shadow-color: rgba(150,150,150,.36); /* other */ --max-width: 600px; --max-width-box: 800px; --margin-box-fa: 5px; } + +@media (prefers-color-scheme: dark) { + :root { + --text-color: var(--c-light); + --background-color: var(--c-dark); + --link-color: #00c8e8; + --link-hover-color: #21a9c1; + --c-shadow: var(--c-bg-light); + --border-color: #000000; + --navbar-border-color: var(--c-dark); + --footer-shadow-color: rgba(70, 70, 70, 0.5); + } +} + @custom-media --max-sm all and (max-width: 600px); @custom-media --max-md all and (max-width: 800px); @custom-media --max-rem all and (max-width: 60rem); +@custom-media --sm-md (max-width: 850px) and (min-width: 600px); /* reset css for browser compat */ * { @@ -49,15 +70,20 @@ /* global */ body { - font-family: 'Open Sans'; + font-family: 'Open Sans', sans-serif; font-feature-settings: "lnum"; font-variant-numeric: lining-nums; color: var(--text-color); + background-color: var(--background-color); font-size: 14px; min-height: 100vh; height: auto; } +.invisible { + display: none; +} + a { color: var(--link-color); text-decoration: none; @@ -66,12 +92,14 @@ a { a:hover { color: var(--link-hover-color); } + img { max-width: 100%; } /* navbar */ .navbar { + color: var(--c-light); width: 100%; height: 50px; background-color: var(--navbar-bg); @@ -84,12 +112,12 @@ img { flex-wrap: nowrap; justify-content: space-between; align-items: center; - border-bottom: 1px solid var(--border-color); + border-bottom: 1px solid var(--navbar-border-color); z-index: 100; padding-right: 5px; } -@media (--max-sm); { +@media (--max-sm) { .navbar { position: absolute; } @@ -100,8 +128,99 @@ img { height: 40px; } -.nlogo { - height: 40px; +/* nav = navbar + * pia = Private Internet access + */ +#nav-logo { order: 10; } + +#nav-jump { order: 1000; } + +#nav-search { + order: 20; + margin-left: auto; + line-height: 35px; +} + +#nav-search input { + background-color: var(--c-bg-dark); + border-style: none; + border-radius: 2px; + color: var(--c-light); + padding: .5em; + padding-right: 2em; + margin-right: -2em; +} + +#nav-label { + display: inline-block; + width: 2em; + margin-right: .7em; +} + +@media (--max-sm) { + #nav-search { + order: 100; + margin: 0 .5em; + } + + #nav-label { + width: auto; + margin: 0 .5em; + } + + #nav-searchbox:not(:focus) { + display: inline-block; + position: absolute; + height: 0; + width: 0; + padding: 0; + margin: 0; + background: transparent; + overflow: hidden; + } + + #nav-searchbox:focus { + position: absolute; + visibility: visible; + outline: none; + top: 0; + left: 0; + right: 0; + height: 50px; + line-height: 50px; + font-size: 1.5em; + padding-right: 2.5em; + width: 100%; + } + + #nav-searchbox:focus + #nav-label { + display: block; + position: absolute; + pointer-events: none; + top: 0; + right: 0; + width: 1.5em; + font-size: 2em; + line-height: 50px; + padding-top: -.1em; + margin: 0; + } +} + +/* n = nav */ +.nlogo { height: 40px; } + +/* t = text (used in jumbotron for small logo as text) */ +.tlogo { + height: 2.4ex; + margin-bottom: -.47ex; + margin-left: -10px; + margin-right: -10px; +} + +@media (--max-md) { + margin-left: -5px; + margin-right: -5px; } /* main */ @@ -109,33 +228,84 @@ img { width: 100%; min-height: 100vh; padding-top: 50px; - padding-bottom: 12.5rem; + padding-bottom: 17.5rem; } .main { margin: 2em auto; padding: 0 .75em; max-width: var(--max-width); - line-height: 1.4; + line-height: 1.8; } .main h1, .main h2, .main h3, .main h4, +.main h5, +.main h6, .main li, .main pre, -.main p { +.main p, +.main blockquote { margin-top: .7em; } +.artlist li { + margin-top: 0; +} + .main h1 + p, .main h2 + p, .main h3 + p, -.main h3 + p { +.main h4 + p, +.main h5 + p, +.main h6 + p, +.main blockquote > p:first-child { margin-top: 0; } + +.main pre { + padding: .5em .75em; + border: 1px solid var(--border-color); + overflow-x: auto; +} + +.main :not(pre)>code { + padding: 0 0.2em; +} + +.main pre, .main :not(pre)>code { + background: var(--c-shadow); + border-radius: .25em; +} + +.toclink, +.toclink:hover { + color: var(--text-color); +} + +.toclink::after { + content: ' \f13d'; + font-family: FontAwesome; + color: var(--link-color); + font-weight: normal; + opacity: 0; + transition: opacity .08s; +} + +.toclink:hover::after { + opacity: 1; + color: var(--link-hover-color); +} + +@media (--max-sm) { + .toclink::after { + opacity: 1; + } +} + ul { padding-left: 2em; list-style-type: disc; @@ -151,6 +321,32 @@ hr { margin-bottom: .8em; } +table { + border: 1px solid var(--border-color); + border-collapse: collapse; +} + +th, td { + margin: .2em; +} + +th { + background-color: var(--c-bg-dark); + color: var(--c-light); +} + +td { + padding: .2em .5em; +} + +td:not(:first-child), th:not(:first-child) { + border-left: 1px solid var(--border-color); +} + +tr:nth-child(even) { + background-color: var(--c-shadow); +} + /* jumbotron */ .jumbotron { position: relative; @@ -162,8 +358,9 @@ hr { padding: 4em 0 4em 0; } +/* j = jumbotron */ .jindex { - z-index: 102; + z-index: 99; } .jlogo { @@ -174,7 +371,7 @@ hr { .jpia { position: absolute; height: 40px; - right: 0; + right: 0; top: 0; margin: 25px; } @@ -232,6 +429,7 @@ hr { margin-top: .75em; } +/* fa = font awesome */ .fa-users { margin-top: var(--margin-box-fa); } @@ -290,9 +488,13 @@ hr { h1 { margin: 0; } +/* art = article */ +.artlist ul { + padding: 0; + list-style-type: none; +} .art-info { - margin-top: 2.1em; display: flex; flex-direction: row; flex-wrap: wrap; @@ -306,23 +508,36 @@ h1 { margin-right: 2em; } +.art-warning { + margin-bottom: 2em; + padding: .5em; + border: 1px solid var(--border-color); + color: red; +} + .art-body { margin-bottom: 1em; } -.artlist { +@media(--max-sm) { + .artlist .heading { + padding: 0 0.75em; + } +} + +.artlist ul { max-width: var(--max-width); - margin: 0 auto; + margin: 2em auto; margin-top: .5em; } -.artlist.heading { - margin: 8em auto 2em auto; - padding: 0 0.75em; +.artlist li:not(:first-child) { + border-top: 1px solid var(--border-color); } -.artlist .art-info:not(:first-child) { - border-top: 1px solid var(--border-color); +.artlist .art { + font-weight: bold; + font-size: 120%; } .art-date { @@ -335,6 +550,10 @@ h1 { font-variant-numeric: tabular-nums; } +.artlist .art-date { + margin-bottom: .5em; +} + .art-nav { display: flex; flex-direction: row; @@ -342,6 +561,21 @@ h1 { width: 100%; } +.art-nav * { + flex-basis: 30%; +} + +.art-nav *:nth-child(1) { text-align: left; } +.art-nav *:nth-child(2) { text-align: center; } +.art-nav *:nth-child(3) { text-align: right; } + +blockquote { + padding-left: 1em; + display: inline-block; + border-left: .5em solid var(--c-shadow); + font-style: italic; +} + @media (--max-md) { .main.artlist { padding-left: 0; @@ -354,6 +588,7 @@ h1 { } /* faq */ +/* kb = knowledge base */ .kb-index { list-style-type: none; padding-left: 0; @@ -366,7 +601,7 @@ h1 { .kb-index li { display: block; flex: 1 1 15em; - height: 7em; + height: 3em; margin: 1em; } @@ -390,19 +625,23 @@ h1 { /* footer */ .footers { /*min-height: 30vh;*/ - margin-top: -12rem; - min-height: 12rem; + margin-top: -17rem; + min-height: 17rem; } .footer { background: var(--jumbotron-bg); color: var(--footer-text-color); width: 100%; - box-shadow: 0 -3px 5px rgba(150,150,150,.36); - min-height: 10.5rem; + box-shadow: 0 -3px 5px var(--footer-shadow-color); + min-height: 15.4rem; padding: 3em 0; } +.footer .fa-fw { + height: 14px; +} + .footer-container { display: flex; flex-wrap: wrap; @@ -469,12 +708,16 @@ footer a:hover { margin-bottom: .1em; } + /* hdn = hidden */ .hdn { display: none; } .footer { padding: .5em 0; } + .footer li a { + line-height: 1.8; + } .footer-push ul { display: flex; flex-wrap: wrap; @@ -485,10 +728,28 @@ footer a:hover { } .footer-push ul li { display: inline-block; - font-size: 12vw; + font-size: 2.5rem; + } + .footerchild ul li img, + .footerchild ul li .fa-fw { + height: 3.5rem; + } +} + +@media (--sm-md) { + .footer-container { + flex-flow: row wrap; + position: relative; + width: 95vw; + } + + .footerchild { + flex-basis: 40%; + margin-bottom: 1em; } - .footer-push ul li img { - height: 12vw; + + .footer-push { + margin-left: 0; } } @@ -512,15 +773,15 @@ footer.copyright { footer.copyright div { display: flex; align-items: center; - height: 1.5rem; - line-height: 1.5rem; + height: 1.6rem; + line-height: 1.6rem; vertical-align: top; } .copyright * { margin: 0; - height: 1.5rem; - line-height: 1.5rem; + height: 1.6rem; + line-height: 1.6rem; } .copyright .fa { @@ -535,6 +796,5 @@ footer.copyright div { } .copyright img { - height: 1.5rem; width: auto; }