feat(ui): convert the chrome pictographs to dot-matrix glyphs (RIG-3739) - #1211
Merged
trunk-io[bot] merged 1 commit intoSep 13, 2026
Merged
trunk-io[bot] merged 1 commit into
trunk-io[bot] merged 1 commit into
Conversation
This was referenced Sep 13, 2026
rigel-mintaka
added this pull request to stack #1200
September 13, 2026 20:17
rigel-mintaka
marked this pull request as ready for review
September 13, 2026 20:17
|
Compass engineering docs preview: https://compass-ux-3739-chrome-glyph.compass-eng-docs.pages.dev Deployed from Changed pages: |
mattwilkinsonn
approved these changes
Sep 13, 2026
|
😎 Stack merged successfully - details. |
T5a and T5b of the glyph work: every rendered pictographic character in `LeftSidebar`, `App`, `RightSidebar`, and `AgentView` becomes a `<Glyph>` bitmap. 18 new semantic names join the four the activity bar already used, for 22 total. Names describe the role, never the character — `pin`/`pin-outline` for `★`/`☆`, `disclosure` for the caret — so a later art change does not falsify the name. The two verdict-mark sites are the reason the record calls this out. `<Glyph>` is `aria-hidden`, so a bare `✓`/`✗` that WAS the accessible name reads as nothing once converted. Those wrappers now carry `role="img"` plus the verdict word; `RightSidebar.prpane.test.tsx` covers all three verdicts and reddens if either attribute is dropped (measured: 0 pass / 2 fail with the `aria-label` removed, and again with the `role`). `FILE_ICON` was a two-entry map of characters, one of which stays text (`·` is in the brand face). Rather than widen its value type to `GlyphName | string`, it becomes a `FileIcon` component switching on the closed `FileNode["kind"]` union — no cast, no mixed map. The audit table lands in `components.md` rather than the frozen design record, which the ledger says is never edited past its `Status:` header. It records every site's decorative-vs-name-bearing decision, and the two keeps (`·`, `−`) with the reason each is safe: both are present in the Space Mono cmap, verified by parsing the font rather than by eye. The eight drifted baselines are recaptured here, not deferred: the commit that repaints the pixels owns its baseline, so every commit in the stack stays green and a bisect means something. Verified the drift is the glyph swap and nothing else — in `bridge.png`, changed pixels fall only in the left sidebar (x 0..255) and the right activity bar (x 1216..1279), with EXACTLY ZERO in the content area between them, so no text reflowed. Verified: 1111 pass / 0 fail (up from 1109); `compass-ui:typecheck`, `stylelint`, `biome check`, and markdownlint all clean. Reviewed; the a11y of all ~20 converted sites was audited against the JSX individually.
rigel-mintaka
force-pushed
the
compass-ux/3739-chrome-glyphs
branch
from
September 13, 2026 22:06
c3e2ada to
03ea891
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is part of a stack containing 5 PRs:
mainT5a and T5b of the glyph work: every rendered pictographic character in
LeftSidebar,App,RightSidebar, andAgentViewbecomes a<Glyph>bitmap. 18 new semantic names join the four the activity bar already used, for
22 total. Names describe the role, never the character —
pin/pin-outlinefor
★/☆,disclosurefor the caret — so a later art change does notfalsify the name.
The two verdict-mark sites are the reason the record calls this out.
<Glyph>is
aria-hidden, so a bare✓/✗that WAS the accessible name reads asnothing once converted. Those wrappers now carry
role="img"plus the verdictword;
RightSidebar.prpane.test.tsxcovers all three verdicts and reddens ifeither attribute is dropped (measured: 0 pass / 2 fail with the
aria-labelremoved, and again with the
role).FILE_ICONwas a two-entry map of characters, one of which stays text (·isin the brand face). Rather than widen its value type to
GlyphName | string,it becomes a
FileIconcomponent switching on the closedFileNode["kind"]union — no cast, no mixed map.
The audit table lands in
components.mdrather than the frozen design record,which the ledger says is never edited past its
Status:header. It recordsevery site's decorative-vs-name-bearing decision, and the two keeps (
·,−)with the reason each is safe: both are present in the Space Mono cmap, verified
by parsing the font rather than by eye.
The eight drifted baselines are recaptured here, not deferred: the commit that
repaints the pixels owns its baseline, so every commit in the stack stays green
and a bisect means something. Verified the drift is the glyph swap and nothing
else — in
bridge.png, changed pixels fall only in the left sidebar (x 0..255)and the right activity bar (x 1216..1279), with EXACTLY ZERO in the content area
between them, so no text reflowed.
Verified: 1111 pass / 0 fail (up from 1109);
compass-ui:typecheck,stylelint,biome check, and markdownlint all clean. Reviewed; the a11y ofall ~20 converted sites was audited against the JSX individually.