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)
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
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Aus #202 (Abschnitt „Offen“ im Abschlusskommentar: „
fonts.tslädt die 500er-Datei aber noch nicht, obwohl sie im Repo liegt … Eintragen ist eine Zeile.“).Befund
fontWeight: '500'(src/ui/Theme.ts:112und:133).src/ui/fonts.tslädt von Source Sans 3 nur 400, 600 und 700. Die Dateisrc/ui/fonts/source-sans-3-latin-500-normal.woff2liegt im Repo, wird aber nicht eingebunden.Zu bauen (Vorschlag)
FACESaufnehmen.fontWeightaus dem Theme gegen die Liste der geladenen Schnitte hält. Dann fällt ein weiteres Gewicht ohne Datei sofort auf.Offen (mit Vorschlag)
vorschlag passt, als svg abspeichern und diese dann verwenden
Erledigt in
0e85856(Wikifa9e6a5).Schnitt 500
src/ui/fonts.tslädt jetzt auchsource-sans-3-latin-500-normal.woff2. Im Browser gemessen (document.fonts):400, 500, 600, 700sind geladen.Befund:
700wird 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:MenuItem.currentund steht nicht mehr im Text.markIcons.ts).#undAableiben Text, die hat die Schrift.Tests finden Icons jetzt über die
idder SVG (__gm.locateIcons(id), HarnessfindIcon/clickIcon) statt über die Zeichen.Tests
tests/ui/fonts.test.ts: Jedes Theme-Gewicht ist geladen, und jedes Zeichen insrc/kommt in jedem ausgelieferten Schnitt vor. Die Zeichentabelle wird direkt aus denwoff2gelesen und stimmt mit fontTools überein (231 Zeichen). Ein neues Sonderzeichen fällt damit sofort auf.cmpzurückgeholt.056a6221310 gemessen. Neu sind 1312, gerechnet.