fix: vordere Zeichenebenen liegen wirklich vorn (D25-Nachtrag 3)
Der aktive Knoten deckte seinen eigenen Stationspunkt zu. Ursache ist der z-index:3 der Cursor-Zeile (D25-Nachtrag 1) — dort richtig begründet, aber mit einer zweiten Wirkung, die nicht mitgedacht wurde: Er hebt den Knoten über jede Ebene ohne eigene Stapelposition, und svg.cheap-front hatte keine. Betroffen war nicht nur die Cursor-Zeile: Die Strahlenkränze tragen aus demselben Grund z-index:2 (D28/D32), und svg.dep-front hing mit dran — die hervorgehobenen Abhängigkeits-Kanten gehören zum ausgewählten Knoten und endeten deshalb unter ihm. Behoben an der Ebene, nicht am Knoten: dep-front 4, cheap-front 5. Die hinteren Ebenen bleiben ohne z-index, dort trägt die DOM-Reihenfolge. Export und Druck waren nie betroffen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
9cbdf5ab58
commit
7e2c7cd3e0
@@ -852,6 +852,10 @@ verschiebt sich für diesen einen Knoten um ~4 px; das ist flüchtig und fällt
|
|||||||
nicht auf. Ein Spalt zur Anschlusslinie entsteht nicht — der Knoten wächst
|
nicht auf. Ein Spalt zur Anschlusslinie entsteht nicht — der Knoten wächst
|
||||||
darüber, statt sich zurückzuziehen.
|
darüber, statt sich zurückzuziehen.
|
||||||
|
|
||||||
|
*(Die Prüfung übersah eine Wirkung des `z-index`, die nicht die Geometrie
|
||||||
|
betrifft: Er hebt den Knoten auch über die vorderen Zeichenebenen. Korrigiert
|
||||||
|
in Nachtrag 3.)*
|
||||||
|
|
||||||
**Dazu ein einmaliger Puls beim Zeilenwechsel:** Man verliert den Knoten beim
|
**Dazu ein einmaliger Puls beim Zeilenwechsel:** Man verliert den Knoten beim
|
||||||
**Bewegen**, nicht im Stillstand — also meldet er sich genau dann einmal, mit
|
**Bewegen**, nicht im Stillstand — also meldet er sich genau dann einmal, mit
|
||||||
einem kurzen Hüpfer und einem auslaufenden Ring. Kein WCAG-Problem: 2.2.2 zielt
|
einem kurzen Hüpfer und einem auslaufenden Ring. Kein WCAG-Problem: 2.2.2 zielt
|
||||||
@@ -912,6 +916,34 @@ Puls muss trotzdem neu anlaufen — genau dafür steht das Lesen von
|
|||||||
`offsetWidth` zwischen Entfernen und Setzen der Klasse. Nachgemessen: vor dem
|
`offsetWidth` zwischen Entfernen und Setzen der Klasse. Nachgemessen: vor dem
|
||||||
Klick keine laufende Animation, 80 ms danach beide bei `currentTime ≈ 67 ms`.
|
Klick keine laufende Animation, 80 ms danach beide bei `currentTime ≈ 67 ms`.
|
||||||
|
|
||||||
|
**Nachtrag 3 — „vorn" heißt vorn: die vorderen Zeichenebenen brauchen einen
|
||||||
|
eigenen `z-index`.** Gemeldet als „wenn der Knoten der aktive ist, fehlt der
|
||||||
|
blasse Kreis für den Lean Path". Die Ursache ist der `z-index:3`, den Nachtrag 1
|
||||||
|
dem Knoten gegeben hat — richtig begründet (ohne ihn beschneiden später gemalte
|
||||||
|
Geschwister den Schlagschatten), aber mit einer zweiten Wirkung, die dort nicht
|
||||||
|
mitgedacht wurde: Er hebt den Knoten nicht nur über seine Geschwister, sondern
|
||||||
|
über **jede** Ebene ohne eigene Stapelposition — und genau das waren die
|
||||||
|
Overlay-SVGs. `svg.cheap-front` trug nur `position:absolute`; die
|
||||||
|
Zeichenreihenfolge kam allein aus der DOM-Position. Damit lag ausgerechnet der
|
||||||
|
hervorgehobene Knoten über seinem eigenen Stationspunkt.
|
||||||
|
|
||||||
|
Der Fehler ist **nicht** auf die Cursor-Zeile beschränkt: Die Strahlenkränze
|
||||||
|
haben aus demselben Grund `z-index:2` (D28/D32), verdeckten den Punkt also
|
||||||
|
ebenso. Und `svg.dep-front` (D41) hing daran mit — die hervorgehobenen
|
||||||
|
Abhängigkeits-Kanten gehören per Definition zum ausgewählten Knoten und endeten
|
||||||
|
deshalb unter ihm, also genau dort, wo man hinsieht.
|
||||||
|
|
||||||
|
Behoben an der Ebene, nicht am Knoten: `.dep-front{z-index:4}` und
|
||||||
|
`.cheap-front{z-index:5}` — beide über der höchsten Knoten-Stufe. Die
|
||||||
|
**hinteren** Ebenen bleiben ohne `z-index`; sie sollen hinter den Knoten
|
||||||
|
liegen, und dort funktioniert die DOM-Reihenfolge. Den `z-index` am Knoten zu
|
||||||
|
senken wäre der falsche Griff gewesen: Er hat seinen Grund, und die
|
||||||
|
Overlay-Ebenen heißen nicht ohne Absicht „front".
|
||||||
|
|
||||||
|
Export und Druck waren nie betroffen — dort zeichnet `diagramToSvg()` die
|
||||||
|
Punkte nach den Knoten (Reihenfolge statt Stapelung), und die Cursor-Zeile
|
||||||
|
erscheint ohnehin nicht (D25 oben).
|
||||||
|
|
||||||
## D26 — Legende scrollbar: eigener Container statt `<details>`, plus Splitter
|
## D26 — Legende scrollbar: eigener Container statt `<details>`, plus Splitter
|
||||||
Die Legende („Agenda") im Editor-Panel war zu hoch für ihren Platz und wurde
|
Die Legende („Agenda") im Editor-Panel war zu hoch für ihren Platz und wurde
|
||||||
**abgeschnitten** statt scrollbar zu sein — obwohl `.hint` seit jeher
|
**abgeschnitten** statt scrollbar zu sein — obwohl `.hint` seit jeher
|
||||||
|
|||||||
@@ -320,6 +320,11 @@ verworfene Elemente. Quelle sind ES-Module unter `src/`; `index.html` ist der
|
|||||||
(D38-Nachtrag 3): `drawCheapPath()` steigt nur bei **null** Stationen aus,
|
(D38-Nachtrag 3): `drawCheapPath()` steigt nur bei **null** Stationen aus,
|
||||||
die Zwei-Punkte-Schranke gilt allein der Linie (`catmullRom`) — im Export
|
die Zwei-Punkte-Schranke gilt allein der Linie (`catmullRom`) — im Export
|
||||||
ebenso. Sonst verschwindet der Pfad beim eingeklappten Wurzelknoten ganz.
|
ebenso. Sonst verschwindet der Pfad beim eingeklappten Wurzelknoten ganz.
|
||||||
|
**Die vorderen Overlay-Ebenen brauchen einen `z-index`** (D25-Nachtrag 3):
|
||||||
|
`.cheap-front{z-index:5}`, `.dep-front{z-index:4}` — sonst deckt jeder
|
||||||
|
Knoten mit eigener Stapelposition (`current` 3, `fresh`/`focusmark` 2) den
|
||||||
|
Stationspunkt und die hervorgehobenen Dep-Kanten zu. Die **hinteren** Ebenen
|
||||||
|
bleiben ohne, dort trägt die DOM-Reihenfolge.
|
||||||
**Umklappen schreibt in den TEXT zurück** (`writeFoldToText`, D38-Nachtrag 2):
|
**Umklappen schreibt in den TEXT zurück** (`writeFoldToText`, D38-Nachtrag 2):
|
||||||
Die Ableitung Text → Zustand ist nicht umkehrbar (mehrere Markensätze ergeben
|
Die Ableitung Text → Zustand ist nicht umkehrbar (mehrere Markensätze ergeben
|
||||||
denselben Zustand; `<` faltet Knoten ohne eigene Marke), deshalb **minimal
|
denselben Zustand; `<` faltet Knoten ohne eigene Marke), deshalb **minimal
|
||||||
|
|||||||
@@ -773,6 +773,13 @@
|
|||||||
Blättern zeigen, welche Knoten wirklich auf dem Pfad enden — durchquerte
|
Blättern zeigen, welche Knoten wirklich auf dem Pfad enden — durchquerte
|
||||||
Fremdknoten tragen keinen Punkt. Reihenfolge im DOM steuert vorn/hinten. */
|
Fremdknoten tragen keinen Punkt. Reihenfolge im DOM steuert vorn/hinten. */
|
||||||
.cheap-overlay{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
|
.cheap-overlay{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
|
||||||
|
/* Die VORDEREN Ebenen müssen über JEDEN Knoten — auch über die, die sich
|
||||||
|
selbst eine Stapelposition nehmen: Cursor-Zeile (`z-index:3`, D25),
|
||||||
|
Strahlenkränze (`z-index:2`, D28/D32). Ohne das deckt ausgerechnet der
|
||||||
|
hervorgehobene Knoten seinen eigenen Stationspunkt zu, und die
|
||||||
|
hervorgehobenen Abhängigkeits-Kanten enden unter ihm. „Vorn" heißt vorn. */
|
||||||
|
.dep-overlay.dep-front{z-index:4}
|
||||||
|
.cheap-overlay.cheap-front{z-index:5}
|
||||||
/* Querverbindungen der Abhängigkeiten (SPEC §9, D41): blassgrau GEPUNKTET
|
/* Querverbindungen der Abhängigkeiten (SPEC §9, D41): blassgrau GEPUNKTET
|
||||||
und gekrümmt — Punktierung und Krümmung unterscheiden sie doppelt von den
|
und gekrümmt — Punktierung und Krümmung unterscheiden sie doppelt von den
|
||||||
Baumlinien (durchgezogen/gestrichelt, orthogonal) und halten sie leise
|
Baumlinien (durchgezogen/gestrichelt, orthogonal) und halten sie leise
|
||||||
|
|||||||
Reference in New Issue
Block a user