nfp_sites/nfp_moe/public/assets/app.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;
}