Files
2608_BuB/assets/styles.css
T
André Fiedler 5647b4aba7
showcase/deploy Live at https://showcase.andrefiedler.de/2608_BuB/
Add mobile tape shadows and center bank heading
2026-09-07 19:03:47 +02:00

453 lines
7.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@font-face {
font-family: Roboto;
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url("./fonts/roboto-latin.woff2") format("woff2");
}
@font-face {
font-family: Roboto;
font-style: italic;
font-weight: 400 700;
font-display: swap;
src: url("./fonts/roboto-italic-latin.woff2") format("woff2");
}
:root {
color-scheme: dark;
--color-burgundy: #982249;
--color-white: #fff;
--color-cream: #faf5eb;
--color-sand: #e5cd9c;
--color-announcement: #f2e6cc;
--color-focus: #ffc300;
/* One design unit is one point on the supplied 1200 × 900 layout. */
--unit: 0.0833333333vw;
--font-body: Roboto, system-ui, sans-serif;
--desktop-backdrop: image-set(url("./background-1200.webp") 1x, url("./background-2400.webp") 2x);
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
min-inline-size: 280px;
background: var(--color-burgundy);
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
body {
position: relative;
isolation: isolate;
margin: 0;
color: var(--color-white);
font-family: var(--font-body);
font-synthesis: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body::before {
position: fixed;
z-index: -1;
inset: 0 0 auto;
min-block-size: 100svh;
block-size: calc(900 * var(--unit));
background-image: var(--desktop-backdrop);
background-size: 100% auto;
background-repeat: no-repeat;
background-position: center top;
content: "";
}
.page {
display: flex;
flex-direction: column;
align-items: center;
min-block-size: max(100svh, calc(900 * var(--unit)));
padding: calc(142 * var(--unit)) calc(24 * var(--unit)) calc(56 * var(--unit));
text-align: center;
}
h1,
h2,
p,
dl,
dd {
margin: 0;
}
img {
display: block;
max-inline-size: 100%;
block-size: auto;
}
a {
color: inherit;
text-decoration: none;
text-underline-offset: 0.2em;
}
a:hover,
.copy-iban:hover {
text-decoration: underline;
}
a:focus-visible,
button:focus-visible {
outline: 2px solid var(--color-focus);
outline-offset: 4px;
border-radius: 2px;
}
strong {
font-weight: 700;
}
.logo {
inline-size: calc(184.76 * var(--unit));
block-size: calc(146.67 * var(--unit));
}
.announcement {
margin-block-start: calc(31.4 * var(--unit));
color: var(--color-cream);
font-style: italic;
font-size: calc(15 * var(--unit));
line-height: calc(22 * var(--unit));
letter-spacing: 0.005em;
}
.announcement h1 {
margin-block-end: calc(8.64 * var(--unit));
color: var(--color-announcement);
font-size: calc(19 * var(--unit));
font-weight: 700;
line-height: calc(23 * var(--unit));
letter-spacing: 0.01em;
}
.design-line {
display: block;
}
.support {
margin-block-start: calc(18.25 * var(--unit));
color: var(--color-cream);
font-size: calc(15 * var(--unit));
line-height: calc(22 * var(--unit));
font-style: italic;
letter-spacing: 0.005em;
}
.support-title {
inline-size: calc(454.02 * var(--unit));
margin-inline: auto;
transform: translateX(calc(-9.22 * var(--unit)));
}
.support-title img {
inline-size: 100%;
aspect-ratio: 454.02 / 47.9;
}
.support-options {
margin-block-start: calc(5.63 * var(--unit));
font-weight: 700;
}
.thanks {
margin-block-start: calc(9 * var(--unit));
}
.contact {
margin-block-start: calc(22.63 * var(--unit));
font-size: calc(10 * var(--unit));
line-height: calc(14 * var(--unit));
letter-spacing: 0.005em;
}
.contact h2,
.bank h2 {
color: var(--color-sand);
font-size: inherit;
font-weight: 700;
letter-spacing: 0.015em;
}
address {
font-style: normal;
}
.contact-person,
.contact-channels {
margin-block-start: calc(12 * var(--unit));
}
.phone-line,
.email-line {
display: block;
}
.instagram {
margin-block-start: calc(10 * var(--unit));
}
.label {
color: var(--color-sand);
}
.donations {
display: grid;
grid-template-columns: calc(185 * var(--unit)) calc(119 * var(--unit));
gap: calc(24 * var(--unit));
margin-block-start: calc(19.92 * var(--unit));
text-align: start;
font-size: calc(10 * var(--unit));
line-height: calc(14 * var(--unit));
letter-spacing: 0.01em;
}
.bank {
padding-block-start: calc(14.24 * var(--unit));
}
.account-holder {
margin-block-start: calc(12 * var(--unit));
}
.account-holder strong {
font-weight: 600;
}
.account-details {
margin-block-start: calc(14 * var(--unit));
}
.account-details > div {
display: grid;
grid-template-columns: calc(29 * var(--unit)) 1fr;
}
.copy-iban {
display: inline;
margin: 0;
border: 0;
padding: 0;
background: transparent;
color: inherit;
font: inherit;
letter-spacing: inherit;
white-space: nowrap;
cursor: copy;
user-select: all;
}
.qr-link {
display: block;
inline-size: calc(85.54 * var(--unit));
}
.paypal-address {
display: inline-block;
margin-block-start: calc(10.86 * var(--unit));
white-space: nowrap;
}
.visually-hidden {
position: absolute;
inline-size: 1px;
block-size: 1px;
margin: -1px;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}
.skip-link {
position: absolute;
z-index: 2;
inset-block-start: 1rem;
inset-inline-start: 1rem;
padding: 0.75rem 1rem;
background: var(--color-burgundy);
transform: translateY(-200%);
}
.skip-link:focus {
transform: none;
}
@media (width > 1024px) {
body::after {
position: fixed;
z-index: 1;
inset: 0 0 auto;
block-size: calc(270 * var(--unit));
background-image: var(--desktop-backdrop);
background-size: 100% auto;
background-repeat: no-repeat;
/* Include the soft shadow above content without darkening the backdrop twice. */
mask-image: url("./construction-tape-mask.svg");
mask-mode: alpha;
mask-size: 100% auto;
mask-repeat: no-repeat;
pointer-events: none;
content: "";
}
}
@media (width <= 1024px) {
:root {
--unit: 1px;
}
body {
isolation: auto;
background-image: url("./construction-tape.svg?v=561024d6e6b4"), url("./background-mobile.webp");
background-position: center top;
background-size: 1200px 270px, cover;
background-repeat: no-repeat;
}
/* Mobile decoration is a normal background, with no layers in the touch path. */
body::before,
body::after {
content: none;
}
.page {
min-block-size: 100svh;
padding: 154px 24px 48px;
}
.logo {
inline-size: 185px;
block-size: auto;
}
.announcement,
.support {
max-inline-size: 620px;
inline-size: 100%;
font-size: 16px;
line-height: 1.5;
}
.announcement {
margin-block-start: 30px;
}
.announcement h1 {
margin-block-end: 16px;
font-size: 21px;
line-height: 1.3;
}
.support {
margin-block-start: 28px;
}
.support-title {
max-inline-size: 100%;
transform: none;
}
.support-options {
margin-block-start: 12px;
}
.thanks {
margin-block-start: 14px;
}
.contact {
margin-block-start: 30px;
font-size: 14px;
line-height: 1.6;
}
.contact-channels a,
.instagram a {
display: inline-block;
padding-block: 4px;
}
.donations {
grid-template-columns: minmax(0, 260px) 170px;
gap: 28px;
margin-block-start: 30px;
font-size: 14px;
line-height: 1.5;
}
.account-details > div {
grid-template-columns: 40px 1fr;
}
.qr-link {
inline-size: 124px;
}
.copy-iban {
padding-block: 4px;
margin-block: -4px;
}
}
@media (width <= 600px) {
.page {
padding-inline: 20px;
}
.design-line {
display: inline;
}
.mobile-phone {
display: block;
}
.phone-separator {
display: none;
}
.donations {
grid-template-columns: minmax(0, 1fr);
gap: 26px;
inline-size: min(100%, 288px);
}
.bank {
padding-block-start: 0;
}
.bank h2 {
text-align: center;
}
.paypal {
justify-self: center;
text-align: center;
}
.qr-link {
inline-size: 140px;
margin-inline: auto;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
scroll-behavior: auto !important;
}
}