Skip to content

DL-367

Compass UI chrome glyphs are dot-matrix crispEdges SVG on an 11×11 grid, adopting the technique DL-150/DL-199 froze at 9×9 for StateDot/BadgeGlyph (which stay 9×9 — two grid sizes coexist, the components are separate). ActivityBarItem.icon: string is split AT THE ITEM into GlyphTabItem { kind: "glyph"; name: GlyphName } and AvatarTabItem { kind: "avatar"; letter: string } — the field conflated a fixed symbol with an agent handle’s initial, and a field-level union was rejected because it preserves exactly that confusion. The avatar initial is NFKD-normalized and combining-marks-stripped before an ASCII clamp (É→E), falling back to ? only for scripts no Latin letter represents — a bare clamp would collapse distinct non-ASCII handles to identical ? tabs, defeating the per-agent distinguishability the initial exists for. 11×11 does NOT resolve the pre-existing 15px slot violation (that rule governs Departure Mono font sizes via UPM, not SVG boxes); the real hazard is half-pixel placement in the 34px tab, so the glyph box is pinned to a whole-pixel offset. Conversion is wholesale — every chrome symbol becomes a <Glyph/>, including ones Space Mono covers — accepting baseline churn for one vocabulary. This is the path that retires the ~14 MB Unifont pin, in its own stacked PR after the glyph lane recaptures baselines

Status: Active (Matt, 2026-09-12)

Record: ../../ui/compass-glyph-primitives/design.md