75 lines
4.4 KiB
Markdown
75 lines
4.4 KiB
Markdown
# Transport icon reconciliation
|
|
|
|
Branch `codex/transport-icons` starts at completed integration commit `0a5b113`.
|
|
|
|
The previous shell mixed filled inline SVGs (main/stage/fullscreen) with Unicode
|
|
play/pause/previous/next glyphs (mini, service, remote, gesture feedback, queue and
|
|
playlist actions). All rendered transport glyphs now use shared currentColor SVG
|
|
symbols defined in the already-eager `download-actions.js`; no new runtime file,
|
|
loader or worker change is required. The core/playback/queue bodies remain guarded
|
|
by their existing byte hashes. `updatePlayBtn` now has a behavioural state/handler
|
|
regression test instead of an obsolete byte-identity assertion.
|
|
|
|
| Location | Change |
|
|
|---|---|
|
|
| `frontend/download-actions.js:40` | Shared drawing/state or markup |
|
|
| `frontend/download-actions.css:13` | Shared drawing/state or markup |
|
|
| `frontend/index.html:212` | Shared drawing/state or markup |
|
|
| `frontend/app.js:3089` | Shared drawing/state or markup |
|
|
| `frontend/fullscreen-orientation.js:112` | Shared drawing/state or markup |
|
|
| `frontend/car-mode.js:13` | Shared drawing/state or markup |
|
|
| `frontend/remote-client.js:424` | Shared drawing/state or markup |
|
|
| `frontend/lyrics-window.js:27` | Shared drawing/state or markup |
|
|
| `frontend/views-core.js:225` | Shared drawing/state or markup |
|
|
| `frontend/shell-core.js:157` | Shared drawing/state or markup |
|
|
| `frontend/share-external.js:189` | Shared drawing/state or markup |
|
|
| `frontend/admin.html:388` | Shared drawing/state or markup |
|
|
| `frontend/glass-controls.js:10` | Shared drawing/state or markup |
|
|
| `frontend/stats-view.js:52` | Shared drawing/state or markup |
|
|
| `frontend/watch-party-client.js:350` | Shared drawing/state or markup |
|
|
|
|
Inventory: main deck previous/play/next/back10/forward10; stage back10/play/forward10;
|
|
mini play; service previous/play/next; remote previous/play/next and paired-screen
|
|
play; fullscreen HUD; gesture feedback; Car previous/play/back15/next; floating
|
|
lyrics play/next; homepage playlist play badges; Queue/sidebar/bottom-navigation
|
|
play symbols; Play all/queue/in-full, bookmark jump and Add-to-queue actions;
|
|
external-player launch links; admin editor play/pause and Play-here actions;
|
|
track-play statistics, party now-playing and empty-state/brand symbols. Speed's
|
|
old fast-forward glyph also uses the shared set. Glass's legacy decoder accepts
|
|
old input strings but emits shared SVG references; it never restores a transport
|
|
Unicode icon from the new markup.
|
|
|
|
F7 uses round filled shapes and a large circular play button. Classic keeps its
|
|
existing surfaces with clean line drawings. Glass uses thin strokes and translucent
|
|
surfaces. Bento uses rounded tiles. Labels, IDs and event handlers remain intact;
|
|
visible transport targets have at least 44px dimensions. Car retains its readable
|
|
high-contrast surface and text labels. Floating lyrics clones symbol definitions
|
|
into its separate document and observes playback/layout/theme changes.
|
|
|
|
Presenter has no transport controls. F7's Up-next sheet uses clickable track rows,
|
|
not old transport glyphs. Lock-screen controls are rendered by the OS through
|
|
unchanged MediaSession action handlers; website SVG/CSS cannot theme those buttons.
|
|
|
|
A screenshot/bounding-box check caught a Chromium SVG-reference quirk: ancestor
|
|
layout selectors changed styles in referenced groups without switching cloned
|
|
geometry (F7 previous remained x=5 instead of x=4). Variant selection now lives on
|
|
visible `<use>` elements; the harness checks the rendered bounds, not just styles.
|
|
|
|
Final verification:
|
|
|
|
```text
|
|
node --test frontend/*.test.js: 246 pass, 0 fail
|
|
bun test asset-manifest.test.js static-delivery.test.js: 21 pass, 0 fail
|
|
node perf/ui-geometry.mjs: 384 cases; 0 failed checks
|
|
node perf/ui-icons.mjs: 24 engine/layout/theme cases passed
|
|
```
|
|
|
|
Both engines passed transport state/geometry checks and the original download-icon
|
|
checks. All sources are free of rendered legacy transport glyphs. The only remaining
|
|
Unicode transport strings are the legacy decoder input mapping. Evidence is in
|
|
`perf/results/transport-icons-2026-10-09.json`; 48 transport preview/remote screenshots
|
|
were saved and the four dark-layout previews were visually inspected. Screenshots are local
|
|
and ignored in `plans/transport-shots/` and `plans/ui-shots/`. Real iPhone checks:
|
|
Car/fullscreen readability and native lock-screen controls; document PiP is browser
|
|
feature-dependent and was not verified on a real phone.
|