729 lines
15 KiB
CSS
729 lines
15 KiB
CSS
/*
|
|
* General settings
|
|
*/
|
|
:root {
|
|
--tr-card-height: 300px;
|
|
--tr-smallest-width: 350px;
|
|
--tr-accent-color: #cf0000;
|
|
|
|
--tr-events-color-bls: #e66720;
|
|
--tr-events-color-paw: #a830b3;
|
|
|
|
--pico-font-family-sans-serif: "Libertinus Sans", system-ui, "Segoe UI", Roboto,
|
|
Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue", sans-serif,
|
|
var(--pico-font-family-emoji);
|
|
--pico-font-size: 112.5%;
|
|
}
|
|
|
|
/* don't underline links in headings */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
a {
|
|
--pico-text-decoration: none;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* Override breakpoint settings for hamburger menu in 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;
|
|
}
|
|
}
|
|
/* end override hamburger settings */
|
|
|
|
@media (min-width: 576px) {
|
|
:root {
|
|
--pico-font-size: 118.75%;
|
|
}
|
|
/* Two cards side by side on small screens */
|
|
.card {
|
|
max-width: calc(50% - var(--pico-block-spacing-horizontal) / 2);
|
|
}
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
:root {
|
|
--pico-font-size: 125%;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
:root {
|
|
--pico-font-size: 131.25%;
|
|
}
|
|
/* Three cards side by side on large screens */
|
|
.card {
|
|
max-width: calc(33% - var(--pico-block-spacing-horizontal) * 2 / 3);
|
|
}
|
|
}
|
|
|
|
@media (min-width: 1280px) {
|
|
:root {
|
|
--pico-font-size: 137.5%;
|
|
}
|
|
.container {
|
|
max-width: 1170px;
|
|
}
|
|
}
|
|
|
|
@media screen and (min-width: 1536px) {
|
|
:root {
|
|
--pico-font-size: 143.75%;
|
|
}
|
|
/* Four cards side by side on xs-large screens */
|
|
.card {
|
|
max-width: calc(25% - var(--pico-block-spacing-horizontal) * 3 / 4);
|
|
}
|
|
.container {
|
|
max-width: 1280px;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* Light/Dark mode settings (adapted from Yohn's Pico fork)
|
|
*/
|
|
/* Light color scheme (default); can be forced with data-theme="light" */
|
|
[data-theme="light"],
|
|
:root:not([data-theme="dark"]) {}
|
|
|
|
/* Dark color scheme. Everything must be set twice:
|
|
- once for automatically enabled dark mode
|
|
- and once for when dark mode is forced via toggle
|
|
*/
|
|
@media only screen and (prefers-color-scheme: dark) {}
|
|
|
|
[data-theme="dark"] {}
|
|
|
|
/*
|
|
* Specific elements on the page
|
|
*/
|
|
/* Jumbotron */
|
|
#jumbotron-title {
|
|
border-bottom: thin solid var(--pico-h1-color);
|
|
|
|
h1 {
|
|
font-size: 2.66rem;
|
|
font-weight: 500;
|
|
margin-bottom: calc(var(--pico-spacing) * 0.5);
|
|
|
|
a {
|
|
color: var(--pico-h1-color);
|
|
text-decoration-color: var(--pico-h1-color);
|
|
}
|
|
}
|
|
}
|
|
|
|
#jumbotron-subtitle h2 {
|
|
font-size: 1.86rem;
|
|
font-weight: 500;
|
|
margin-top: calc(var(--pico-spacing) * 0.5);
|
|
}
|
|
|
|
/* Navbar */
|
|
#site-navbar {
|
|
ul {
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
|
|
li#li-subtitle {
|
|
padding: 0;
|
|
}
|
|
|
|
li.sun-moon-li {
|
|
padding-right: 0;
|
|
}
|
|
|
|
li[aria-current=page]>a,
|
|
li[aria-current=page]>details>summary>a {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
a {
|
|
font-size: 1rem;
|
|
font-weight: bold;
|
|
text-align: right;
|
|
}
|
|
|
|
details.dropdown {
|
|
margin-block-end: calc(var(--pico-spacing) * -1);
|
|
|
|
>summary:not([role]) + ul li a,
|
|
a {
|
|
color: var(--pico-primary);
|
|
}
|
|
|
|
> summary + ul li a:hover,
|
|
a:hover {
|
|
color: var(--pico-primary-hover);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
>summary:not([role]) {
|
|
background-color: inherit;
|
|
border: none;
|
|
padding-top: var(--pico-form-element-spacing-vertical);
|
|
}
|
|
}
|
|
|
|
li a {
|
|
text-align: left;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/* make hamburger icon bigger */
|
|
#hamburger-label {
|
|
font-size: 1.77rem;
|
|
}
|
|
|
|
/* change color of sun icon to white*/
|
|
#sun-moon:not(:checked)::before {
|
|
background-color: var(--pico-color);
|
|
}
|
|
|
|
/* change background & border color of theme toggle */
|
|
#sun-moon:not([aria-invalid]) {
|
|
background-color: var(--pico-primary-background);
|
|
border-color: var(--pico-primary-border);
|
|
}
|
|
|
|
/* move theme toggle switch to the right when inside dropdown menu */
|
|
#sun-moon-label {
|
|
margin-left: auto;
|
|
margin-right: 0;
|
|
}
|
|
|
|
/* style newsletter subscription form */
|
|
.newsletter-form {
|
|
display: flex;
|
|
flex-flow: row wrap;
|
|
}
|
|
|
|
.newsletter-email {
|
|
flex: 1 0 var(--tr-smallest-width);
|
|
min-width: var(--tr-smallest-width);
|
|
}
|
|
|
|
.newsletter-submit {
|
|
flex: 0 1 content;
|
|
}
|
|
|
|
.required:after {
|
|
content: " *";
|
|
color: var(--tr-accent-color);
|
|
}
|
|
|
|
|
|
/* Main content */
|
|
#site-footer p,
|
|
.extra-header h1 {
|
|
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;
|
|
background-color: var(--pico-card-background-color);
|
|
}
|
|
|
|
#site-footer a {
|
|
text-decoration: none;
|
|
}
|
|
|
|
#content-header h1, .featured-image {
|
|
text-align: center;
|
|
}
|
|
|
|
figcaption {
|
|
text-align: center;
|
|
font-size: 0.66em;
|
|
}
|
|
|
|
#no-bottom-margin {
|
|
margin-bottom: 0;
|
|
clip-path: inset(-138px -138px -0px -138px);
|
|
}
|
|
|
|
article form {
|
|
box-shadow: none;
|
|
}
|
|
|
|
.padded {
|
|
margin-left: var(--pico-block-spacing-horizontal);
|
|
margin-right: var(--pico-block-spacing-horizontal);
|
|
}
|
|
|
|
/* Index page */
|
|
.index {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-evenly;
|
|
align-items: center;
|
|
row-gap: 1rem;
|
|
margin-bottom: 3lh;
|
|
|
|
img {
|
|
flex: 0 0 auto;
|
|
max-height: calc(var(--tr-card-height) * 2);
|
|
aspect-ratio: auto;
|
|
}
|
|
|
|
p {
|
|
flex: 0 1 var(--tr-smallest-width);
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.index-link::after {
|
|
content: "\00a0\02192"; /* arrow to the right */
|
|
}
|
|
|
|
a {
|
|
color: var(--pico-h1-color);
|
|
--pico-text-decoration: none;
|
|
}
|
|
}
|
|
|
|
/* featured news line on start page*/
|
|
/* animation source: https://codepen.io/alvarotrigo/pen/RwOrwro */
|
|
.index-featured-news {
|
|
margin-bottom: calc(var(--pico-block-spacing-vertical) * 2.5);
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
|
|
h3 {
|
|
text-align: center;
|
|
animation: clip-path-reveal-1 3s ease;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
h3:before, h3:after {
|
|
box-sizing: border-box;
|
|
}
|
|
}
|
|
|
|
.index-featured-news:before {
|
|
box-sizing: border-box;
|
|
content: "";
|
|
position: absolute;
|
|
top: calc( 100% - 2px );
|
|
width: 100%;
|
|
height: 4px;
|
|
background-color: var(--tr-accent-color);
|
|
transform-origin: center center;
|
|
transform: scaleX( 0 );
|
|
animation: line-animation 3s ease;
|
|
}
|
|
|
|
.index-featured-news::after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
@keyframes line-animation {
|
|
0% { transform: scaleX(0); }
|
|
15% { transform: scaleX(0); }
|
|
20%, 25% { transform: scaleX(1); top: calc(100% - 2px); }
|
|
50% { transform: scaleX(1); top: 0px; }
|
|
70%, 90% { transform: scaleX(0.2); top: 0px; }
|
|
100% { transform: scaleX(0); top: 0px; }
|
|
}
|
|
|
|
@keyframes clip-path-reveal-1 {
|
|
0%, 25% { clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0% 100%); }
|
|
50% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); }
|
|
}
|
|
|
|
|
|
#events-legend {
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* event list */
|
|
.events {
|
|
.tr-muted {
|
|
color: var(--pico-muted-color);
|
|
}
|
|
|
|
tr {
|
|
background: linear-gradient(100deg, color-mix(in srgb, var(--pico-background-color) 95%, var(--pico-contrast)), 25%, var(--pico-background-color));
|
|
|
|
td {
|
|
background: unset;
|
|
border-bottom: none;
|
|
}
|
|
}
|
|
|
|
tr.babelsberger-lesesalon {
|
|
background: linear-gradient(100deg, var(--tr-events-color-bls), 25%, var(--pico-background-color));
|
|
}
|
|
|
|
tr.andere-welten {
|
|
background: linear-gradient(100deg, var(--tr-events-color-paw), 25%, var(--pico-background-color));
|
|
}
|
|
|
|
.event-info {
|
|
vertical-align: top;
|
|
max-width: 240px;
|
|
}
|
|
|
|
}
|
|
|
|
#content-body .event-detail {
|
|
height: 100%;
|
|
vertical-align: top;
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
justify-content: space-between;
|
|
align-items: stretch;
|
|
gap: var(--pico-block-spacing-horizontal);
|
|
|
|
|
|
img.event-flyer {
|
|
max-height: calc(var(--tr-card-height) * .666);
|
|
max-width: calc(var(--tr-smallest-width) * .666);
|
|
min-width: unset;
|
|
}
|
|
}
|
|
|
|
span.babelsberger-lesesalon {
|
|
background: linear-gradient(100deg, color-mix(in srgb, var(--tr-events-color-bls) 75%, transparent), 75%, var(--pico-background-color));
|
|
}
|
|
|
|
span.andere-welten {
|
|
background: linear-gradient(100deg, color-mix(in srgb, var(--tr-events-color-paw) 75%, transparent), 75%, var(--pico-background-color));
|
|
}
|
|
|
|
|
|
/* flex settings for layout of cards */
|
|
.cards {
|
|
display: flex;
|
|
flex-flow: row wrap;
|
|
list-style-type: none;
|
|
padding-left: inherit;
|
|
column-gap: var(--pico-block-spacing-horizontal);
|
|
}
|
|
|
|
/* flexitem settings for cards, flex settings for single card */
|
|
.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);
|
|
}
|
|
|
|
/* flexitem settings for single card */
|
|
.card-header {
|
|
flex: 0 0 3.5lh;
|
|
|
|
/* Use overflow on card heading if it's longer than two lines of text */
|
|
h3 {
|
|
color: var(--pico-primary);
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
margin-bottom: auto;
|
|
}
|
|
}
|
|
|
|
article:not(:has(> form:first-child)) > header.card-header {
|
|
padding: calc(var(--pico-block-spacing-vertical) * 0.66) calc(var(--pico-block-spacing-horizontal) * 0.8); /* a bit of a hack to make sure "Schwarzspeicher" fits on one line */
|
|
}
|
|
|
|
.card-body img {
|
|
height: var(--tr-card-height);
|
|
object-fit: contain;
|
|
}
|
|
|
|
.card-image img {
|
|
display: block;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/* settings for articles */
|
|
#content-body, #content-body {
|
|
overflow: hidden;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
flex-flow: row wrap-reverse;
|
|
|
|
.body-column-text {
|
|
flex: 0 0 calc(50% - var(--pico-block-spacing-horizontal));
|
|
min-width: var(--tr-smallest-width);
|
|
margin-bottom: var(--pico-block-spacing-vertical);
|
|
}
|
|
|
|
.body-column-img {
|
|
flex: 0 0 calc(50% - var(--pico-block-spacing-horizontal));
|
|
min-width: var(--tr-smallest-width);
|
|
margin-bottom: var(--pico-block-spacing-vertical);
|
|
|
|
display: flex;
|
|
flex-flow: column nowrap;
|
|
justify-content: space-between;
|
|
|
|
}
|
|
|
|
h2 {
|
|
margin-top: var(--pico-block-spacing-vertical);
|
|
--pico-font-size: 1.25rem;
|
|
}
|
|
|
|
h3 {
|
|
--pico-font-size: 1.125rem;
|
|
margin-top: var(--pico-typography-spacing-vertical);
|
|
}
|
|
|
|
h4 {
|
|
--pico-font-size: 1rem;
|
|
margin-top: var(--pico-typography-spacing-vertical);
|
|
}
|
|
|
|
blockquote {
|
|
margin-top: 0px;
|
|
padding-top: 0px;
|
|
margin-bottom: 0px;
|
|
padding-bottom: 0px;
|
|
}
|
|
|
|
img {
|
|
max-height: calc(var(--tr-card-height) * 2);
|
|
min-width: var(--tr-smallest-width);
|
|
max-width: 100%;
|
|
object-fit: contain;
|
|
display: block;
|
|
margin: auto;
|
|
}
|
|
|
|
/* h2:has(+ .article-stats) {
|
|
margin-top: var(--pico-block-spacing-vertical);
|
|
}
|
|
*/
|
|
.article-stats {
|
|
padding-left: 0;
|
|
|
|
li {
|
|
list-style: none;
|
|
|
|
ul {
|
|
margin-top: calc(var(--pico-typography-spacing-vertical) * 0.25);
|
|
}
|
|
}
|
|
|
|
li:has(+li>ul) {
|
|
margin-bottom: var(--pico-typography-spacing-vertical);
|
|
}
|
|
}
|
|
|
|
.article-tags {
|
|
padding-left: var(--pico-block-spacing-horizontal);
|
|
margin-bottom: 0;
|
|
|
|
li {
|
|
list-style: disc;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
.tag-image img {
|
|
height: var(--tr-card-height);
|
|
}
|
|
|
|
|
|
/* settings for slide shows on wide cards */
|
|
/* see https://www.smashingmagazine.com/2012/04/pure-css3-cycling-slideshow/ */
|
|
.wcard, .tag-entry {
|
|
display: flex;
|
|
flex-flow: wrap;
|
|
column-gap: calc(var(--pico-nav-element-spacing-horizontal) * 2);
|
|
|
|
.wcard-gallery, .tag-content, .news-item {
|
|
flex: 1 0 calc((100% - (2 * var(--pico-nav-element-spacing-horizontal))) * 0.618);
|
|
min-width: 300px;
|
|
}
|
|
|
|
.wcard-title, .tag-image {
|
|
flex: 1 0 calc((100% - (2 * var(--pico-nav-element-spacing-horizontal))) * 0.382);
|
|
min-width: 185px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
|
|
.tag-content {
|
|
flex-direction: column;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.wcard-gallery {
|
|
height: var(--tr-card-height);
|
|
position: relative;
|
|
overflow: visible;
|
|
|
|
.wcard-gallery-mask {
|
|
height: var(--tr-card-height);
|
|
overflow: hidden;
|
|
}
|
|
|
|
ul {
|
|
margin: 0;
|
|
padding: 0;
|
|
position: relative;
|
|
}
|
|
|
|
li.wcard-image {
|
|
position: absolute;
|
|
list-style: none;
|
|
height: var(--tr-card-height);
|
|
width: 100%;
|
|
animation: image-slide 20s ease-in-out infinite;
|
|
left: -100%;
|
|
opacity: 0;
|
|
|
|
a {
|
|
display: block;
|
|
position: absolute;
|
|
overflow-y: visible;
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
img {
|
|
bottom: 0%;
|
|
width: 100%;
|
|
position: relative;
|
|
}
|
|
|
|
.wcard-tooltip {
|
|
background: rgba(0, 0, 0, 0.7);
|
|
max-width: 80%;
|
|
position: absolute;
|
|
top: 20px;
|
|
left: 20px;
|
|
transition: top 0.3s ease-in-out;
|
|
opacity: 0;
|
|
|
|
p {
|
|
color: var(--pico-tooltip-color);
|
|
font-size: var(--pico-font-size);
|
|
padding: var(--pico-nav-element-spacing-horizontal);
|
|
margin: 0;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
li.wcard-image:hover .wcard-tooltip {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes image-slide {
|
|
0%,
|
|
31% {
|
|
left: -100%;
|
|
opacity: 0;
|
|
}
|
|
|
|
5%,
|
|
25% {
|
|
left: 0px;
|
|
opacity: 1;
|
|
}
|
|
|
|
30% {
|
|
left: 100%;
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
#leave-empty {
|
|
display: none;
|
|
}
|
|
|
|
img.impr {
|
|
height: 1.2lh;
|
|
}
|
|
|
|
.content-footer {
|
|
font-size: calc(var(--pico-font-size) * .7);
|
|
|
|
a {
|
|
color: var(--pico-text-color);
|
|
}
|
|
}
|
|
|
|
.muted {
|
|
--pico-color: var(--pico-muted-color);
|
|
}
|
|
|
|
.heart {
|
|
color: var(--tr-accent-color);
|
|
}
|