Files
dogfather-universe/workspace/support.html
T
DogFatherGitandClaude Opus 5 2b02d88767 Die Regieleiste steht jetzt über dem Saal
Filipe: „ich hätte das gerne oben also nicht in dieser kachel sondern
über der kachel wo die videos laufen werden und das soll extrem
perfektioniert werden."

WARUM DAS MEHR IST ALS EIN UMHÄNGEN
Die Register standen INNERHALB des einklappbaren Teils. Wer die Regie
zuklappte, um mehr Bild zu haben, hatte sie nicht mehr — und genau
dann braucht man sie. Oben ändert sich ihre Aufgabe: aus dem
Inhaltsverzeichnis einer Schublade wird eine Steuerleiste über der
Sendung. Daraus folgen vier Dinge, die vorher nicht nötig waren:

1. EIN REGISTER MACHT DIE ZUGEKLAPPTE REGIE AUF. Vorher wechselte nur
   der Reiter, die Tafel lag im zugeklappten Teil — sichtbar passierte
   nichts. Nur auf, nie zu: Zugemacht wird mit dem Griff. Ein Knopf,
   der beim zweiten Druck das Gegenteil tut, versteckt irgendwann
   etwas, das jemand gerade liest.

2. SIE BRICHT NICHT UM, SIE ROLLT. Sieben Register in zwei Zeilen
   kosten am oberen Rand rund 90 px — und zwar dem Video. Gemessen:
   eine Zeile auf 1440 px wie auf 390 px, dort mit Einrasten und
   weichen Rändern als Auskunft, dass es weitergeht.

3. SIE LÖST EIN, WAS `role="tablist"` VERSPRICHT. Pfeiltasten wandern,
   Pos1/Ende springen, genau ein Register liegt in der Tabulatorfolge.
   Steht die Rolle im Markup und tut das Programm es nicht, sagt ein
   Vorleser etwas an, was nicht stimmt — schlimmer als keine Rolle.
   Gemessen wird das gedrückt, nicht gelesen: fünf Tastendrücke, und
   Fokus, Auswahl und offene Tafel müssen jedes Mal dasselbe sagen.

4. EINE GLEITENDE MARKE zeigt, wo man steht — Glas mit Lichtkante,
   darunter ein roter Streifen zur offenen Tafel. Ist die Regie
   zugeklappt, wird er leise: Der Streifen führt dann nirgendwohin.
   Dazu ein Schild „Regie" links (am Handy weg), damit die sieben
   Wörter am oberen Rand nicht wie eine zweite Navigation aussehen.

DER FEHLER, DER MICH ZWEI ANLÄUFE GEKOSTET HAT
Die Leiste war im Browser 1 px hoch, ihre Register standen 55 px hoch
daneben und ragten über das Video. Ursache: 900 Zeilen weiter unten
stand eine ZWEITE `grid-template-rows` für `.saal` (aus der Zeit, als
der Saal zwei Zeilen hatte). Sie stand später und gewann — die Leiste
landete in der `1fr`-Zeile und bekam null Pixel.

Und fast hätte ich das Falsche repariert: Beim Durchprobieren habe ich
`style.gridTemplateRows` gesetzt — ein Stilattribut schlägt jede Regel
im Stilblatt. Damit „funktionierten" `auto` und `min-content` gleich
gut, weil beide die zweite Regel aushebelten, und es sah nach einem
Unterschied zwischen den beiden aus. Erst nach dem Entfernen der
Doppelung hat die Gegenprobe gezeigt: `auto` tut es genauso. Eine
Probe, die mehr ändert als das, wonach man sucht, beantwortet eine
andere Frage. Es gibt jetzt eine Prüfung, dass genau EINE Regel die
Zeilen des Saals bestimmt.

ZWEI WEITERE FUNDE AUS DER MESSUNG
Am Handy blieben bei offener Regie 131 px für das Bild — ein Streifen.
Mein erster Versuch (62dvh → 52dvh) machte es auf 75 px SCHLECHTER:
Die Ursache lag woanders, die Leiste des Pults bricht dort in vier
Zeilen um und ist rund 200 px hoch, wovon ein Anteil der Fensterhöhe
nichts wissen kann. Mit `min(52dvh, 19rem)` sind es 210 px.

Und die Spendenkarte wurde als „steht aus dem Bild heraus" gemeldet:
413 statt 430 px, links −1. 413 ist genau das 0,96-fache — die Messung
hatte die Karte im Ausblenden erwischt. Sie wartet jetzt auf
`data-da="ja"` und misst nur, was ganz da ist.

GEPRUEFT
pruef-reaktion 280 (vorher 260), 0 Fehler — Abschnitt 18 neu.
mess-reaktion: Rückgabewert 0, kein ACHTUNG; misst die Leiste jetzt
auf 1440 und auf 390 px, samt Tastatur und Aufklappen.
Dazu grün: handy, buehne, struktur, css-klassen, tippziele.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-28 14:13:07 +02:00

144 lines
6.5 KiB
HTML
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.
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<title>Support · Spicy &amp; Dogi</title>
<meta name="robots" content="noindex, nofollow" />
<link rel="manifest" href="/workspace/app.webmanifest" />
<meta name="theme-color" content="#06090f" />
<link rel="icon" type="image/png" href="/assets/img/app-symbole/workspace-32.png?v=202609281412" />
<link rel="apple-touch-icon" href="/assets/img/app-symbole/workspace-180.png?v=202609281412" />
<link rel="stylesheet" href="assets/css/gate.css?v=202609281412" />
<link rel="stylesheet" href="assets/css/start.css?v=202609281412" />
<link rel="stylesheet" href="assets/css/support.css?v=202609281412" />
<link rel="stylesheet" href="assets/css/module.css?v=202609281412" />
<link rel="stylesheet" href="assets/css/haus.css?v=202609281412" />
</head>
<body class="start">
<div class="schleier" aria-hidden="true"></div>
<header class="kopfleiste">
<button type="button" class="zurueck-knopf" id="zurueck" hidden>
<svg class="zurueck-knopf__pfeil" viewBox="0 0 24 24" aria-hidden="true">
<path d="M14.5 5.5 8 12l6.5 6.5" />
</svg>
<span class="zurueck-knopf__text">Zurück</span>
</button>
<p class="marke"><span class="marke__text"><a class="zurueck" href="start.html">Creator&nbsp;Workspace</a> · Support</span></p>
<div class="kopfleiste__rechts">
<span class="wer" id="wer">…</span>
<button type="button" class="abmelden" id="abmelden">Abmelden</button>
</div>
</header>
<!-- `support-seite` (25.09.2026): Filipe wollte fuer diese Kachel
einen eigenen Stil in Babyblau mit Lila. Die Klasse traegt ihn --
alle Regeln dazu haengen daran und gelten damit NUR hier. Ohne
sie muesste man dieselben Farben an dreissig Stellen einzeln
setzen, und die einunddreissigste waere vergessen. -->
<main class="inhalt inhalt--breit support-seite">
<section class="kopf-zeile">
<div>
<p class="marke">Support</p>
<h1 class="titel" id="seiten-titel">Etwas stimmt nicht?</h1>
<p class="unterzeile" id="seiten-unter">
Schreib es hin, häng ein Bild dran, fertig. DogFather und die
rechte Hand kümmern sich darum.
</p>
</div>
</section>
<!-- ==================================================================
ZWEI SEITEN, EINE DATEI (24.09.2026)
Filipe: „bei dogfather und der rechten hand soll die kachel
anders gebaut sein weil die sind die die sich um die probleme
kümmern."
Beide Ansichten stehen hier, und support.js blendet die aus, die
nicht gilt. Zwei getrennte Dateien wären die naheliegende
Aufteilung — und die zweite wäre die, in der ein Umbau vergessen
wird. Dieselbe Entscheidung wie bei hilfe.html.
Was der SERVER liefert, entscheidet das ohnehin: Wer nicht zur
Leitung gehört, bekommt fremde Meldungen gar nicht erst. Das
Ausblenden hier ist Aufräumen, keine Sicherung.
================================================================== -->
<!-- ---------- MELDEN: sehen und benutzen alle --------------------- -->
<section class="s-melden" id="melden-block">
<h2 class="s-titel">Was ist los?</h2>
<form id="melden" novalidate>
<label class="s-feld">
<span class="s-feld__schild">Beschreib es kurz</span>
<textarea id="text" rows="4" maxlength="2000"
placeholder="z. B. Auf der Aufgabenseite lässt sich der Haken nicht setzen – der Knopf reagiert nicht."></textarea>
</label>
<!-- EIN BILD, NICHT FÜNF. Wer drei Bildschirmfotos anhängt,
erklärt damit nichts besser — er verschiebt die Arbeit nur
zu dem, der sie ansehen muss. -->
<div class="s-bild">
<input type="file" id="bild" accept="image/png,image/jpeg,image/webp,image/gif" hidden />
<button type="button" class="schritt" id="bild-waehlen">Bild anhängen</button>
<span class="s-bild__name" id="bild-name"></span>
<button type="button" class="schritt" id="bild-weg" hidden>Bild weg</button>
</div>
<div class="s-vorschau" id="vorschau" hidden>
<img id="vorschau-bild" alt="Vorschau des angehängten Bildes" />
</div>
<p class="fehler" id="melden-fehler" role="alert" aria-live="polite"></p>
<div class="s-knopfreihe">
<button type="submit" class="knopf" id="senden">Abschicken</button>
<span class="s-hinweis" id="melden-hinweis"></span>
</div>
</form>
</section>
<!-- ---------- MEINE MELDUNGEN: für alle außer der Leitung --------- -->
<section class="s-meine" id="meine-block" hidden>
<h2 class="s-titel">Deine Meldungen <span class="s-zahl" id="meine-zahl">0</span></h2>
<div id="meine-liste" aria-live="polite"></div>
</section>
<!-- ---------- DER EINGANG: nur DogFather und die rechte Hand ------ -->
<section class="s-eingang" id="eingang-block" hidden>
<div class="s-eingang__kopf">
<h2 class="s-titel">Eingang</h2>
<!-- Die Zahlen stehen VOR der Liste, nicht darunter: Wer
hereinkommt, will zuerst wissen, ob etwas liegen geblieben
ist — und erst dann, was genau. -->
<div class="s-bilanz" id="bilanz"></div>
</div>
<div class="s-filter" id="filter" role="group" aria-label="Nach Stand filtern"></div>
<p class="fehler" id="eingang-fehler" role="alert" aria-live="polite"></p>
<div id="eingang-liste" aria-live="polite"></div>
</section>
</main>
<!-- bereiche.js VOR kopf.js: Dort steht `window.Bereiche`, und
kopf.js liest daraus die Leitungsrollen. Ohne sie stuerzt jede
Seite mit der Meldung „Cannot read properties of undefined
(reading 'LEITUNG')" ab -- gemessen am 24.09.2026, als diese
Zeile beim Anlegen der Seite fehlte. Die Kopfleiste kam
trotzdem, deshalb sah man es nur in der Browserkonsole. -->
<script src="assets/js/bereiche.js?v=202609281412" defer></script>
<!-- wahl.js gehoert zu kopf.js: Der Sicht-Umschalter in der
Kopfleiste baut daraus seine Liste. pruef-css-klassen setzt das
seit dem 07.09.2026 durch -- damals fehlte es auf chat.html und
uebersicht.html, und heute hier. -->
<script src="assets/js/wahl.js?v=202609281412" defer></script>
<script src="assets/js/nachfrage.js?v=202609281412" defer></script>
<script src="assets/js/installieren.js?v=202609281412" defer></script>
<script src="assets/js/kopf.js?v=202609281412" defer></script>
<script src="assets/js/glocke.js?v=202609281412" defer></script>
<script src="assets/js/support.js?v=202609281412" defer></script>
</body>
</html>