From 71bfb62b35b6da3e8f0bfcff1b70ebdad94e0932 Mon Sep 17 00:00:00 2001 From: mhoennig Date: Mon, 24 Aug 2026 12:20:08 +0200 Subject: [PATCH] =?UTF-8?q?feat(editor):=20Warndreieck=20als=20Zeiger=20?= =?UTF-8?q?=C3=BCber=20fehlerhaften=20Zeilennummern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das `?` von `cursor:help` sagte nur „hier gibt es etwas zu lesen". Über der orange gefärbten Zahl einer Warn-Zeile steht jetzt dasselbe ⚠, das im Warnungsbereich vor jeder Meldung steht — der Zeiger sagt dieselbe Sache wie das Ziel, auf das er zeigt. Der Pfeil bleibt daneben stehen (sonst zeigte der Zeiger auf nichts), Spitze auf dem Brennpunkt; als data:-URI im Stylesheet, `help` als Rückfall. SPEC §9 (Zeilennummern) und D33-Nachtrag 2. Co-Authored-By: Claude Opus 5 --- docs/DECISIONS.md | 32 ++++++++++++++++++++++++++++++++ docs/SPEC.md | 3 +++ frontend/src/style.css | 11 ++++++++--- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md index 753b6ab..daacbd8 100644 --- a/docs/DECISIONS.md +++ b/docs/DECISIONS.md @@ -1895,6 +1895,38 @@ untereinander, `&` und `"` unverfälscht; keine Zahl ohne Warnung trägt einen mit (Zeile 3 ganz, Zeile 2 von zwei Meldungen auf eine). Im mitgelieferten Werkbaum-Plan (941 Zeilen, 155 Knoten, 0 Warnungen): 0 Tooltips. +**Nachtrag 2 — der Zeiger trägt ein Warndreieck, kein Fragezeichen.** Der +Nachtrag oben begründete `cursor:help` damit, es sage, „dass es hier etwas zu +lesen gibt" — richtig, aber zu unbestimmt: Das `?` des Systemzeigers heißt +„Hilfe", und Hilfe ist etwas anderes als eine Warnung. Über der orange +gefärbten Zahl einer fehlerhaften Zeile steht jetzt ⚠ — **dasselbe Zeichen, +das im Warnungsbereich vor jeder Meldung steht**. Der Zeiger sagt damit +dieselbe Sache wie das Ziel, auf das er zeigt, und niemand lernt ein neues +Symbol; dieselbe Sparsamkeit wie bei der Diskrepanz-Marke, die die Statusbox +der Notation spiegelt (D39), und bei der ”-Marke der Beschreibungen (D40). + +**Der Pfeil bleibt.** Ein Zeiger, der nur aus einem Dreieck besteht, zeigt auf +nichts — man wüsste nicht mehr, welche Zeile getroffen ist, und das Ziel ist +hier keine 18 px hoch. Gebaut ist er deshalb wie der `help`-Zeiger selbst: +Pfeil plus Abzeichen, nur mit dem Dreieck statt dem `?`. Die Spitze liegt auf +dem Brennpunkt (`1 1`), der Pfeil trägt eine weiße Kontur — der Streifen ist +hell, das Diagramm dahinter nicht überall. + +**Ein Bild-Zeiger, und `help` als Rückfall.** `cursor:url(…) 1 1, help` — wo +ein Browser das Bild ablehnt (Größenbeschränkungen, restriktive Umgebungen), +gilt wieder das Bisherige, ohne Sonderfall. Als `data:`-URI im Stylesheet, wie +alles andere auch: kein externer Request (D20), und der Build muss nichts +zusätzlich einbetten. 32 × 32 px, weil größere Zeiger auf manchen Plattformen +stillschweigend verworfen werden. + +**Nachgemessen** am echten Selektor (`.lineno-inner span.warn` im laufenden +Streifen): Der berechnete Wert endet auf `1 1, help`, das Bild lädt als +32 × 32. Zur Beurteilung der Lesbarkeit auf ein 32-px-`canvas` gezeichnet und +erst **danach** hochskaliert — ein `` mit SVG-Quelle rastert in seiner +Anzeigegröße, die erste Prüfung zeigte deshalb eine glatte Vorschau statt der +Wahrheit. Bei echter 32-px-Rasterung war das Ausrufezeichen zu dünn (1,8 px) +und ging unter; es steht jetzt auf 2,2 px. + ## D34 — Abhängigkeiten, IDs, XOR, Falten, Beschreibungen: erst reserviert, dann gebaut Fünf Erweiterungen auf einmal — Knoten-**IDs** (`#auth`), **Abhängigkeiten** (`:#auth,#api`) samt effektivem Status, **XOR** (`x`), ein- und ausklappbare diff --git a/docs/SPEC.md b/docs/SPEC.md index 8908da3..4462fdf 100644 --- a/docs/SPEC.md +++ b/docs/SPEC.md @@ -751,6 +751,9 @@ im Text abzählen. Für Screenreader ist die Live-Region des Warnungsbereichs die Quelle, der Tooltip erspart nur den Weg dorthin. Ohne Zeiger gibt es ihn nicht (wie überall) — die Meldung steht dort ohnehin vollständig. Siehe D33-Nachtrag. +- Über einer Warn-Zeile trägt der **Zeiger ein Warndreieck** — dasselbe ⚠, das + im Warnungsbereich vor jeder Meldung steht. Der Pfeil bleibt daneben stehen, + damit der Zeiger weiter zeigt. Siehe D33-Nachtrag 2. - Reine Lesehilfe: kein Bestandteil des Notationstexts, nicht im Grafikexport und nicht im Druck (dort ist ohnehin nur das Diagramm zu sehen). diff --git a/frontend/src/style.css b/frontend/src/style.css index b6689e8..0b0ea3a 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -554,11 +554,16 @@ /* Die Zahl einer Warn-Zeile trägt die Meldung als Tooltip (D33-Nachtrag). Dafür reicht ihr Kasten über die **ganze** Streifenbreite statt nur über die Ziffern: Ein zwei Zeichen breites Ziel trifft man sonst kaum. Die - Ziffern selbst bleiben, wo sie sind (rechtsbündig, 6 px Abstand), und - `cursor:help` sagt, dass es hier etwas zu lesen gibt. */ + Ziffern selbst bleiben, wo sie sind (rechtsbündig, 6 px Abstand). */ + /* Der Zeiger sagt, WAS hier steht: Pfeil mit **Warndreieck** statt des `?` + von `cursor:help` — dasselbe ⚠ wie vor jeder Meldung im Warnungsbereich + (D33-Nachtrag 2). Der Pfeil bleibt, sonst zeigte der Zeiger auf nichts; + die Spitze liegt auf dem Brennpunkt (1 1). `help` ist der Rückfall, wo ein + Bild-Zeiger nicht angenommen wird. */ .lineno-inner span.warn{ opacity:1;color:var(--warn);font-weight:600; - left:0;right:0;padding-right:6px;text-align:right;cursor:help; + left:0;right:0;padding-right:6px;text-align:right; + cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M1 1V17.6L5.3 13.5 8.3 20.2 11.2 18.9 8.2 12.4 13.8 12.2Z' fill='%23243447' stroke='%23fff' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M20.5 14 29.5 30 11.5 30Z' fill='%23B45309' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M19.4 19.8h2.2v5.2h-2.2zM19.4 26.6h2.2v2.2h-2.2z' fill='%23fff'/%3E%3C/svg%3E") 1 1, help; } .hint{ padding:12px 16px;border-top:1px dashed rgba(36,52,71,.18);