feat: Label-Umbruch bei 32 statt 40 Zeichen (D64-Nachtrag 3)

Lange Titel zogen das Diagramm zu breit. Ein Parameter in wrapLabel(),
der 32ch-Rückhalt im CSS und SPEC §9 ziehen mit; Balance-Regel und
Erste-Zeile-Verankerung unverändert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-24 18:36:52 +02:00
co-authored by Claude Fable 5
parent 07e4116bd9
commit ebc5be407e
6 changed files with 30 additions and 15 deletions
+3 -2
View File
@@ -55,7 +55,8 @@ function attr(s){ return esc(String(s)).replace(/"/g,'&quot;'); }
Beschreibung als data-Attribut wäre der einzige andere Weg gewesen. */
export const TIP_RULE = '─'.repeat(24);
/* Lange Labels umbrechen (SPEC §9/D64): höchstens ~40 Zeichen je Zeile, und
/* Lange Labels umbrechen (SPEC §9/D64): höchstens ~32 Zeichen je Zeile (D64,
verengt per D64-Nachtrag 3 — 40 zog das Diagramm zu breit), und
die Zeichen GLEICHMÄSSIG auf die Zeilen verteilt — der gierige CSS-Umbruch
machte aus 44 Zeichen eine volle Zeile plus ein einsames Wort. Bewusst im
Renderer statt per `text-wrap:balance`: So schrumpft der Knotenkasten auf
@@ -64,7 +65,7 @@ export const TIP_RULE = '─'.repeat(24);
Regel ist headless testbar. Gebrochen wird nur an Leerzeichen; ein
einzelnes Wort über der Grenze bleibt stehen (das CSS fängt es mit
`max-width` + `overflow-wrap` ab). */
export function wrapLabel(label, max = 40){
export function wrapLabel(label, max = 32){
const text = String(label);
if(text.length <= max) return [text];
const words = text.split(' ');
+1 -1
View File
@@ -693,7 +693,7 @@
bleibt — der 23-px-Abzweig (§9) trifft bei mehrzeiligen Knoten
deterministisch die Mitte der ERSTEN Zeile. */
white-space:pre-line;
max-width:40ch;
max-width:32ch;
text-align:center;
overflow-wrap:break-word;
box-shadow:0 1px 2px rgba(36,52,71,.08);