X-Git-Url: https://jfr.im/git/irc/freenode/web-7.0.git/blobdiff_plain/e5dc4a6e8ece73925487f543aaf638bea8826c64..c55a1b7c6191a8f174c0d291d61ee57668cf6098:/static/css/style.css diff --git a/static/css/style.css b/static/css/style.css index df7fc4c33..576f786aa 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -1,430 +1,720 @@ /* vars */ +:root { + --c-dark: #292f2f; + --c-bg-dark: #3a4346; + --c-bg-light: #4c5456; + --c-light: #ecf7fa; + --c-hl-dark: #008499; + --c-hl-light: #3baec4; + --c-shadow: #dae5e2; + + /* backgrounds */ + --navbar-bg: var(--c-dark); + --jumbotron-bg: var(--c-bg-dark); + --copyright-bg: var(--c-dark); + + /* link colors */ + --link-color: var(--c-hl-dark); + --link-hover-color: var(--c-hl-light); + --footer-link-color: var(--c-light); + --footer-hover-color: #fff; + + /* text colors */ + --text-color: var(--c-dark); + --footer-text-color: var(--c-light); + --copyright-text-color: var(--c-light); + --jumbotron-text-color: var(--c-light); + --art-date-color: color(var(--c-dark) tint(50%)); + + /* box colors */ + --border-color: var(--c-dark); + --box-color: var(--c-bg-light); + --box-hover-color: var(--c-dark);; + --box-round: 10px; + + /* other */ + --max-width: 600px; + --max-width-box: 800px; + --margin-box-fa: 5px; +} +@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); /* reset css for browser compat */ - * { - margin: 0; - padding: 0; - box-sizing: border-box; + margin: 0; + padding: 0; + box-sizing: border-box; } /* global */ - body { - font-family: 'Open Sans'; - color: #333; - font-size: 14px; - min-height: 100vh; - height: auto; + font-family: 'Open Sans', sans-serif; + font-feature-settings: "lnum"; + font-variant-numeric: lining-nums; + color: var(--text-color); + font-size: 14px; + min-height: 100vh; + height: auto; +} + +.invisible { + display: none; } a { - color: rgb(66,139,202); - text-decoration: none; + color: var(--link-color); + text-decoration: none; } -/* navbar */ +a:hover { + color: var(--link-hover-color); +} +img { + max-width: 100%; +} +/* navbar */ .navbar { - width: 100%; - height: 50px; - background-color: #fff; - position: fixed; - left: 0; - right: 0; - top: 0; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - border-bottom: 1px solid rgba(0,0,0,.3); - z-index: 100; -} - -.nlogo { - height: 40px; -} - -.navlinks { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} - -.nlink { - text-decoration: none; - color: #000; + color: var(--c-light); + width: 100%; + height: 50px; + background-color: var(--navbar-bg); + box-shadow: 0 3px 4px rgba(0, 0, 0, 0.5); + position: fixed; + left: 0; + right: 0; + top: 0; + display: flex; + flex-wrap: nowrap; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid var(--border-color); + z-index: 100; + padding-right: 5px; +} + +@media (--max-sm) { + .navbar { + position: absolute; + } +} + +.navbar a { + margin-top: 2px; + height: 40px; +} + +/* nav = navbar + * pia = Private Internet access + */ +#nav-logo { order: 10; } +#nav-pia { order: 30; } + +#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-pia { + margin-left: auto; + } + + #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; } /* main */ - .container { - padding: 50px 0 0; - width: 100%; - min-height: 68vh; + width: 100%; + min-height: 100vh; + padding-top: 50px; + padding-bottom: 17.5rem; } .main { - margin-left: .5em; - margin-top: 1em; - margin-bottom: 1em; + margin: 2em auto; + padding: 0 .75em; + max-width: var(--max-width); + line-height: 1.8; } -/* jumbotron */ +.main h1, +.main h2, +.main h3, +.main h4, +.main h5, +.main h6, +.main li, +.main pre, +.main p, +.main blockquote { + margin-top: .7em; +} + +.artlist li { + margin-top: 0; +} + +.main h1 + p, +.main h2 + p, +.main h3 + p, +.main h4 + p, +.main h5 + p, +.main h6 + p, +.main blockquote > p:first-child { + margin-top: 0; +} + +ul { + padding-left: 2em; + list-style-type: disc; +} +ol { + padding-left: 2em; + list-style-type: decimal; +} + +hr { + margin-top: .8em; + margin-bottom: .8em; +} + +table { + border: 1px solid var(--c-dark); + 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(--c-dark); +} + +tr:nth-child(odd) { + background-color: var(--c-shadow); +} + +/* jumbotron */ .jumbotron { - position: relative; - width: 100%; - margin-top: -16px; - background: #000; - background: #eee; - box-shadow: 0 3px 5px rgba(150,150,150,.36); - color: #333; + position: relative; + width: 100%; + margin-top: -50px; + background: var(--jumbotron-bg); + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6); + color: var(--jumbotron-text-color); + padding: 4em 0 4em 0; +} + +/* j = jumbotron */ +.jindex { + z-index: 99; +} + +.jlogo { + display: block; + margin: 25px auto; +} + +.jpia { + position: absolute; + height: 40px; + right: 0; + top: 0; + margin: 25px; +} + +@media (--max-sm) { + .jlogo { + margin: 2em auto -2em auto; + } + .jumbotron { + padding-bottom: 2em; + } } .child { - text-align: center; - margin: .5em; - font-size: 32px; - line-height: 48px; + text-align: center; + margin: .5em auto; + font-size: 32px; + line-height: 48px; + max-width: 75%; } .box-container { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; + display: flex; + flex-wrap: wrap; + justify-content: space-around; + align-items: stretch; + max-width: var(--max-width-box); + margin: 0 auto; } .box { - text-align: left; - text-decoration: none; - color: #333; - margin-bottom: 5px; - padding: 5px; - -webkit-flex-basis: 30%; - -ms-flex-preferred-size: 30%; - flex-basis: 30%; - background-color: #fff; - border-radius: 10px; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; -} - -.box:hover, -.box:active { - background-color: #ddd; -} - -.box div { - font-size: 28px; - line-height: 28px; - padding-left: 8px; - font-weight: 700; - position: relative; - display: inline; - top: -10px; + text-align: center; + text-decoration: none; + color: var(--jumbotron-text-color); + margin-bottom: 5px; + flex-basis: 30%; + min-width: 26%; + background-color: var(--box-color); + border-radius: var(--box-round); + padding: 1em; } -.fa-users { - margin-top: 5px; +.box:hover,.box:active { + color: var(--jumbotron-text-color); + background-color: var(--box-hover-color); } -.fa-comment, -.fa-question { - margin-bottom: 5px; +.box span { + position: relative; + top: initial; + font-size: 20px; + font-weight: 600; + line-height: 16px; + display: block; + margin-top: .75em; } -.fa-4x { - padding-left: 8px; +/* fa = font awesome */ +.fa-users { + margin-top: var(--margin-box-fa); } -.title { - text-align: center; +.fa-comments,.fa-question { + margin-bottom: var(--margin-box-fa); } -/* articles feed */ +.title { + text-align: center; +} +@media (--max-md) { + .box { + text-align: center; + } + + .child { + font-size: 20px; + line-height: 30px; + padding: 10px 0 5px; + } + + .fa-4x { + padding: 0; + margin: 0; + width: 60px; + text-align: center; + font-size: 28px; + } + + .box-container { + flex-direction: column; + margin: 0 .5em; + } + + .box span { + font-size: 22px; + line-height: 22px; + padding-left: 8px; + font-weight: bold; + position: relative; + display: inline-block; + text-align: center; + margin-top: 0; + } + + .box { + text-align: left; + border-radius: calc(var(--box-round) / 2); + margin: 5px 0; + } +} + +/* articles */ h1 { - margin: 0; + margin: 0; +} +/* art = article */ +.artlist ul { + padding: 0; + list-style-type: none; +} + +.art-info { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + align-items: baseline; +} + +.art-info h1 { + margin-top: 0; + display: inline; + margin-right: 2em; +} + +.art-warning { + margin-bottom: 2em; + padding: .5em; + border: 1px solid var(--border-color); + color: red; } -div.art { - border-bottom: 1px solid rgba(0,0,0,.3); +.art-body { + margin-bottom: 1em; } -div.art:last-child { - border-bottom: none; +@media(--max-sm) { + .artlist .heading { + padding: 0 0.75em; + } } -b.art { - margin-bottom: 0; - font-size: 18px; +.artlist ul { + max-width: var(--max-width); + margin: 2em auto; + margin-top: .5em; } -p.art { - margin: 0; +.artlist li:not(:first-child) { + border-top: 1px solid var(--border-color); } -p.art-ingress { - font-style: italic; - margin: 0; +.artlist .art { + font-weight: bold; + font-size: 120%; } .art-date { - color: #ccc; - margin: 0; + display: inline-block; + vertical-align: baseline; + line-height: 1; + white-space: nowrap; + color: var(--art-date-color); + font-feature-settings: "tnum"; + font-variant-numeric: tabular-nums; } -p.heading { - white-space: nowrap; +.artlist .art-date { + margin-bottom: .5em; } -p.art-link { - margin-top: 0; +.art-nav { + display: flex; + flex-direction: row; + justify-content: space-between; + width: 100%; } -/* Article */ +.art-nav * { + flex-basis: 30%; +} -/* help */ +.art-nav *:nth-child(1) { text-align: left; } +.art-nav *:nth-child(2) { text-align: center; } +.art-nav *:nth-child(3) { text-align: right; } -.hmain { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; - -webkit-box-align: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; +blockquote { + padding-left: 1em; + display: inline-block; + border-left: .5em solid var(--c-shadow); + font-style: italic; } -a.hchild { - color: #333; - /*height: 40px;*/ - width: 95%; - text-align: center; - border-top: 1px solid rgba(0,0,0,.6); - border-left: 1px solid rgba(0,0,0,.6); - border-right: 1px solid rgba(0,0,0,.6); +@media (--max-md) { + .main.artlist { + padding-left: 0; + padding-right: 0; + } + + .artlist .art-info { + padding: 0 .75em; + } } -a.hchild:hover, -a.hchild:active { - background-color: #ddd; +/* faq */ +/* kb = knowledge base */ +.kb-index { + list-style-type: none; + padding-left: 0; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: stretch; } -.hchild:first-child { - margin-top: 10px; - -webkit-border-top-left-radius: 10px; - -webkit-border-top-right-radius: 10px; - -moz-border-radius-topleft: 10px; - -moz-border-radius-topright: 10px; - border-top-left-radius: 10px; - border-top-right-radius: 10px; +.kb-index li { + display: block; + flex: 1 1 15em; + height: 3em; + margin: 1em; } -.hchild:last-child { - margin-bottom: 10px; - border-bottom: 1px solid rgba(0,0,0,.6); - -webkit-border-bottom-right-radius: 10px; - -webkit-border-bottom-left-radius: 10px; - -moz-border-radius-bottomright: 10px; - -moz-border-radius-bottomleft: 10px; - border-bottom-right-radius: 10px; - border-bottom-left-radius: 10px; +.kb-index li h2 { + margin-top: 0; } -/* footer */ +.kb-index a { + display: block; + color: var(--text-color); + width: 100%; + height: 100%; +} +.kb-index a h2 { + color: var(--link-color); +} +.kb-index a:hover h2 { + color: var(--link-hover-color); +} +/* footer */ .footers { - min-height: 30vh; + /*min-height: 30vh;*/ + margin-top: -17rem; + min-height: 17rem; } .footer { - background: #eee; - color: rgba(51,51,51,.9); - margin-top: 2vh; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - min-height: 27vh; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - box-shadow: 0 -3px 5px rgba(150,150,150,.36); + background: var(--jumbotron-bg); + color: var(--footer-text-color); + width: 100%; + box-shadow: 0 -3px 5px rgba(150,150,150,.36); + min-height: 15.4rem; + padding: 3em 0; } -.footerchild { - margin-top: .5em; +.footer .fa-fw { + height: 14px; } -.footer a { - color: #000; +.footer-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: flex-start; + margin: 0 auto; } -.footer h2 { - margin-bottom: 9px; - display: inline-block; +.footerchild { + margin: 0 2em; + margin-top: .5em; + flex-grow: 1; + flex-shrink: 0; } -.footerchild ul, -.footerchild ul ul { - margin-left: 10px; - margin-right: 10px; - list-style-type: none; +.footerchild:last-child { + margin-bottom: .5em; } -.footerchild ul ul { - padding-left: 30px; +.footer-push { + margin-left: auto; + width: max-content; } -@media all and (max-width: 500px) { - .footer { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - } +footer a { + color: var(--footer-link-color); +} - .footerchild { - width: 100%; - } +footer a:hover { + color: var(--footer-hover-color); +} - .footerchild ul li:last-child { - margin-bottom: .5em; - } +.footer h2 { + margin-bottom: .1em; + display: inline-block; +} - .hdn { - display: none; - } +.footerchild ul, .footerchild ul ul { + padding-left: 0; + margin-left: 10px; + margin-right: 10px; + list-style-type: none; +} - .box { - text-align: center; - } +.footerchild ul ul { + padding-left: 30px; +} + +@media (--max-sm) { + .footer-container { + flex-direction: column; + } + + .footer-push { + margin-left: 0; + width: 100%; + } + + .footerchild ul li:last-child { + margin-bottom: .5em; + } + + .footer-push ul li:last-child { + 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; + flex-direction: row; + justify-content: space-between; + align-items: flex-start; + text-align: center; + } + .footer-push ul li { + display: inline-block; + font-size: 2.5rem; + } + .footerchild ul li img, + .footerchild ul li .fa-fw { + height: 3.5rem; + } +} + +.footer h2, .footer h3 { + margin-left: 10px; + margin-right: 10px; +} + +footer.copyright { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + background: var(--copyright-bg); + min-height: 1.5rem; + color: var(--copyright-text-color); + padding-left: .5em; + padding-right: .5em; + overflow: hidden; +} + +footer.copyright div { + display: flex; + align-items: center; + height: 1.6rem; + line-height: 1.6rem; + vertical-align: top; +} + +.copyright * { + margin: 0; + height: 1.6rem; + line-height: 1.6rem; +} - .child { - font-size: 20px; - line-height: 30px; - padding: 10px 0 5px; - } +.copyright .fa { + height: 100%; + vertical-align: top; + font-size: 1.4em; +} - .fa-4x { - padding: 0; - margin: 0; - } +.copyright .footer-link { + height: 28px; + margin-right: .5em; +} - .box div { - position: relative; - top: initial; - font-size: 16px; - font-weight: normal; - line-height: 16px; - padding: 10px 0; - display: block; - } -} - -.footer h2, -.footer h3 { - margin-left: 10px; - margin-right: 10px; -} - -.copyright { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - background: rgba(170,178,171,.5); - height: 3vh; - color: rgba(0,0,0,.8); -} - -a.copyright { - background: rgba(170,178,171,.5); - margin-bottom: 0; - margin-top: 0; - margin-left: .5em; - margin-right: .5em; - width: auto; - height: auto; -} - -.copyright a img { - height: 3vh; - width: auto; -} - -.copyright p { - margin-bottom: 0; - margin-top: 0; - margin-left: .5em; - margin-right: .5em; - text-align: right; -} - -@media all and (max-width: 500px) { - .copyright { - height: 5vh; - } - - .copyright a img { - height: 5vh; - } -} \ No newline at end of file +.copyright img { + width: auto; +}