t-r.de/theme/static/css/custom.css
2025-02-07 14:02:34 +01:00

293 lines
6.2 KiB
CSS

/*
* Additional fonts
*/
/* LinBiolinum is sans-serif; see linuxlibertine.org */
@font-face {
font-family: "LinBiolinum";
src: url("../fonts/LinLibertine/LinBiolinum_R.otf") format("opentype");
}
@font-face {
font-family: "LinBiolinum";
font-weight: bold;
src: url("../fonts/LinLibertine/LinBiolinum_RB.otf") format("opentype");
}
@font-face {
font-family: "LinBiolinum";
font-style: italic;
src: url("../fonts/LinLibertine/LinBiolinum_RI.otf") format("opentype");
}
/*
* Modified Pico settings (standard Pico)
*/
:root {
--pico-font-family-sans-serif: LinBiolinum, system-ui, "Segoe UI", Roboto,
Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif,
var(--pico-font-family-emoji);
--bg-gradient-light: linear-gradient(to right, #FCEFD9, white, #FCEFD9);
--bg-gradient-dark: linear-gradient(to right, #4D3700, black, #4D3700);
}
a {
--pico-text-decoration: none;
}
/*
* Override breakpoint settings for hamburger menu (overrides Yohn's Pico fork
*/
@media (max-width: 767px) {
nav[role=navigation][data-breakpoint=my-md] {
flex-wrap: wrap;
overflow: hidden;
}
nav[role=navigation][data-breakpoint=my-md]:has(input[type=checkbox]:checked) {
overflow: visible;
}
nav[role=navigation][data-breakpoint=my-md] label {
display: block;
}
nav[role=navigation][data-breakpoint=my-md]>[role=list] {
display: none;
flex-direction: column;
align-items: flex-start;
width: 90vw;
max-height: 0;
margin: 0 auto;
background-color: var(--pico-muted-border-color);
box-shadow: var(--pico-box-shadow);
opacity: 0;
transition: max-height var(--pico-transition), opacity var(--pico-transition);
}
nav[role=navigation][data-breakpoint=my-md]>[role=list] li {
width: calc(100% - var(--pico-nav-link-spacing-vertical) * 2);
margin: calc(var(--pico-nav-link-spacing-vertical) * 0.5) var(--pico-nav-link-spacing-vertical);
padding: 0;
}
nav[role=navigation][data-breakpoint=my-md]>[role=list] li>details.dropdown {
width: 100%;
}
nav[role=navigation][data-breakpoint=my-md]>[role=list] li>form[role=search] {
margin-block-end: 0;
}
nav[role=navigation][data-breakpoint=my-md]>[role=list] a {
display: block;
margin: 0;
border-radius: 0;
border-block-end: 1px solid transparent;
transition: border-color var(--pico-transition), color var(--pico-transition);
}
nav[role=navigation][data-breakpoint=my-md]>[role=list] a:hover {
border-bottom-color: var(--pico-underline);
text-decoration: none;
}
nav[role=navigation][data-breakpoint=my-md] input[type=checkbox]:checked~[role=list] {
display: block;
max-height: 100vh;
opacity: 1;
}
}
/*
* Settings specific to breakpoints
*/
@media (min-width: 576px) {
.card {
max-width: calc(50% - var(--pico-block-spacing-horizontal) / 2);
}
}
@media (min-width: 1024px) {
.card {
max-width: calc(33% - var(--pico-block-spacing-horizontal) * 2 / 3);
}
}
@media (min-width: 1280px) {
.container {
max-width: 1170px;
}
}
@media screen and (min-width: 1536px) {
.card {
max-width: calc(25% - var(--pico-block-spacing-horizontal) * 3 / 4);
}
.container {
max-width: 1280px;
}
}
/*
* Light/Dark mode settings
*/
/* Light color scheme (Default) */
/* Can be forced with data-theme="light" */
[data-theme="light"],
:root:not([data-theme="dark"]) {
#sun-moon:not(:checked)::before {
background-color: var(--pico-color);
}
#sun-moon:not([aria-invalid]) {
border-color: var(--pico-primary);
}
}
/* Dark color scheme (Auto) */
/* Automatically enabled if user has Dark mode enabled */
@media only screen and (prefers-color-scheme: dark) {
:root:not([data-theme]) {
#jumbotron-title {
border-bottom: thin solid white;
}
#main-header h1,
#site-footer p {
background: var(--bg-gradient-dark);
}
}
}
/* Dark color scheme (Forced) */
/* Enabled if forced with data-theme="dark" */
[data-theme="dark"] {
#jumbotron-title {
border-bottom: thin solid white;
}
#main-header h1,
#site-footer p {
background: var(--bg-gradient-dark);
}
}
/*
* Specific elements on the page
*/
/* Jumbotron */
#jumbotron-title {
border-bottom: thin solid black;
h1 {
font-size: 3rem;
font-weight: 500;
margin-bottom: calc(var(--pico-spacing) * 0.5);
a {
color: var(--pico-h1-color);
}
}
}
#jumbotron-subtitle h2 {
font-size: 2.1rem;
font-weight: 500;
margin-top: calc(var(--pico-spacing) * 0.5);
}
/* Navbar */
#site-navbar {
ul {
/* box-shadow: var(--pico-card-box-shadow); */
margin-left: 0;
margin-right: 0;
li:last-child {
padding-right: 0;
}
}
a {
font-size: calc(var(--pico-font-size) * 0.9);
font-weight: bold;
text-align: right;
}
}
#hamburger-label {
font-size: calc(var(--pico-font-size) * 2);
}
#sun-moon {
background-color: var(--pico-primary);
}
#sun-moon-label {
margin-left: auto;
margin-right: 0;
}
/* Main content */
#main-header h1,
#site-footer p {
background: var(--bg-gradient-light);
box-shadow: var(--pico-card-box-shadow);
padding: calc(var(--pico-block-spacing-horizontal) * 0.5) calc(var(--pico-block-spacing-vertical) * 0.5);
text-align: center;
}
.cards {
display: flex;
flex-flow: row wrap;
list-style-type: none;
padding-left: inherit;
justify-content: space-between;
/* column-gap: var(--pico-block-spacing-horizontal); */
}
.card {
display: flex;
flex-flow: column nowrap;
flex: 1 0 100%;
list-style-type: none;
padding-left: calc(var(--pico-spacing) * 0.5);
padding-right: calc(var(--pico-spacing) * 0.5);
box-shadow: var(--pico-card-box-shadow);
}
.article-header {
flex: 0 0 3.5lh;
margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
h3 {
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
margin-bottom: auto;
}
}
.article-body {
text-align: center;
img {
height: 270px;
}
}
.article-footer {
margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
}