From 9a30f9e304a854dac1d09892533bbb2a9b3b8515 Mon Sep 17 00:00:00 2001 From: Dogfather Date: Mon, 21 Sep 2026 14:11:04 +0200 Subject: [PATCH] Beim Antworten war das Schreibfeld einen Buchstaben breit Filipes Bildschirmfoto: Die Antwortleiste nimmt die ganze Breite, und daneben steht ein Schreibfeld, in dem der Text senkrecht laeuft -- "defi / niti / v / hah / a". DIE ABSICHT STAND DA, DIE REGEL NICHT. `.chat__eingabe` ist eine Reihe OHNE Umbruch, und die Antwortleiste ist darin ein gleichberechtigtes Element -- sie nimmt ihren Platz NEBEN dem Schreibfeld. Das `margin-bottom: 8px` an der Leiste sagt seit jeher, dass sie darueber gehoert; durchgesetzt wurde es nie. Dazu stand am Schreibfeld `min-width: 0`. Das ist woertlich die Erlaubnis, auf nichts zu schrumpfen -- und genau das hat es getan. BEHOBEN MIT EINER REGEL, NICHT MIT EINER ZAHL: Die Zeile darf jetzt umbrechen, die Antwortleiste nimmt sich mit `flex-basis: 100%` immer die ganze Zeile, und das Schreibfeld hat eine Untergrenze von 8rem. Bricht es darunter, bricht lieber die Zeile um, als dass das Feld unbenutzbar wird. Gemessen an der schmalsten Breite, die das Haus kennt: 320 px: Schreibfeld 166 px, Antwortleiste 670 px (eigene Zeile) 430 px: Schreibfeld 216 px Vorher: rund 30 px. pruef-chat-optik prueft das jetzt mit -- und nicht nur die Breite des Feldes, sondern auch, dass die Leiste wirklich eine eigene Zeile nimmt. Ohne die zweite Zeile waere die erste nur zufaellig gruen, solange der zitierte Text kurz genug ist. Co-Authored-By: Claude Opus 5 --- server/pruef-chat-optik.mjs | 66 +++++++++++++++++++++++++++++++++ workspace/anruf-probe.html | 8 ++-- workspace/app.webmanifest | 8 ++-- workspace/assets/css/chat.css | 25 ++++++++++++- workspace/aufgaben.html | 30 +++++++-------- workspace/automation.html | 30 +++++++-------- workspace/befinden.html | 28 +++++++------- workspace/bereich.html | 38 +++++++++---------- workspace/bewerben.html | 34 ++++++++--------- workspace/bewerbungen.html | 32 ++++++++-------- workspace/calls.html | 32 ++++++++-------- workspace/chat.html | 34 ++++++++--------- workspace/content.html | 32 ++++++++-------- workspace/crew-index.html | 10 ++--- workspace/crew.webmanifest | 8 ++-- workspace/dateien.html | 32 ++++++++-------- workspace/entwicklung.html | 28 +++++++------- workspace/hilfe.html | 26 ++++++------- workspace/index.html | 8 ++-- workspace/kalender.html | 32 ++++++++-------- workspace/leistung.html | 30 +++++++-------- workspace/personen.html | 30 +++++++-------- workspace/profil.html | 34 ++++++++--------- workspace/rechte.html | 28 +++++++------- workspace/report.html | 32 ++++++++-------- workspace/scouting.html | 30 +++++++-------- workspace/start.html | 28 +++++++------- workspace/startcheck.html | 32 ++++++++-------- workspace/steckbrief.html | 34 ++++++++--------- workspace/talente.html | 30 +++++++-------- workspace/team.html | 28 +++++++------- workspace/teamlage.html | 28 +++++++------- workspace/teilen.html | 26 ++++++------- workspace/treff-moderation.html | 28 +++++++------- workspace/treff-regeln.html | 28 +++++++------- workspace/uebersicht.html | 30 +++++++-------- workspace/unsere-seiten.html | 24 ++++++------ workspace/werdegang.html | 28 +++++++------- workspace/wissen.html | 32 ++++++++-------- 39 files changed, 595 insertions(+), 506 deletions(-) diff --git a/server/pruef-chat-optik.mjs b/server/pruef-chat-optik.mjs index 9764e164..24ceb6ea 100644 --- a/server/pruef-chat-optik.mjs +++ b/server/pruef-chat-optik.mjs @@ -591,6 +591,72 @@ melde("\n=== Man sieht, mit wem man schreibt ==="); await luna.ctx.close(); await pat.ctx.close(); +/* ======================================================================= + DAS SCHREIBFELD BLEIBT BREIT GENUG -- AUCH BEIM ANTWORTEN + ======================================================================= + + Filipes Bildschirmfoto vom 21.09.2026: Die Antwortleiste nimmt die + ganze Breite, und daneben steht ein Schreibfeld von der Breite eines + einzigen Buchstabens. Der Text laeuft senkrecht: "defi / niti / v / + hah / a". + + URSACHE: `.chat__eingabe` ist eine Reihe OHNE Umbruch, und die + Antwortleiste ist darin ein gleichberechtigtes Element. Das + Schreibfeld hatte `min-width: 0` -- also woertlich die Erlaubnis, + auf nichts zu schrumpfen. + + Das `margin-bottom` an der Leiste sagte seit jeher, dass sie + DARUEBER gehoert. Durchgesetzt wurde es nie. Wieder ein Fall von: + Die Absicht stand da, die Regel nicht. + + GEMESSEN WIRD AN DER SCHMALSTEN BREITE, die das Haus kennt -- wenn + es dort passt, passt es ueberall. + ======================================================================= */ +melde("\n=== Antworten quetscht das Schreibfeld nicht ==="); +{ + for (const breite of [320, 430]) { + const p2 = await alsRolle("admin", "CODE-DOGI-0001", "chat.html?raum=treff", breite); + try { + await p2.seite.waitForTimeout(900); + const mass = await p2.seite.evaluate(() => { + const l = document.getElementById("antwort-leiste"); + const t = document.getElementById("text"); + if (!l || !t) return null; + /* Die Leiste wird eingeblendet wie beim Antworten -- mit einem + langen Text, denn genau der hat sie breit gemacht. */ + l.hidden = false; + const von = document.getElementById("antwort-von"); + const txt = document.getElementById("antwort-text"); + if (von) von.textContent = "Diene"; + if (txt) { + txt.textContent = "Ohaaa, da bin ich voll dabei. Das waere ein " + + "Unterschied wie Tag und Nacht, wirklich jedes Mal wieder."; + } + const r = t.getBoundingClientRect(); + const rl = l.getBoundingClientRect(); + return { feld: Math.round(r.width), leiste: Math.round(rl.width), + fenster: window.innerWidth }; + }); + ok(!!mass, `${breite} px: Schreibfeld und Antwortleiste sind da`); + if (mass) { + /* 8rem = 128 px ist die Untergrenze aus der Stilvorlage. Ein + Feld darunter ist kein Schreibfeld mehr, sondern ein Spalt. */ + ok(mass.feld >= 128, + `${breite} px: das Schreibfeld ist ${mass.feld} px breit (mindestens 128)`); + /* UND DIE LEISTE HAT IHRE EIGENE ZEILE. Waere sie schmaler als + das Fenster, saesse sie wieder neben dem Feld -- dann waere + die Zeile darueber nur zufaellig gruen, weil der Text kurz + genug war. */ + ok(mass.leiste > mass.feld, + `${breite} px: die Antwortleiste nimmt die ganze Zeile ` + + `(${mass.leiste} gegen ${mass.feld} px)`); + } + } finally { + await p2.ctx.close(); + } + } +} + await browser.close(); try { rmSync(ordner, { recursive: true, force: true }); } catch { /* egal */ } diff --git a/workspace/anruf-probe.html b/workspace/anruf-probe.html index b460c072..2292549d 100644 --- a/workspace/anruf-probe.html +++ b/workspace/anruf-probe.html @@ -16,15 +16,15 @@ verdeckt. Gefunden hat es pruef-struktur. Richtig sind `gate.css` (die Farbwerte des Hauses) und `haus.css`. --> - - + + - +