Editor-Schrift: Schnitt 500 wird nicht geladen #214

Closed
opened 2026-09-23 07:05:35 +02:00 by meleki · 2 comments
Owner

Aus #202 (Abschnitt „Offen“ im Abschlusskommentar: „fonts.ts lädt die 500er-Datei aber noch nicht, obwohl sie im Repo liegt … Eintragen ist eine Zeile.“).

Befund

  • Das Theme setzt an zwei Stellen fontWeight: '500' (src/ui/Theme.ts:112 und :133).
  • src/ui/fonts.ts lädt von Source Sans 3 nur 400, 600 und 700. Die Datei src/ui/fonts/source-sans-3-latin-500-normal.woff2 liegt im Repo, wird aber nicht eingebunden.
  • Folge: Der Browser nimmt für 500 den 400er-Schnitt. Was halbfett gemeint ist, erscheint normal.
  • Stand heute gemessen (Grep). Seit #202 unverändert.

Zu bauen (Vorschlag)

  • Den 500er-Schnitt in FACES aufnehmen.
  • Test: ein Unit-Test, der jedes fontWeight aus dem Theme gegen die Liste der geladenen Schnitte hält. Dann fällt ein weiteres Gewicht ohne Datei sofort auf.
  • Die e2e-Module mit Textbreiten (14, 30, 44, 48) laufen lassen, weil 500 etwas breiter ist als 400.

Offen (mit Vorschlag)

  1. Zeichen außerhalb von Latin (✕, ⧉ …) kommen weiter aus der Systemschrift, also in CI anders als am eigenen Rechner (#202). Vorschlag: nicht hier. Wenn es stört, diese Symbole als SVG-Icons zeichnen wie die übrigen (#175, #176).
Aus #202 (Abschnitt „Offen“ im Abschlusskommentar: „`fonts.ts` lädt die 500er-Datei aber noch nicht, obwohl sie im Repo liegt … Eintragen ist eine Zeile.“). ## Befund - Das Theme setzt an zwei Stellen `fontWeight: '500'` (`src/ui/Theme.ts:112` und `:133`). - `src/ui/fonts.ts` lädt von Source Sans 3 nur 400, 600 und 700. Die Datei `src/ui/fonts/source-sans-3-latin-500-normal.woff2` liegt im Repo, wird aber nicht eingebunden. - Folge: Der Browser nimmt für 500 den 400er-Schnitt. Was halbfett gemeint ist, erscheint normal. - Stand heute gemessen (Grep). Seit #202 unverändert. ## Zu bauen (Vorschlag) - Den 500er-Schnitt in `FACES` aufnehmen. - Test: ein Unit-Test, der jedes `fontWeight` aus dem Theme gegen die Liste der geladenen Schnitte hält. Dann fällt ein weiteres Gewicht ohne Datei sofort auf. - Die e2e-Module mit Textbreiten (14, 30, 44, 48) laufen lassen, weil 500 etwas breiter ist als 400. ## Offen (mit Vorschlag) 1. **Zeichen außerhalb von Latin** (✕, ⧉ …) kommen weiter aus der Systemschrift, also in CI anders als am eigenen Rechner (#202). Vorschlag: nicht hier. Wenn es stört, diese Symbole als SVG-Icons zeichnen wie die übrigen (#175, #176).
meleki added the new label 2026-09-23 07:05:35 +02:00
admin added high-priority and removed new labels 2026-09-23 07:07:48 +02:00

vorschlag passt, als svg abspeichern und diese dann verwenden

vorschlag passt, als svg abspeichern und diese dann verwenden
admin added this to the Development project 2026-09-23 07:14:43 +02:00
admin moved this to Next in Development on 2026-09-23 07:14:50 +02:00
Author
Owner

Erledigt in 0e85856 (Wiki fa9e6a5).

Schnitt 500

src/ui/fonts.ts lädt jetzt auch source-sans-3-latin-500-normal.woff2. Im Browser gemessen (document.fonts): 400, 500, 600, 700 sind geladen.

Befund: 700 wird geladen, aber vom Theme nirgends benutzt. Nicht angefasst.

Sonderzeichen als SVG

✕ und ⧉ aus dem Issue kommen im Code gar nicht vor. Geprüft habe ich src/ gegen die Zeichentabelle der Schriftdatei: 20 Zeichen an 30 Stellen fehlen der Schrift. Alle sind jetzt SVG-Icons:

  • Menüs: ☑/☐ und der Punkt vor dem gewählten Eintrag (9 Menüs). Der Punkt ist ein eigenes Feld MenuItem.current und steht nicht mehr im Text.
  • Inspector-Zeilen: Reset ↺, Fit ↔/↕ und der Menü-Pfeil ▾ dahinter. Der ▾ ist jetzt derselbe gezeichnete Chevron wie beim Dropdown.
  • Kind-Marken: ✓ ◧ ▦ ◈ ♪ ▣ ▶ ◇ ≡ ⊞ sind Icons (Tabelle in markIcons.ts). # und Aa bleiben Text, die hat die Schrift.
  • Sonst: Szenen-Marken im Asset-Panel, Play/Stop beim Sound und im Sound-Picker, die Pfeile ← → bei den Übergängen.
  • Apply ↑ hätte die Schrift, ist aber trotzdem ein Icon, weil es direkt neben Reset steht.

Tests finden Icons jetzt über die id der SVG (__gm.locateIcons(id), Harness findIcon/clickIcon) statt über die Zeichen.

Tests

./check.sh                          → 145 Files, 2187 Tests, CHECK EXIT 0   (vorher 144 / 2143)
e2e 1-16,22,30,34,35,43,44          → 586 grün, 0 FAIL, dann Abbruch in 44
e2e 1-16,37,44,47,48                → ALL PASSED – 618 checks
e2e 1-14 (Endstand)                 → ALL PASSED – 454 checks
  • Neuer Unit-Test tests/ui/fonts.test.ts: Jedes Theme-Gewicht ist geladen, und jedes Zeichen in src/ kommt in jedem ausgelieferten Schnitt vor. Die Zeichentabelle wird direkt aus den woff2 gelesen und stimmt mit fontTools überein (231 Zeichen). Ein neues Sonderzeichen fällt damit sofort auf.
  • Icon-Tests decken die 19 neuen Dateien ab. Jede Kind-Marke ist entweder Icon oder Text, eindeutig.
  • 2 neue e2e-Checks: geladene Gewichte in 14, ein Pixel auf dem Reset-Icon in 04.
  • 9 e2e-Module umgestellt (04, 08, 09, 15, 22, 35, 43, 47, Harness). Der Check in 35 prüft die Szenen-Marke jetzt an der Zeile der Start-Szene. Vorher reichte irgendein ▶ auf dem Bildschirm.
  • Abbruch in 44 liegt nicht an der Änderung: 44 braucht die Texturen aus 37. Mit 37 davor grün.
  • Gegenproben, alle greifen: 500 aus der Liste, ▶ zurück in den Code, Struct-Icon weg → je genau der zugehörige Unit-Test fällt. Im Browser 500 weg und Reset-Icon unsichtbar → genau die zwei neuen Checks fallen. Originale per cmp zurückgeholt.
  • Screenshots angesehen: Inspector-Zeile mit Fit-Menü, Apply und Reset, Häkchen im „Collides with"-Menü, Kind- und Szenen-Marken, Sound-Knöpfe.
  • Check-Summe: CI hat an 056a622 1310 gemessen. Neu sind 1312, gerechnet.
Erledigt in `0e85856` (Wiki `fa9e6a5`). ## Schnitt 500 `src/ui/fonts.ts` lädt jetzt auch `source-sans-3-latin-500-normal.woff2`. Im Browser gemessen (`document.fonts`): `400, 500, 600, 700` sind geladen. **Befund:** `700` wird geladen, aber vom Theme nirgends benutzt. Nicht angefasst. ## Sonderzeichen als SVG ✕ und ⧉ aus dem Issue kommen im Code gar nicht vor. Geprüft habe ich `src/` gegen die Zeichentabelle der Schriftdatei: **20 Zeichen an 30 Stellen** fehlen der Schrift. Alle sind jetzt SVG-Icons: - **Menüs:** ☑/☐ und der Punkt vor dem gewählten Eintrag (9 Menüs). Der Punkt ist ein eigenes Feld `MenuItem.current` und steht nicht mehr im Text. - **Inspector-Zeilen:** Reset ↺, Fit ↔/↕ und der Menü-Pfeil ▾ dahinter. Der ▾ ist jetzt derselbe gezeichnete Chevron wie beim Dropdown. - **Kind-Marken:** ✓ ◧ ▦ ◈ ♪ ▣ ▶ ◇ ≡ ⊞ sind Icons (Tabelle in `markIcons.ts`). `#` und `Aa` bleiben Text, die hat die Schrift. - **Sonst:** Szenen-Marken im Asset-Panel, Play/Stop beim Sound und im Sound-Picker, die Pfeile ← → bei den Übergängen. - **Apply ↑** hätte die Schrift, ist aber trotzdem ein Icon, weil es direkt neben Reset steht. Tests finden Icons jetzt über die `id` der SVG (`__gm.locateIcons(id)`, Harness `findIcon`/`clickIcon`) statt über die Zeichen. ## Tests ``` ./check.sh → 145 Files, 2187 Tests, CHECK EXIT 0 (vorher 144 / 2143) e2e 1-16,22,30,34,35,43,44 → 586 grün, 0 FAIL, dann Abbruch in 44 e2e 1-16,37,44,47,48 → ALL PASSED – 618 checks e2e 1-14 (Endstand) → ALL PASSED – 454 checks ``` - **Neuer Unit-Test `tests/ui/fonts.test.ts`:** Jedes Theme-Gewicht ist geladen, und jedes Zeichen in `src/` kommt in jedem ausgelieferten Schnitt vor. Die Zeichentabelle wird direkt aus den `woff2` gelesen und stimmt mit fontTools überein (231 Zeichen). Ein neues Sonderzeichen fällt damit sofort auf. - **Icon-Tests** decken die 19 neuen Dateien ab. Jede Kind-Marke ist entweder Icon oder Text, eindeutig. - **2 neue e2e-Checks:** geladene Gewichte in 14, ein Pixel auf dem Reset-Icon in 04. - **9 e2e-Module umgestellt** (04, 08, 09, 15, 22, 35, 43, 47, Harness). Der Check in 35 prüft die Szenen-Marke jetzt an der Zeile der Start-Szene. Vorher reichte irgendein ▶ auf dem Bildschirm. - **Abbruch in 44** liegt nicht an der Änderung: 44 braucht die Texturen aus 37. Mit 37 davor grün. - **Gegenproben, alle greifen:** 500 aus der Liste, ▶ zurück in den Code, Struct-Icon weg → je genau der zugehörige Unit-Test fällt. Im Browser 500 weg und Reset-Icon unsichtbar → genau die zwei neuen Checks fallen. Originale per `cmp` zurückgeholt. - **Screenshots angesehen:** Inspector-Zeile mit Fit-Menü, Apply und Reset, Häkchen im „Collides with"-Menü, Kind- und Szenen-Marken, Sound-Knöpfe. - **Check-Summe:** CI hat an `056a622` 1310 gemessen. Neu sind **1312**, gerechnet.
admin moved this to Done in Development on 2026-09-23 08:21:02 +02:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#214