Draw the + on the pixel grid so it stays sharp on 1x screens

On a 1x display TDesign's + smeared at every small size: its 24-grid
strokes are centred on the box's middle, which at 12 or 14px is a pixel
boundary, so each ~1px bar covered two pixels at half ink. A thinner
stroke alone keeps the bar on the boundary. This is not Electrobun:
headless Chrome renders the same.

pixelAdd (icons.ts) redraws the + on the 14px grid with 1px bars at 7.5,
so they fill whole pixels at 1x and 2x, half a pixel off-centre. It
replaces tdesignAdd in the tab bar, the shortcut rows, the connection
manager and the tab menu. Checked at 1x in the real tab-bar and
shortcut-row markup: single-pixel bars at full ink.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-10-09 12:09:20 +02:00
co-authored by Claude
parent fa2cec7136
commit 3f7145d69a
7 changed files with 23 additions and 8 deletions
+3 -2
View File
@@ -372,8 +372,9 @@ component; tokens → `ui/src/styles.css`.
walker check the flag themselves.
- `file-icons.ts` — extension → category map driving glyphs, colors
(fixed `--icon-*` tokens from Oxide's hue scales) and the Kind column.
- `icons.ts` — the one icon registry (TDesign, `@ng-icons/tdesign-icons`), passed to
`provideIcons` in `app.config.ts`. Icon names are plain strings in templates and
- `icons.ts` — the one icon registry (TDesign, `@ng-icons/tdesign-icons`, plus one
redrawn glyph: `pixelAdd`, TDesign's + on the 14px pixel grid so it stays sharp
on 1x screens), passed to `provideIcons` in `app.config.ts`. Icon names are plain strings in templates and
the build never checks them: an unregistered name renders nothing (console error
only), so every name used anywhere must be listed here.
- `platform.ts` — preload-global readers (`PLATFORM`, `APP_MODE`,