fix(diagram): Cursor-Zeile lässt zurückgetretene Knoten blass (D25-Nachtrag 4)
Die Ausnahme von der Pfad-Inversion stellte den ganzen Knoten auf volle Stärke, weil opacity/filter den Ring mitträfen. Jetzt bleibt der Knoten deckend und die Blässe wird nachgebildet: Papier-Wasch über der Füllung, gefadete Text-/Rahmenfarbe, Kinder einzeln gedimmt — der Ring steht voll. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
f6c7eff490
commit
9d1d580166
@@ -19,6 +19,7 @@ reverse.
|
|||||||
|
|
||||||
## 2026-08-27
|
## 2026-08-27
|
||||||
|
|
||||||
|
- The caret on a node off the cheapest path now highlights only the ring — the fill stays pale instead of jumping back to full colour
|
||||||
- On shared documents the history button shows the server's milestones — loading one is a rollback for everyone, as a new version, nothing lost
|
- On shared documents the history button shows the server's milestones — loading one is a rollback for everyone, as a new version, nothing lost
|
||||||
- The camera button turns the current state of a shared document into a server milestone instead of a local snapshot
|
- The camera button turns the current state of a shared document into a server milestone instead of a local snapshot
|
||||||
- Joining or sharing a document asks once for a display name — it fills the history's "changed by" and stays a claim, not a proof
|
- Joining or sharing a document asks once for a display name — it fills the history's "changed by" and stays a claim, not a proof
|
||||||
|
|||||||
@@ -975,6 +975,47 @@ Export und Druck waren nie betroffen — dort zeichnet `diagramToSvg()` die
|
|||||||
Punkte nach den Knoten (Reihenfolge statt Stapelung), und die Cursor-Zeile
|
Punkte nach den Knoten (Reihenfolge statt Stapelung), und die Cursor-Zeile
|
||||||
erscheint ohnehin nicht (D25 oben).
|
erscheint ohnehin nicht (D25 oben).
|
||||||
|
|
||||||
|
**Nachtrag 4 — auf einem zurückgetretenen Knoten hebt die Cursor-Zeile nur
|
||||||
|
noch den Ring hervor, die Füllung bleibt blass.** Gemeldet: Steht der Cursor
|
||||||
|
auf der Zeile eines Knotens, der nicht auf dem günstigsten Pfad liegt, ging
|
||||||
|
das Ausgrauen durch die Hervorhebung verloren — der Knoten stand plötzlich in
|
||||||
|
voller Statusfarbe da. Das war der Preis der Ausnahme aus dem Nachtrag oben
|
||||||
|
(`.cheap-on .node:not(.cheap).current{opacity:1;filter:none}`): Sie stellte
|
||||||
|
den **ganzen** Knoten wieder her, weil `opacity`/`filter` am Element auch den
|
||||||
|
`box-shadow` treffen — ein Ring auf einem 0,32-gedimmten Element ist
|
||||||
|
unsichtbar, das war ja der ursprüngliche Befund. Die Ausnahme war damit
|
||||||
|
richtig begründet und trotzdem zu grob: Sie kostete die Pfad-Aussage („hier
|
||||||
|
wird nichts getan") für die Dauer des bloßen Hinsehens.
|
||||||
|
|
||||||
|
**Jetzt bleibt der Knoten voll deckend, und die Blässe wird nachgebildet** —
|
||||||
|
so bekommt der Ring die volle Stärke, ohne dass die Füllung sie bekommt:
|
||||||
|
|
||||||
|
- Ein **Papier-Wasch** als `background-image` (68 % `--paper` über der
|
||||||
|
Statusfarbe) ergibt rechnerisch dasselbe wie 0,32 Deckkraft über dem hellen
|
||||||
|
Grund.
|
||||||
|
- **Text- und Rahmenfarbe** wechseln auf das gedimmte Grau. Dass dabei die
|
||||||
|
acht Status-Rahmenfarben auf ein einheitliches Grau fallen, ist kein
|
||||||
|
Verlust: Bei 0,32 Deckkraft waren sie ohnehin nicht mehr zu unterscheiden.
|
||||||
|
- Die **Kinder** (Größen-Badge, Pillen, Chips, Falt-Chip) dimmen einzeln per
|
||||||
|
`opacity:.32` — genau das, was vorher die Element-Deckkraft mit ihnen tat.
|
||||||
|
`.ext` ist ausgenommen: Es erbt die schon gefadete Textfarbe und wäre sonst
|
||||||
|
doppelt gedimmt.
|
||||||
|
|
||||||
|
`fresh`, `focusmark` und `done` sind per `:not()` ausgeschlossen — deren
|
||||||
|
Volle-Stärke-Ausnahmen (D28, D32, D46-Nachtrag) haben eigene Gründe und
|
||||||
|
gelten unverändert. Puls-Ring (`::after`), Schlagschatten und `scale(1.04)`
|
||||||
|
bleiben in voller Stärke: Die Tiefe ist der Hervorhebungs-Kanal, die Füllung
|
||||||
|
gehört dem Pfad. Export und Druck sind unberührt — `diagramToSvg()` liest
|
||||||
|
`backgroundColor`, nicht `background-image`, und die Cursor-Zeile erscheint
|
||||||
|
dort ohnehin nicht.
|
||||||
|
|
||||||
|
**Nachgemessen** im Browser: Cursor auf einem gedimmten Knoten → `opacity 1`,
|
||||||
|
Ring vollständig im `box-shadow`, Wasch-Gradient gesetzt, Text
|
||||||
|
`rgba(36,52,71,.35)`, Kind-Badge 0,32; der gedimmte Nachbarknoten unverändert
|
||||||
|
(0,32, kein Wasch); Cursor auf einem Pfad-Knoten → kein Wasch, volle Farbe,
|
||||||
|
Ring wie immer. Reine CSS-Änderung, keine testbare Regel (dieselbe Grenze wie
|
||||||
|
bei aller Knoten-Optik).
|
||||||
|
|
||||||
## 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
|
||||||
|
|||||||
+26
-10
@@ -911,16 +911,32 @@
|
|||||||
der wahrscheinlichsten Gründe, überhaupt zu zeigen. Anders als beim
|
der wahrscheinlichsten Gründe, überhaupt zu zeigen. Anders als beim
|
||||||
optionalen Knoten (D29), wo das Zurücktreten die Aussage IST. */
|
optionalen Knoten (D29), wo das Zurücktreten die Aussage IST. */
|
||||||
.cheap-on .node:not(.cheap).focusmark{opacity:1;filter:none}
|
.cheap-on .node:not(.cheap).focusmark{opacity:1;filter:none}
|
||||||
/* Und dasselbe für die Cursor-Zeile (D25-Nachtrag) — die Ausnahme fehlte hier
|
/* Die Cursor-Zeile auf einem zurückgetretenen Knoten (D25-Nachtrag 4): Nur
|
||||||
als einzige, obwohl der Fall der häufigste ist: Der Umschalter ist
|
der RING wird hervorgehoben, die Füllung bleibt blass. Die erste Fassung
|
||||||
voreingestellt an, und jeder optionale Knoten und jede nicht gewählte
|
stellte den ganzen Knoten auf volle Stärke — dann verlor er beim bloßen
|
||||||
Alternative ist „nicht auf dem Pfad" (im mitgelieferten Beispiel 7 von 18
|
Hineinsetzen des Cursors seine Pfad-Aussage („nicht nötig"). Ganz gedimmt
|
||||||
Knoten). Gemessen auf `+ [?] Dark mode`: Deckkraft 0,32 — der Ring war dort
|
lassen geht aber auch nicht: opacity/filter am Element treffen den
|
||||||
praktisch unsichtbar. Wo der Cursor steht, muss sichtbar bleiben, egal wie
|
box-shadow mit, der Ring wäre unsichtbar (der ursprüngliche D25-Befund).
|
||||||
der Pfad entschieden hat; anders als beim optionalen Knoten (D29), wo das
|
Deshalb bleibt der Knoten voll deckend, und die Blässe wird NACHGEBILDET:
|
||||||
Zurücktreten die Aussage IST, ist hier gar keine Aussage über den Plan
|
- background-image legt einen Papier-Wasch (68 %) ÜBER die Statusfarbe —
|
||||||
gemeint — es ist eine Editierhilfe. */
|
rechnerisch dasselbe wie 0,32 Deckkraft über dem hellen Grund;
|
||||||
.cheap-on .node:not(.cheap).current{opacity:1;filter:none}
|
- Text- und Rahmenfarbe wechseln auf das gedimmte Grau (der Unterschied
|
||||||
|
der acht Status-Rahmenfarben ist bei 0,32 ohnehin nicht mehr zu sehen);
|
||||||
|
- die Kinder (Badges, Pillen, Chips) dimmen einzeln per opacity — genau
|
||||||
|
so, wie es vorher die Element-Deckkraft tat. `.ext` ist ausgenommen:
|
||||||
|
es erbt die schon gefadete Textfarbe und wäre sonst doppelt gedimmt.
|
||||||
|
fresh/focusmark/done sind ausgeschlossen — deren Ausnahmen (volle Stärke)
|
||||||
|
haben je eigene Gründe und gelten weiter. Der Puls-Ring (::after) und der
|
||||||
|
Schlagschatten bleiben unberührt in voller Stärke. */
|
||||||
|
.cheap-on .node:not(.cheap):not(.fresh):not(.focusmark):not(.done).current{
|
||||||
|
opacity:1;filter:none;
|
||||||
|
background-image:linear-gradient(rgba(243,246,249,.68),rgba(243,246,249,.68));
|
||||||
|
border-color:rgba(107,122,140,.4);
|
||||||
|
color:rgba(36,52,71,.35);
|
||||||
|
}
|
||||||
|
.cheap-on .node:not(.cheap):not(.fresh):not(.focusmark):not(.done).current > :not(.ext){
|
||||||
|
opacity:.32;filter:saturate(.4);
|
||||||
|
}
|
||||||
/* Erledigtes tritt NIE zurück (D46-Nachtrag). D46 hatte das schon entschieden
|
/* Erledigtes tritt NIE zurück (D46-Nachtrag). D46 hatte das schon entschieden
|
||||||
— „sie auszublassen hieße, sie sähen aus wie eine verworfene Alternative" —,
|
— „sie auszublassen hieße, sie sähen aus wie eine verworfene Alternative" —,
|
||||||
die Regel griff aber nur für erledigte Knoten AUF dem Pfad. Ein fertiger
|
die Regel griff aber nur für erledigte Knoten AUF dem Pfad. Ein fertiger
|
||||||
|
|||||||
Reference in New Issue
Block a user