Skip to content

feat(ui): add the dot-matrix Glyph primitive and its four chrome bitmaps (RIG-3736) - #1194

Merged
trunk-io[bot] merged 1 commit into
mainfrom
compass-ux/3736-glyph-primitive
Sep 13, 2026
Merged

trunk-io[bot] merged 1 commit into
mainfrom
compass-ux/3736-glyph-primitive

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

This PR is part of a stack containing 5 PRs:

  1. main
  2. "feat(ui): add the dot-matrix Glyph primitive and its four chrome bitmaps (RIG-3736)" (this PR)
  3. feat(ui): derive the activity-bar avatar initial through one owner (RIG-3737) #1199
  4. feat(ui): split ActivityBarItem into its glyph and avatar arms (RIG-3738) #1202
  5. feat(ui): convert the chrome pictographs to dot-matrix glyphs (RIG-3739) #1211
  6. feat(ui): finish the chrome glyph conversion (RIG-3739) #1219

Adopts the DL-150 / DL-199 technique for UI chrome symbols: an 11x11 1-bit
grid at one CSS px per cell, shape-rendering="crispEdges", one
<rect width="1" height="1"> per lit cell filled on currentColor so the
consuming control's color flows through.

GLYPH_CELLS is keyed on the exhaustive GlyphName union, so a name without
a bitmap is a compile error rather than a silent runtime blank — the guard
BadgeGlyph's GlyphKey already provides. The four canonical grids are
transcribed into design/components.md §Glyphs, which stays the source of
truth for the geometry.

The glyph is decorative: aria-hidden, no role="img" and no aria-label.
It carries no meaning of its own, so a name-bearing label belongs on the
consuming control. This is the deliberate difference from BadgeGlyph, whose
glyph encodes status.

The vcs glyph is one orthogonally-connected shape: cells that touch only
at a corner read as detached specks at 11px under crispEdges, not as a
line, so the branch is fused to the trunk rather than meeting it diagonally.
status and pr are deliberately multi-part (four blocks, two arrows).

No call-site adopts <Glyph/> yet; ActivityBarItem, the render site, and
the chrome audit follow in later commits of this stack.

Ref: RIG-3736, RIG-3603. Design: docs/designs/ui/compass-glyph-primitives/design.md (DL-367).

Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Sep 12, 2026

Copy link
Copy Markdown

RIG-3736

RIG-3603

@trunk-io

trunk-io Bot commented Sep 12, 2026

Copy link
Copy Markdown

😎 This pull request was merged.

@rigel-mintaka
rigel-mintaka marked this pull request as ready for review September 12, 2026 23:50
@github-actions

github-actions Bot commented Sep 12, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-ux-3736-glyph-primit.compass-eng-docs.pages.dev

Deployed from compass-ux/3736-glyph-primitive at 288e9eb.

Changed pages:

…aps (RIG-3736)

Adopts the DL-150 / DL-199 technique for UI chrome symbols: an 11x11 1-bit
grid at one CSS px per cell, `shape-rendering="crispEdges"`, one
`<rect width="1" height="1">` per lit cell filled on `currentColor` so the
consuming control's color flows through.

`GLYPH_CELLS` is keyed on the exhaustive `GlyphName` union, so a name without
a bitmap is a compile error rather than a silent runtime blank — the guard
`BadgeGlyph`'s `GlyphKey` already provides. The four canonical grids are
transcribed into `design/components.md` §Glyphs, which stays the source of
truth for the geometry.

The glyph is decorative: `aria-hidden`, no `role="img"` and no `aria-label`.
It carries no meaning of its own, so a name-bearing label belongs on the
consuming control. This is the deliberate difference from `BadgeGlyph`, whose
glyph encodes status.

The `vcs` glyph is one orthogonally-connected shape: cells that touch only
at a corner read as detached specks at 11px under `crispEdges`, not as a
line, so the branch is fused to the trunk rather than meeting it diagonally.
`status` and `pr` are deliberately multi-part (four blocks, two arrows).

No call-site adopts `<Glyph/>` yet; `ActivityBarItem`, the render site, and
the chrome audit follow in later commits of this stack.

Ref: RIG-3736, RIG-3603. Design: docs/designs/ui/compass-glyph-primitives/design.md (DL-367).

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass-ux/3736-glyph-primitive branch from b0fbcb3 to 288e9eb Compare September 13, 2026 22:06
@trunk-io
trunk-io Bot merged commit cd55098 into main Sep 13, 2026
15 checks passed
@trunk-io
trunk-io Bot deleted the compass-ux/3736-glyph-primitive branch September 13, 2026 22:43
@trunk-io

trunk-io Bot commented Sep 13, 2026

Copy link
Copy Markdown

This pull request was merged into main as part of stacked PR 1211.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants