feat: von Station zu Station des günstigsten Pfads (D47)

Mit dem status-bewussten Pfad (D46) zeigt das Diagramm die offene Front — im
mitgelieferten Plan 24 Stationen, verteilt über einen Baum von über 20 000 px
Breite. Sie zu sehen war damit gelöst, sie abzugehen nicht. Der neue Knopf im
Diagramm-Kopf holt sie der Reihe nach in die Mitte: erster Druck die erste
(was als Nächstes dran ist), jeder weitere die nächste, nach der letzten
wieder die erste.

Der Sprung fasst nur das Diagramm an — zentrieren, hervorheben, Tastaturfokus,
also buchstäblich die Behandlung des ausdrücklichen Alt+Klicks (D25) samt Puls
und hervorgehobenen Abhängigkeits-Kanten. In den Text führt von dort
Alt+Enter, dieselbe Geste wie überall.

Ohne eigenen Zustand: Fortgesetzt wird am gerade hervorgehobenen Knoten. Ein
gemerkter Index wäre schlechter — der Baum wird bei jedem Tastendruck neu
gebaut, die Stationsliste ändert sich unter ihm. Verborgen, solange es keine
Station gibt (Pfad aus, oder alles erledigt); der Tooltip nennt die Anzahl.
i18n `leanNextTooltip` in neun Sprachen.

Die Mobil-Kopfzeile trug den neunten Knopf nicht mehr — D17-Nachtrag 5 hatte
sie gerade erst auf acht zurechtgemessen. Nachgemessen: bei 375 px reicht es
nach Lücke 8->6 px und Innenabstand 10->8 px weiterhin (345 px Inhalt, 359 px
Platz, 14 px Luft); bei 320 px passen neun Fingerziele arithmetisch nicht, und
unter 29 px zu gehen hat D17-Nachtrag 5 abgelehnt. Die Zeile schiebt dort
deshalb (`overflow-x:auto`, Balken ausgeblendet) — 41 px Schiebeweg, Kopfhöhe
unverändert 49 px, alle neun Elemente in voller Größe erreichbar.

Dabei ein älterer, stiller Fehler gefunden: Bei Platzmangel schrumpfte der
Modus-Wähler — das einzige Element ohne feste Größe — auf einen 2-px-Strich
zusammen, während sein Icon 38 px breit darüber hinausragte; er sah aus wie
ein Trennstrich und war unbenutzbar. `flex:0 0 auto` an allen Kindern der
Zeile stellt das ab.

236 Tests grün. SPEC §9 und D47 halten es fest; der Plan bekommt den Knoten
als `[x]` (noch nicht deployt), frontend/CLAUDE.md die Kopfzeilen-Stolperfalle.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-23 13:22:52 +02:00
co-authored by Claude Fable 5
parent c4a6ff57d4
commit ecc1b632f6
8 changed files with 179 additions and 2 deletions
+16 -2
View File
@@ -1108,8 +1108,22 @@
Ein-Bereich-Modus überhaupt gibt. Die Knöpfe passen längst — es waren die
Abstände: 14 px Lücke mal sieben plus 2×16 px Innenabstand sind mehr als
ein Drittel von 375 px. Deshalb hier enger und `nowrap` als Riegel; die
Knöpfe selbst bleiben unangetastet (Fingergröße). */
body.mobile .panel-head{gap:8px;flex-wrap:nowrap;padding-inline:10px}
Knöpfe selbst bleiben unangetastet (Fingergröße).
Mit dem neunten Bedienelement (Stationssprung, D47) noch einmal enger:
6 px Lücke und 8 px Innenabstand. Dazu `flex:0 0 auto` — ohne das schrumpft
ausgerechnet der Modus-Wähler (das einzige Element ohne feste Größe) bei
Platzmangel auf einen 2-px-Strich zusammen, während sein Icon darüber
hinausragt. Ein zerdrücktes Bedienelement ist der schlechtere Fehler als
ein sichtbarer Überlauf (D17-Nachtrag 5). */
body.mobile .panel-head{gap:6px;flex-wrap:nowrap;padding-inline:8px}
body.mobile .panel-head>*{flex:0 0 auto}
/* Unterhalb von rund 360 px ist es reine Arithmetik: neun Bedienelemente à
29 px plus Lücken brauchen mehr, als dort überhaupt da ist (bei 320 px
fehlen 41 px). Kleiner als 29 px darf ein Fingerziel nicht werden
(D17-Nachtrag 5), also schiebt die Zeile. Bei 375 px bleiben 14 px Luft —
dort ändert die Regel nichts, weil nichts überläuft. */
body.mobile .panel-head{overflow-x:auto;scrollbar-width:none}
body.mobile .panel-head::-webkit-scrollbar{display:none}
/* Inhalte rund 25 % kleiner, damit mehr Plan auf die Fläche passt
(D17-Nachtrag 2). Das Diagramm macht das über den CSS-`zoom` (Faktor auf
den Nutzer-Zoom, siehe MOBILE_ZOOM in app.js); der Text über die