--c-light: #ecf7fa;
--c-hl-dark: #008499;
--c-hl-light: #3baec4;
+ --c-shadow: #dae5e2;
/* backgrounds */
--navbar-bg: var(--c-dark);
--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 */
* {
/* 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;
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);
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;
}
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: 40px;
- margin-bottom: -9px;
+ height: 2.4ex;
+ margin-bottom: -.47ex;
margin-left: -10px;
margin-right: -10px;
}
+@media (--max-md) {
+ margin-left: -5px;
+ margin-right: -5px;
+}
+
/* main */
.container {
width: 100%;
.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;
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;
padding: 4em 0 4em 0;
}
+/* j = jumbotron */
.jindex {
z-index: 99;
}
margin-top: .75em;
}
+/* fa = font awesome */
.fa-users {
margin-top: var(--margin-box-fa);
}
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;
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 {
font-variant-numeric: tabular-nums;
}
+.artlist .art-date {
+ margin-bottom: .5em;
+}
+
.art-nav {
display: flex;
flex-direction: row;
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;
}
/* faq */
+/* kb = knowledge base */
.kb-index {
list-style-type: none;
padding-left: 0;
.kb-index li {
display: block;
flex: 1 1 15em;
- height: 7em;
+ height: 3em;
margin: 1em;
}
background: var(--jumbotron-bg);
color: var(--footer-text-color);
width: 100%;
- box-shadow: 0 -3px 5px rgba(150,150,150,.36);
+ 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;
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;
}
.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;
}
}
}
.copyright img {
- height: 1.5rem;
width: auto;
}