Commit Graph
2 Commits
Author SHA1 Message Date
adminandClaude Opus 5.5 f2282a81fb Stop loading the bold face the editor never draws in (#273)
The editor waits for every face in FACES before it starts. Source Sans 3
in 700 was one of them, but nothing in src/ sets a weight above 600, so
it cost a download and a wait for nothing.

- fonts.ts loads Source Sans 3 in 400, 500 and 600 plus Source Code Pro
  400. The 700 file (15 596 bytes) is gone from src/ui/fonts.
- A search for bold, font-weight and HTML headings in src/, web/*.html
  and the player found nothing that would fall back to 700.
- fonts.test.ts now checks both ways. A loaded Sans face must be set
  somewhere in src/, and every .woff2 in the font folder must be in
  FACES, so a stray file the glyph test would still read shows up too.
- The weight scan moved into usedWeights(), since two tests need it.

Tests:
- Gate on melektaus-atx: 197 files, 2856 tests (2855 + 1), exit 0.
- e2e 1-14: all passed, 492 checks, loaded faces ["400","500","600"].
- e2e 14 alone fails its two tab width checks, as known: it needs the
  documents 7-13 open. The font check was green there as well.
- dist/assets holds no 700 file after the build.
- Counter check: loading 700 again with its file fails the new
  "loads no face the editor never sets".
- Counter check: the file back without a FACES entry fails
  "... and no other" and names the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 21:27:46 +02:00
adminandClaude Opus 5.5 0e8585665a Load the 500 weight and draw missing glyphs as SVG icons (#214)
game-maker / gate (push) Successful in 2m47s
game-maker / suite (push) Successful in 8m41s
The theme asks for Source Sans 3 at weight 500, but fonts.ts only
loaded 400, 600 and 700. The browser synthesised the 500 text. The
issue comment also asked for the symbols the font lacks to become SVG
icons. A scan of src/ against the font's cmap found 20 such characters
in 30 places.

- fonts.ts loads source-sans-3-latin-500-normal.woff2 as well.
- Menus draw their ticks and the "current" dot as icons. The dot is a
  new MenuItem.current field and no longer part of the label text.
- Inspector action buttons (reset, apply, fit width/height) are
  icons. The menu arrow behind them is the drawn Dropdown chevron.
- Kind marks come from a table in markIcons.ts. Picture kinds use an
  icon, # and Aa stay text because the font has them.
- Scene marks in the asset panel, sound play/stop and the transition
  arrows are icons too.
- Apply is an icon although the font has the arrow. It sits next to
  the reset icon and would look different as a glyph.
- A new Icon widget draws on redraw like Button, so Node tests need no
  DOMParser.
- Tests find icons through the SVG id. The new hook
  __gm.locateIcons(id) and the harness helpers findIcon/clickIcon
  replace locate() on the old characters.

Findings:
- Weight 700 is loaded but the theme never uses it. Left as is.
- The old scene-mark check in module 35 accepted any play glyph on
  screen. It now checks the mark on the start scene's row.
- Module 44 needs the textures from module 37 and fails without it.

Tests:
- ./check.sh: 145 files, 2187 tests, exit 0 (before 144 / 2143).
- New tests/ui/fonts.test.ts: every theme weight is loaded, and every
  character in src/ exists in every shipped face. The cmap reader
  matches fontTools (231 characters).
- Icon tests cover the 19 new files. Each kind mark is either an
  icon or text, never both.
- e2e 1-16,22,30,34,35,43,44: 586 green, 0 FAIL, then 44 stopped
  for lack of module 37. e2e 1-16,37,44,47,48: 618 green.
  e2e 1-14 on the final build: 454 green.
- Two new e2e checks: loaded weights in 14, a reset icon pixel in 04.
- Counter-probes all fail as expected: 500 removed, a play glyph put
  back, the struct icon removed (one unit test each). In the browser,
  500 removed and reset icon hidden fail exactly the two new checks.
- Editor-suite check sum 1312 (1310 measured by CI at 056a622, +2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 08:13:22 +02:00