nfp_sites/nfp_moe/public/assets/app.css

647 lines
120 KiB
CSS
Raw Normal View History

2022-08-05 15:35:29 +00:00
/*
===================== 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;
2022-08-08 16:58:20 +00:00
--bg-content-alt: #eee;
2022-08-05 15:35:29 +00:00
--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;
2022-08-08 07:22:41 +00:00
/* src: url("Inter.var.woff2?v=3.19") format("woff2");*/
src: url(data:font/truetype;charset=utf-8;base64,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
2022-08-05 15:35:29 +00:00
}
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%;
2022-08-12 23:33:50 +00:00
margin: 0 auto;
2022-08-05 15:35:29 +00:00
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],
2022-08-08 07:22:41 +00:00
input[type=password],
select {
2022-08-05 15:35:29 +00:00
border: 1px solid var(--color);
background: var(--bg);
color: var(--color);
border-radius: 0;
padding: 0.25rem;
2022-08-12 23:33:50 +00:00
line-height: 1rem;
2022-08-05 15:35:29 +00:00
}
label {
font-size: 0.75rem;
font-weight: 500;
margin-top: 1rem;
margin-bottom: 0.25rem;
2022-08-08 07:22:41 +00:00
display: block;
2022-08-05 15:35:29 +00:00
}
input[type=text]:hover,
input[type=text]:active,
input[type=password]:hover,
2022-08-08 07:22:41 +00:00
input[type=password]:active,
select:hover,
select:active {
2022-08-05 15:35:29 +00:00
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;
}
2022-08-08 16:58:20 +00:00
.filler {
flex: 2 1 auto;
}
2022-08-05 15:35:29 +00:00
.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;
}
2022-08-12 23:33:50 +00:00
header aside a,
header aside button {
margin-left: 0.5rem;
}
header aside p button {
margin-left: 0;
2022-08-05 15:35:29 +00:00
}
.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 =====================
*/
2022-08-08 07:22:41 +00:00
main {
min-height: calc(100vh - 390px);
}
2022-08-05 15:35:29 +00:00
.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;
}
2022-08-12 23:33:50 +00:00
.actions {
2022-08-05 15:35:29 +00:00
padding: 0.5rem 1rem;
2022-08-08 16:58:20 +00:00
display: flex;
}
2022-08-12 23:33:50 +00:00
.actions a {
2022-08-08 16:58:20 +00:00
margin-left: 0.375rem;
2022-08-05 15:35:29 +00:00
}
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%;
}
2022-08-08 16:58:20 +00:00
main h2.title,
.main h2.title {
2022-08-05 15:35:29 +00:00
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,
2022-08-08 07:22:41 +00:00
main input[type=submit] {
2022-08-05 15:35:29 +00:00
border: var(--button-border);
background: #ffad42;
color: #000;
align-self: center;
padding: 0.25rem 1rem;
2022-08-08 07:22:41 +00:00
margin: 1rem 0 2rem;
2022-08-05 15:35:29 +00:00
}
/* ************** 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;
2022-08-12 23:33:50 +00:00
position: relative;
2022-08-05 15:35:29 +00:00
}
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;
}
2022-08-08 16:58:20 +00:00
/*
===================== content =====================
*/
.content :is(h1, h2, h3, h4, h5, ul, ol, blockquote, p) {
margin: 0 0 0.75rem;
}
.content :is(h1, h2, h3, h4, h5) {
padding: 0 0.5rem 0.5rem;
border-bottom: 1px solid var(--seperator);
}
.content :is(blockquote, pre) {
background: var(--bg-content-alt);
padding: 0.5rem;
}
.content blockquote p {
margin: 0;
}
2022-08-05 15:35:29 +00:00
/*
===================== 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;
}