597 lines
9.4 KiB
CSS
597 lines
9.4 KiB
CSS
/*
|
|
===================== Variables =====================
|
|
*/
|
|
:root {
|
|
--content-max-width: 1280px;
|
|
--primary-darker-bg: #002f6c;
|
|
--primary-darker-fg: #fff;
|
|
--primary-darker-fg-light: #999;
|
|
--primary-darker-link: #ffad42;
|
|
|
|
--primary-bg: #3d77c7;
|
|
--primary-fg: #fff;
|
|
--primary-fg-light: #999;
|
|
--primary-link: #f57c00;
|
|
|
|
--bg: #fff;
|
|
--color: #000;
|
|
--light: #757575;
|
|
--link: #bb4d00;
|
|
--title-bg: #f57c00;
|
|
--title-fg: #000;
|
|
--title-sublink: #27159C;
|
|
--seperator: #ccc;
|
|
--content-bg: #fff;
|
|
--content-border: 0px solid transparent;
|
|
|
|
--alt-bg: #ccc;
|
|
--alt-inside-bg: #fff;
|
|
--alt-inside-border: 1px solid #555;
|
|
--alt-color: #555;
|
|
|
|
--footer-bg: #ccc;
|
|
--footer-color: #000;
|
|
--footer-seperator: #fff;
|
|
--footer-link: #8F3C00;
|
|
|
|
--button-border: 1px solid #f57c00;
|
|
--button-bg: #ffad42;
|
|
--button-fg: #000;
|
|
|
|
--error-bg: red;
|
|
--error-fg: white;
|
|
}
|
|
|
|
/*
|
|
===================== Reset =====================
|
|
*/
|
|
|
|
/* Box sizing rules */
|
|
*, *::before, *::after { box-sizing: border-box;
|
|
}
|
|
|
|
/* Remove default margin */
|
|
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
|
|
margin: 0;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Inter var';
|
|
font-weight: 100 900;
|
|
font-display: swap;
|
|
font-style: oblique 0deg 10deg;
|
|
src: url("Inter.var.woff2?v=3.19") format("woff2");
|
|
}
|
|
|
|
body {
|
|
min-height: 100vh;
|
|
text-rendering: optimizeSpeed;
|
|
line-height: 1.5;
|
|
font-size: 16px;
|
|
font-family: 'Inter var', sans-serif;
|
|
font-feature-settings: "slnt" 0deg, "case", "frac", "tnum", "ss02", "calt", "ccmp", "kern";
|
|
}
|
|
|
|
.italic { font-variation-settings: "slnt" 10deg; }
|
|
|
|
a {
|
|
text-decoration-skip-ink: auto;
|
|
}
|
|
|
|
img {
|
|
max-width: 100%;
|
|
display: block;
|
|
}
|
|
|
|
input, button, textarea, select {
|
|
font: inherit;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*, *::before, *::after {
|
|
animation-play-state: paused !important;
|
|
transition: none !important;
|
|
scroll-behavior: auto !important;
|
|
}
|
|
}
|
|
|
|
h1 {
|
|
font-size: 2.488rem;
|
|
}
|
|
h2 {
|
|
font-size: 2.074rem;
|
|
}
|
|
h3 {
|
|
font-size: 1.728rem;
|
|
}
|
|
h4 {
|
|
font-size: 1.44rem;
|
|
}
|
|
h5 {
|
|
font-size: 1.0rem;
|
|
}
|
|
|
|
a, a:visited, button {
|
|
text-decoration: none;
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
font-weight: bold;
|
|
cursor: pointer;
|
|
}
|
|
|
|
input[type=text],
|
|
input[type=password] {
|
|
border: 1px solid var(--color);
|
|
background: var(--bg);
|
|
color: var(--color);
|
|
border-radius: 0;
|
|
padding: 0.25rem;
|
|
}
|
|
|
|
label {
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
margin-top: 1rem;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
input[type=text]:hover,
|
|
input[type=text]:active,
|
|
input[type=password]:hover,
|
|
input[type=password]:active {
|
|
border-color: var(--link);
|
|
}
|
|
|
|
button {
|
|
background: transparent;
|
|
}
|
|
|
|
/*
|
|
===================== Common =====================
|
|
*/
|
|
|
|
.inside {
|
|
width: 100%;
|
|
max-width: var(--content-max-width);
|
|
display: flex;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.inside.vertical {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.container {
|
|
margin: 1rem;
|
|
}
|
|
|
|
.error {
|
|
background: var(--error-bg);
|
|
color: var(--error-fg);
|
|
cursor: pointer;
|
|
text-align: center;
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
.wrapper {
|
|
background: var(--footer-bg);
|
|
color: var(--footer-color);
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
min-height: calc(100vh - 200px);
|
|
padding: 1rem;
|
|
}
|
|
|
|
.wrapper .inside {
|
|
flex-direction: column;
|
|
color: var(--alt-color);
|
|
background: var(--alt-inside-bg);
|
|
border: var(--alt-inside-border);
|
|
}
|
|
|
|
.wrapper .error {
|
|
border: 1px solid var(--error-bg);
|
|
color: var(--error-bg);
|
|
background: transparent;
|
|
}
|
|
|
|
@keyframes spinner-loader {
|
|
to {transform: rotate(360deg);}
|
|
}
|
|
|
|
.loading-spinner:after {
|
|
content: '';
|
|
box-sizing: border-box;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-top: -10px;
|
|
margin-left: -10px;
|
|
border-radius: 50%;
|
|
border: 2px solid #ccc;
|
|
border-top-color: #333;
|
|
animation: spinner-loader .6s linear infinite;
|
|
z-index: 1000;
|
|
}
|
|
|
|
/*
|
|
===================== Header =====================
|
|
*/
|
|
|
|
header {
|
|
background: var(--primary-darker-bg);
|
|
color: var(--primary-darker-fg);
|
|
}
|
|
|
|
header a,
|
|
header a:visited,
|
|
header button {
|
|
color: var(--primary-darker-link);
|
|
}
|
|
|
|
header p {
|
|
color: var(--primary-darker-fg-light);
|
|
}
|
|
|
|
header .logo,
|
|
header .logo:visited {
|
|
height: 100px;
|
|
padding-left: 120px;
|
|
display: flex;
|
|
align-items: center;
|
|
background: 25px center no-repeat;
|
|
background-size: auto 91px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
header .logo h1 {
|
|
font-weight: 500;
|
|
color: var(--primary-darker-fg);
|
|
}
|
|
|
|
header aside {
|
|
flex: 2 1 auto;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
font-size: 0.8rem;
|
|
padding: 0.5rem 0.5rem;
|
|
}
|
|
|
|
header aside .actions a {
|
|
margin-left: 1rem;
|
|
display: inline-block;
|
|
}
|
|
|
|
.avifsupport header .logo {
|
|
background-image:url("/assets/img/logo.avif")
|
|
}
|
|
.jpegonly header .logo {
|
|
background-image:url("/assets/img/logo_small.jpg")
|
|
}
|
|
|
|
/*
|
|
===================== Nav =====================
|
|
*/
|
|
|
|
nav {
|
|
background: var(--primary-bg);
|
|
}
|
|
|
|
nav a, nav a:visited, nav .loading-spinner {
|
|
flex: 2 0 auto;
|
|
text-align: center;
|
|
font-weight: 300;
|
|
padding: 10px 10px 7px 10px;
|
|
border-bottom: 3px solid var(--primary-bg);
|
|
color: var(--primary-fg);
|
|
}
|
|
|
|
nav a.active {
|
|
border-bottom-color: var(--primary-link);
|
|
}
|
|
|
|
nav .loading-spinner {
|
|
position: relative;
|
|
}
|
|
|
|
/*
|
|
===================== main =====================
|
|
*/
|
|
|
|
.page-banner {
|
|
background-size: cover;
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
height: 150px;
|
|
width: 100%;
|
|
display: block;
|
|
}
|
|
|
|
.page-banner-title {
|
|
color: white;
|
|
text-align: right;
|
|
padding: 0.5rem 1rem;
|
|
font-size: 1.6rem;
|
|
flex: 2 1 auto;
|
|
text-shadow: 0 0 .3em #000;
|
|
}
|
|
|
|
.page-goback {
|
|
padding: 0.5rem 1rem;
|
|
}
|
|
|
|
main a,
|
|
main a:visited {
|
|
color: var(--link);
|
|
}
|
|
|
|
main h5 {
|
|
padding: 0 0.5rem 0.5rem;
|
|
margin: 0 0 0.75rem;
|
|
border-bottom: 1px solid var(--seperator);
|
|
font-size: 1rem;
|
|
}
|
|
|
|
main .loading-spinner {
|
|
position: fixed;
|
|
left: 50%;
|
|
top: 50%;
|
|
}
|
|
|
|
main h2 {
|
|
font-size: 1.4rem;
|
|
background: var(--title-bg);
|
|
color: var(--title-fg);
|
|
text-align: center;
|
|
font-weight: 400;
|
|
padding: 0.375rem;
|
|
line-height: 1.4rem;
|
|
}
|
|
|
|
main .container {
|
|
flex: 2 1 auto;
|
|
}
|
|
|
|
main .cover picture img {
|
|
margin-bottom: 1rem;
|
|
width: 100%;
|
|
}
|
|
|
|
main button,
|
|
input[type=submit] {
|
|
border: var(--button-border);
|
|
background: #ffad42;
|
|
color: #000;
|
|
align-self: center;
|
|
padding: 0.25rem 1rem;
|
|
}
|
|
|
|
/* ************** aside ************** */
|
|
|
|
main aside {
|
|
padding: 0 0.5rem;
|
|
margin: 1rem;
|
|
font-size: 0.875rem;
|
|
flex: 0 1 250px;
|
|
}
|
|
|
|
main aside a {
|
|
display: block;
|
|
}
|
|
|
|
main aside h5 {
|
|
margin: 0 -0.5rem 0.75rem;
|
|
}
|
|
|
|
main aside ul {
|
|
margin: 0 0 0.5rem;
|
|
padding-left: 1.5rem;
|
|
}
|
|
|
|
/* ************** paginator ************** */
|
|
|
|
paginator {
|
|
display: flex;
|
|
justify-content: center;
|
|
width: 100%;
|
|
}
|
|
|
|
paginator a {
|
|
color: var(--link);
|
|
cursor: pointer;
|
|
}
|
|
|
|
paginator a,
|
|
paginator div {
|
|
display: block;
|
|
font-size: 0.8rem;
|
|
max-width: 80px;
|
|
flex-grow: 2;
|
|
text-align: center;
|
|
padding: 0.5rem;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
/* ************** articleslim ************** */
|
|
|
|
articleslim {
|
|
display: flex;
|
|
margin-bottom: 0.75rem;
|
|
padding-right: 0.5rem;
|
|
}
|
|
|
|
articleslim p.description {
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
articleslim .cover {
|
|
flex: 0 0 124px;
|
|
margin-right: 0.75rem;
|
|
}
|
|
|
|
articleslim .cover picture img {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
articleslim a.nobg {
|
|
height: 70px;
|
|
background: var(--seperator);
|
|
display: block;
|
|
}
|
|
|
|
articleslim a.title {
|
|
display: block;
|
|
margin-bottom: 0.375rem;
|
|
}
|
|
|
|
/* ************** article ************** */
|
|
|
|
|
|
article .row {
|
|
margin: 1rem 0;
|
|
display: flex;
|
|
}
|
|
|
|
article .cover {
|
|
flex: 0 0 auto;
|
|
margin-right: 1rem;
|
|
align-self: flex-start;
|
|
}
|
|
|
|
article a.title {
|
|
flex: 0 0 100%;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
article .description {
|
|
font-size: 0.875rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
article .meta {
|
|
font-size: 0.625rem;
|
|
line-height: 0.75rem;
|
|
color: var(--light);
|
|
font-weight: 500;
|
|
margin-top: 1.25rem;
|
|
}
|
|
|
|
article.fullsize .row {
|
|
margin: 1rem;
|
|
flex-direction: column;
|
|
}
|
|
|
|
article.fullsize .cover {
|
|
margin-right: 0;
|
|
}
|
|
|
|
/* ************** fileinfo ************** */
|
|
|
|
fileinfo {
|
|
padding-left: 0.25rem;
|
|
margin-bottom: 0.5rem;
|
|
color: var(--light);
|
|
line-height: 1rem;
|
|
font-size: 0.75rem;
|
|
display: block;
|
|
}
|
|
|
|
fileinfo.slim {
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
fileinfo p span,
|
|
fileinfo p a {
|
|
margin-right: 0.25rem;
|
|
}
|
|
|
|
fileinfo p a {
|
|
font-weight: 550;
|
|
padding-right: 0.25rem;
|
|
border-right: 1px solid var(--seperator);
|
|
display: inline-block;
|
|
}
|
|
|
|
fileinfo p span {
|
|
font-weight: 700;
|
|
}
|
|
|
|
fileinfo ul {
|
|
margin: 0.5rem 0;
|
|
padding-left: 1.5rem;
|
|
}
|
|
|
|
/*
|
|
===================== login =====================
|
|
*/
|
|
|
|
.login {
|
|
align-items: center;
|
|
font-size: 1rem;
|
|
padding: 1rem 1rem 2rem;
|
|
margin: 1rem;
|
|
max-width: 400px;
|
|
}
|
|
|
|
.login .title {
|
|
font-size: 1.4rem;
|
|
font-weight: 200;
|
|
margin-bottom: 2rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.login input,
|
|
.login label {
|
|
width: 100%;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.login input[type=submit] {
|
|
min-width: 150px;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
/*
|
|
===================== footer =====================
|
|
*/
|
|
|
|
footer {
|
|
background: var(--footer-bg);
|
|
color: var(--footer-color);
|
|
text-align: center;
|
|
padding: 1rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
font-weight: 500;
|
|
font-size: 0.625rem;
|
|
}
|
|
|
|
footer ul {
|
|
margin: 0 0 0.25rem;
|
|
padding: 0 0 0.25rem;
|
|
border-bottom: 1px solid var(--footer-seperator);
|
|
display: flex;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
min-width: 300px;
|
|
}
|
|
|
|
footer ul li {
|
|
padding: 0 0.25rem;
|
|
list-style-position: inside;
|
|
}
|
|
|
|
footer a {
|
|
color: var(--footer-link);
|
|
margin: 0 0 0.25rem;
|
|
}
|
|
|
|
|