diff --git a/workspace/assets/css/calls.css b/workspace/assets/css/calls.css index be3d7f4b..bbc75312 100644 --- a/workspace/assets/css/calls.css +++ b/workspace/assets/css/calls.css @@ -344,3 +344,132 @@ @media (forced-colors: active) { .call { background: Canvas; box-shadow: none; border: 1px solid CanvasText; } } + + +/* ===================================================================== + DAS BRETT — zwei Spalten statt einer Liste (07.09.2026) + + Filipe: "immer noch gleich aufgestellt, man kann sogar bestimmt zwei + kategorien neben einander legen ... wenn ich sage komplett aendern + dan komplett aendern." + + Er hatte recht. Beim letzten Mal habe ich nur das Material der Karten + getauscht -- die Aufstellung blieb eine Spalte, in der drei Gruppen + untereinander standen. Und weil "Steht an" siebenundzwanzig Eintraege + hat, lagen die beiden anderen ausserhalb des Bildes: Man SAH die + Aenderung gar nicht, weil man nie so weit kam. + + Jetzt sind die Gruppen eigenstaendige Tafeln in einem Raster. Die + kurze, dringende ("Protokoll fehlt") und das Archiv ("Festgehalten") + liegen NEBEN der langen Liste statt darunter. + + `align-items: start` ist dabei der entscheidende Punkt: Ohne ihn + waeren alle Tafeln so hoch wie die hoechste, und neben der langen + Liste stuenden zwei fast leere Kaesten. So endet jede Tafel dort, wo + ihr Inhalt endet. + + KEINE feste Spaltenzuweisung im Skript. Welche Tafel wo landet, + entscheidet die Breite -- eine im Skript festgeschriebene Spalte waere + eine Zahl, die beim naechsten Fenster falsch ist. + ===================================================================== */ +.call-brett { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); + gap: 16px; + align-items: start; +} +/* Die lange Liste bekommt die erste Spalte und behaelt sie. Ohne diese + Zeile wandert sie je nach Anzahl mal links, mal rechts -- und eine + Oberflaeche, deren Aufbau sich mit dem Inhalt aendert, lernt man nie. */ +.call-brett .gruppe[data-gruppe="anstehend"] { grid-row: span 2; } + +.call-brett .gruppe { + margin: 0; + padding: 4px 14px 14px; + border: 1px solid rgba(150, 186, 220, .12); + border-radius: 4px 18px 18px 4px; + background: + linear-gradient(90deg, + color-mix(in srgb, var(--tafel-ton, var(--akzent)) 16%, transparent) 0%, + color-mix(in srgb, var(--tafel-ton, var(--akzent)) 5%, transparent) 12%, + transparent 34%), + linear-gradient(163deg, + rgba(21, 28, 41, .95) 0%, + rgba(11, 15, 24, .95) 62%, + rgba(8, 11, 18, .95) 100%); + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, .075), + inset 0 -1px 0 rgba(0, 0, 0, .45), + 0 2px 4px -2px rgba(0, 0, 0, .5), + 0 14px 30px -20px rgba(0, 0, 0, .88); + overflow: hidden; + position: relative; +} +/* Jede Tafel traegt die Farbe ihres Zustands in einer Schiene links -- + dieselbe Sprache wie ueberall: Bernstein wartet, Blau steht an, Gruen + ist erledigt. */ +.call-brett .gruppe[data-gruppe="offen"] { --tafel-ton: #f0c48a; } +.call-brett .gruppe[data-gruppe="anstehend"] { --tafel-ton: var(--akzent); } +.call-brett .gruppe[data-gruppe="erledigt"] { --tafel-ton: #79d1a2; } +.call-brett .gruppe::before { + content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; + background: linear-gradient(180deg, + color-mix(in srgb, var(--tafel-ton) 85%, transparent) 0%, + color-mix(in srgb, var(--tafel-ton) 35%, transparent) 100%); +} + +/* Der Kopf ist der Schalter --