The Director's AA (anti-aliased typography) mandate is fulfilled. menu.sg, term.sg, and wmel0.sg all replace bitmap draw_char with ui_glyph — every character in the Lumen UI now routes through the single cov_blend AA path. Tear-off menus, AA terminal grid (64×24, Inter font), AA window titles. PASS. (sigil-os cf755bc)
The mandate
The Director required that all text in the Lumen UI route through exactly one AA path: ui_text_buf → ui_glyph → cov_blend. No bitmap fallback. No two paths. This is both a quality requirement — SDF anti-aliasing throughout — and an architectural requirement: one place to audit, one place to change, one place where font selection and color theming happen.
Before this audit, three components still used the legacy 8×16 bitmap draw_char from el0_fontload.sg: the tear-off menu system, the terminal, and the window manager EL0 surface. Each has now been migrated.
menu.sg — tear-off menus with AA text
New component. Implements a vertical tear-off menu with full AA text throughout. All labels, shortcuts, and section headers route through ui_text_buf → ui_glyph → cov_blend. Colors are sourced via th() tokens — no hardcoded values. Integrates the tearoff.sg palette chrome for the tear strip and drag handle.
Test results: two menus (anchored + torn-off), hit tests, open/close lifecycle. Badge: (74,200,160) PASS.
menu.sg
├── labels/shortcuts → ui_text_buf → ui_glyph → cov_blend
├── section headers → ui_text_buf → ui_glyph → cov_blend
└── tearoff chrome → tearoff.sg palette
term.sg — AA terminal grid
Replaced the 8×16 bitmap draw_char from el0_fontload.sg with ui_glyph (Inter AA via uifont.sg / uitext.sg / fbfmt.sg). Grid: 64×24 cells at 10×20 px. Accent cursor underline rendered via the same path. Terminal text is now AA throughout — every character in every line in every session.
| Before | After |
|---|---|
el0_fontload.sg draw_char (bitmap 8×16) | ui_glyph (Inter SDF AA) |
| Grid: fixed bitmap spacing | Grid: 64×24 cells at 10×20 px |
| No sub-pixel blending | cov_blend coverage blend |
wmel0.sg — AA window titles
Replaced el0_fontload.sg draw_char / draw_text calls with ui_text (AA Inter). The font loading call was updated: load_font() → load_uifont(). Window title bars now route through the AA path. Every window in the Lumen WM now displays titles through cov_blend.
What this means
The Lumen UI has one text rendering pipeline. SDF anti-aliasing. Inter typeface. Coverage blend. Every label, every title, every menu item, every terminal line — one path. The audit is closed.
ui_glyph → cov_blend. PASS.ui_glyph → cov_blend. PASS.ui_text → ui_glyph → cov_blend. load_uifont(). PASS.The Director's mandate — all text routes through one AA path — is satisfied. No bitmap path remains in any Lumen UI component.