Filipe, 28.09.2026: "ich werde die drei varianten schicken fuer niedrige spenden. mittlere und hohe spenden. alle drei varianten will ich drauf so dass ich sie aussuchen kann wie ich will. aber pass sie sofort diesen 3 kategorien an." DIE ZUORDNUNG IST GELESEN, NICHT GERATEN In allen drei Saetzen geht es nacktes Metall -> Steinkranz -> Vollbesatz; Filipes Dateinummern (01/02/03) und die Uhrzeiten seiner Entwuerfe laufen genau mit. Klassik: Palladium, Gold mit Saphir, Diamant. Amethyst: Stahl, Rosegold, Vollbesatz. Neon: Chrom auf Schwarz, Steinkranz, Vollbesatz. AUS 25 MB WURDEN 443 KB Je Bild 320 px WebP statt 1254 px PNG, Faktor 58. Die Zahl ist gemessen: Groesster Fall in der Seite 110 px (Karte, hoechste Stufe), auf der OBS-Tafel 189 px, bei doppelter Bildschirmdichte rund 220. Drei Megabyte fuer ein 24-Pixel-Zeichen waeren ein Ladebalken mitten in der Sendung -- wer auf dem Handy zusieht, bekaeme die Karte, wenn sie schon wieder weg ist. Die Originale liegen neben den Datenbanksicherungen, nicht im Repo: 26 MB, die bei jedem Klon mitkaemen und die niemand ausliefert. WELCHE MUENZE WANN -- ABGELEITET STATT GEPFLEGT "Niedrig, mittel, hoch" gibt es im Haus schon: die Stufenleiter. Zwei eigene Grenzen daneben waeren eine zweite Antwort auf dieselbe Frage, und spaetestens beim Verschieben einer Stufe zeigte die Muenze etwas anderes an als der Name auf der Karte. Die Leiter wird deshalb in DRITTEL geteilt -- bei den drei Werksstufen genau eine je Muenze, bei sechs zwei je Muenze, bei einer einzigen ueberall die mittlere. DIE MUENZE STEHT AUCH GROSS AUF DER KARTE Sonst haette Filipe neun Bilder fuer ein 24-Pixel-Zeichen gezeichnet. "dogen" ist dafuer eine neue Vorlage neben Herz, Welle und Krone -- und die drei Werksstufen bekommen sie EINMAL zugeteilt, nur wo noch die Werksvorlage steht und kein eigenes Bild hochgeladen ist. Wer danach ein Herz zurueckstellt, findet es morgen nicht wieder als Muenze vor: Eine Einstellung, die sich gegen den Benutzer durchsetzt, wird abgeschafft. Und steht sie gross da, nimmt das Stilblatt die kleine neben der Zahl weg -- dieselbe Muenze in zwei Groessen auf einer Karte sieht aus wie ein Versehen. AM BILDSCHIRMFOTO NACHGEBESSERT Bei 0,92em blieb an den Spendenknoepfen ein 13,5-Pixel-Fleck uebrig; bei einem flachen Symbol reicht das, bei einer Muenze mit Pfote, Schriftzug und Steinen nicht. Jetzt 1,05em ueberall und 1,6em auf den Knoepfen. In der Auswahl sahen "Amethyst" und "Neon" bei 40 px praktisch gleich aus -- und genau sie auseinanderzuhalten ist der Zweck dieser Liste. Jetzt 56/64/72 px. Und was gewaehlt ist, steht als WORT da: Neben neun glaenzenden Muenzen geht ein ruhiger Rahmen unter, und wer Farben schlecht unterscheidet, sieht ihn gar nicht. EIN SATZWECHSEL ERREICHT ALLE Die Karten trugen ihren Satz immer selbst mit und waren richtig. Die Muenzen an den Spendenknoepfen und beim eigenen Stand aber nicht -- die holt eine Seite nur bei einer Spende neu. Eine Einstellung, die nur dort ankommt, wo sie gemacht wurde, ist keine Einstellung des Hauses. ZWEI BEFUNDE GEGEN DIE PRUEFUNG SELBST 1. Sie verlangte "erste Grenze ECHT kleiner als zweite". Bei genau zwei Stufen fallen beide absichtlich zusammen -- sie meldete einen Fehler, wo das Verhalten richtig ist. 2. Sie prueft die Muenzverteilung jetzt auf einer FRISCHEN Datenbank. Vorher lief sie auf der, die ein frueherer Abschnitt umgebaut hatte: Eine Pruefung, die den eigenen Kollateralschaden misst, misst sich selbst. Dazu eine Gegenprobe, dass eine selbst gewaehlte Vorlage NICHT ueberschrieben wird. UND DREI AN DER MESSUNG Sie suchte noch die gezeichnete Muenze (svg), wo jetzt ein Bild liegt. Umgestellt nicht auf "ist ein img da", sondern auf `naturalWidth > 0` -- ob es etwas ZEIGT. Ein img, das 404 antwortet, steht genauso im Dokument wie eines, das laedt; auf dem Bildschirm ist an seiner Stelle nichts. Und beim Satzwechsel las sie die vorige Karte, die noch acht Sekunden stand: Die Karten laufen in einer Schlange, also wird auf das Merkmal gewartet, das nur die neue hat. pruef-spenden 167/0 (vorher 136) - pruef-reaktion 321/0 - pruef-css-klassen ok - pruef-tippziele 11/0 - mess-reaktion und mess-buehne ohne Beanstandung Co-Authored-By: Claude Opus 5 <[email protected]>
194 lines
7.7 KiB
CSS
194 lines
7.7 KiB
CSS
/* =====================================================================
|
|
DIE SPENDENKARTE (28.09.2026)
|
|
|
|
Eigenes Stilblatt, weil dieselbe Karte an zwei Orten laeuft: in der
|
|
Reaction-Seite und -- spaeter -- als eigene Seite fuer OBS und
|
|
TikTok Studio. Zweimal gestaltet hiesse: Bei der naechsten
|
|
Aenderung sieht sie an einem der beiden Orte anders aus, und man
|
|
merkt es erst im Livestream.
|
|
|
|
SIE IST GROSS, KURZ UND WEG. Wer etwas gibt, soll es sehen; wer
|
|
zusieht, soll das Video nicht verlieren. Deshalb kommt sie von der
|
|
Seite, steht ein paar Sekunden am Rand und geht wieder -- sie
|
|
deckt nie die Mitte zu.
|
|
===================================================================== */
|
|
.spendentafel {
|
|
position: absolute;
|
|
left: 0; right: 0; bottom: 84px;
|
|
z-index: 45;
|
|
display: grid; gap: 10px;
|
|
justify-items: start;
|
|
padding: 0 18px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* ==== DIE GROESSE ==================================================
|
|
|
|
Filipe: „auch so dass ich das anders gestalten kann oder die
|
|
größe verändern kann."
|
|
|
|
EINE SCHRIFTGRÖSSE UND NICHT ZEHN EINZELWERTE. Die Karte setzt
|
|
ihre eigene Grundgröße aus `--sp-gross`, und alles darin rechnet
|
|
in `em` — Abstände, Rundungen, das Zeichen, jede Schrift. Ein
|
|
Faktor, und die ganze Karte wächst gleichmäßig mit.
|
|
|
|
Der naheliegende Weg wäre `transform: scale()` gewesen. Der geht
|
|
hier nicht: Die Karte kommt mit `transform: translateX()` herein,
|
|
und zwei `transform` an derselben Stelle schließen einander aus —
|
|
entweder die Größe oder die Bewegung. Außerdem skaliert `scale()`
|
|
auch die Schriftglättung mit, und Text wird dabei sichtbar
|
|
matschig. Eine Schriftgröße tut das nicht. */
|
|
.spendenkarte {
|
|
--sp-farbe: #8ec9ff;
|
|
--sp-gross: 1;
|
|
font-size: calc(1rem * var(--sp-gross));
|
|
display: flex; align-items: center; gap: .875em;
|
|
max-width: min(30em, 78%);
|
|
padding: .8125em 1.25em .8125em .875em;
|
|
border-radius: 1.125em;
|
|
background:
|
|
linear-gradient(90deg,
|
|
color-mix(in srgb, var(--sp-farbe) 26%, rgba(10, 8, 16, .92)),
|
|
rgba(10, 8, 16, .92) 58%);
|
|
border: 1px solid color-mix(in srgb, var(--sp-farbe) 55%, transparent);
|
|
box-shadow:
|
|
0 0 40px -14px var(--sp-farbe),
|
|
0 24px 50px -22px #000,
|
|
inset 0 1px 0 color-mix(in srgb, var(--sp-farbe) 40%, transparent);
|
|
backdrop-filter: blur(14px) saturate(1.25);
|
|
-webkit-backdrop-filter: blur(14px) saturate(1.25);
|
|
/* Die Karte kommt von links herein. `translate` und `opacity`
|
|
rechnet der Browser auf der Grafikkarte -- alles andere
|
|
(Breite, Rand, Abstand) laesst das Bild ruckeln, und ein
|
|
ruckelnder Dank ist schlimmer als keiner. */
|
|
opacity: 0;
|
|
transform: translateX(-28px) scale(.96);
|
|
transition: opacity .45s ease, transform .45s cubic-bezier(.22, 1, .3, 1);
|
|
}
|
|
.spendenkarte[data-da="ja"] { opacity: 1; transform: none; }
|
|
|
|
.spendenkarte__bild {
|
|
flex: none;
|
|
width: 3.375em; height: 3.375em;
|
|
display: grid; place-items: center;
|
|
}
|
|
.spendenkarte__bild svg { width: 100%; height: 100%; }
|
|
.spendenkarte__bild img {
|
|
width: 100%; height: 100%;
|
|
/* `contain` und nicht `cover`: Ein hochgeladenes Zeichen soll ganz
|
|
zu sehen sein. Wer sein Logo hochlädt, will es nicht beschnitten
|
|
wiederfinden. */
|
|
object-fit: contain;
|
|
border-radius: .625em;
|
|
}
|
|
|
|
.spendenkarte__text { display: grid; gap: 1px; min-width: 0; }
|
|
.spendenkarte__wer {
|
|
font-size: .8em; font-weight: 700;
|
|
letter-spacing: .03em;
|
|
color: color-mix(in srgb, var(--sp-farbe) 30%, #ffffff);
|
|
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
}
|
|
.spendenkarte__betrag {
|
|
font-size: 1.62em; font-weight: 900;
|
|
letter-spacing: -.02em; line-height: 1.05;
|
|
color: #ffffff;
|
|
/* Der Betrag ist das, worum es geht -- er bekommt als Einziges
|
|
einen eigenen Schein. */
|
|
text-shadow: 0 0 22px color-mix(in srgb, var(--sp-farbe) 60%, transparent);
|
|
}
|
|
/* ==== ZAHL, ZEICHEN UND WORT GEHOEREN ZUSAMMEN =====================
|
|
|
|
Filipe: „man soll nie die summe sehen sondern die dogen auch mit
|
|
dem symbol."
|
|
|
|
Das Stueck steht auf der Karte, in den Listen im Pult, an den
|
|
Knoepfen und beim eigenen Stand -- und ueberall gleich. Es rechnet
|
|
in `em`, damit es die Groesse seiner Umgebung annimmt: auf der
|
|
Karte gross, in einer Liste klein, ohne eine einzige zweite Zahl.
|
|
|
|
`baseline` UND NICHT `center`: Das Zeichen sitzt sonst optisch zu
|
|
hoch neben einer Ziffer mit Oberlaenge. */
|
|
.dogen {
|
|
display: inline-flex; align-items: baseline; gap: .28em;
|
|
white-space: nowrap;
|
|
}
|
|
.dogen__zeichen {
|
|
/* 1,05em und nicht 0,92: Seit dem 28.09. ist das Zeichen eine
|
|
GEZEICHNETE MUENZE mit Pfote, Schriftzug und Steinen -- kein
|
|
flaches Symbol mehr. Bei 0,92em neben einer kleinen Zahl war
|
|
davon ein Fleck uebrig. Gemessen am Bildschirmfoto: 13,5 px an
|
|
den Spendenknoepfen. Ein Zeichen, das man nicht erkennt, ist
|
|
keins. */
|
|
width: 1.05em; height: 1.05em;
|
|
flex: none;
|
|
/* Selbst ausrichten, weil `baseline` ein Bild an seine Unterkante
|
|
setzt und es damit zu tief haengt. */
|
|
align-self: center;
|
|
object-fit: contain;
|
|
}
|
|
.dogen__zahl { font-variant-numeric: tabular-nums; }
|
|
/* Das Wort steht kleiner und ruhiger daneben -- die ZAHL ist die
|
|
Aussage, „Dogen" ist nur die Einheit. Ein gleich grosses Wort
|
|
nimmt der Zahl die Haelfte ihrer Wirkung. */
|
|
.dogen__wort {
|
|
/* ==== `max()` UND NICHT NUR `em` ==============================
|
|
0,52em ist neben der grossen Zahl auf der Karte genau richtig
|
|
(rund 13 px) -- in einer Liste im Pult waeren daraus 8 px
|
|
geworden. Das Haus hat eine Untergrenze von 11,5 px, und sie
|
|
ist kein Geschmack: Darunter liest es niemand mehr, und
|
|
`pruef-css-klassen` misst es.
|
|
|
|
`max()` loest beides mit einer Regel statt mit zwei: Auf der
|
|
Karte gewinnt das `em` und waechst mit, in einer Liste gewinnt
|
|
der feste Wert. Zwei Regeln fuer dieselbe Frage waeren wieder
|
|
die Gelegenheit, dass eine davon irgendwo falsch gewinnt. */
|
|
font-size: max(.72rem, .52em);
|
|
font-weight: 800;
|
|
letter-spacing: .1em; text-transform: uppercase;
|
|
opacity: .72;
|
|
}
|
|
/* An den Spendenknoepfen steht das Wort viermal untereinander --
|
|
einmal je Knopf. Das ist kein Zusatz mehr, sondern Rauschen. */
|
|
.dogen--nurzahl .dogen__wort { display: none; }
|
|
|
|
/* ==== DIESELBE MUENZE NICHT ZWEIMAL AUF EINER KARTE ================
|
|
Traegt die Karte die Muenze schon gross (das ist ab dem 28.09. die
|
|
Vorgabe der drei Stufen), dann steht neben der Zahl keine zweite
|
|
in klein. Dieselbe Muenze in zwei Groessen nebeneinander sieht aus
|
|
wie ein Versehen -- und die grosse gewinnt ohnehin.
|
|
Laedt das Bild nicht, nimmt das Programm die Markierung zurueck,
|
|
und die kleine ist wieder da. */
|
|
.spendenkarte[data-muenze="ja"] .dogen__zeichen { display: none; }
|
|
|
|
.spendenkarte__stufe {
|
|
font-size: .72em; font-weight: 800;
|
|
letter-spacing: .12em; text-transform: uppercase;
|
|
color: color-mix(in srgb, var(--sp-farbe) 22%, #ffffff);
|
|
}
|
|
.spendenkarte__gruss {
|
|
margin: .3125em 0 0;
|
|
font-size: .86em; line-height: 1.4;
|
|
color: #e9e6f2;
|
|
/* Hoechstens drei Zeilen. Ein langer Gruss darf das Bild nicht
|
|
zuwachsen -- und wer mehr schreiben will, schreibt in den Chat. */
|
|
display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Wer weniger Bewegung eingestellt hat, bekommt die Karte trotzdem --
|
|
sie steht dann einfach da. Die Aussage ist wichtiger als der Weg. */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.spendenkarte { transition: opacity .2s linear; transform: none; }
|
|
}
|
|
|
|
@media (max-width: 860px) {
|
|
.spendentafel { bottom: 12px; padding: 0 10px; }
|
|
.spendenkarte {
|
|
max-width: 92%;
|
|
gap: .625em; padding: .625em .875em .625em .625em;
|
|
}
|
|
.spendenkarte__bild { width: 2.625em; height: 2.625em; }
|
|
.spendenkarte__betrag { font-size: 1.3em; }
|
|
}
|