Repository navigation
feat(ui): repoint the favicon set at the brand-red C - #178
Merged
Merged
Conversation
PR #10 pinned the favicon to what was then the TUI banner accent, moving the mark and the default-theme secondary together from #EE0033 to the banner cyan #00cdcd. The banner has since moved to the navy/red wordmark and the cyan accent is gone, leaving the favicon as the only #00cdcd in the tree. On desktop the mismatch was visible: the dock icon is the red C on white while the window and (since #172) notification icons were the cyan C on near-black. The set is now generated from the same geometry as the app icon by generate-icons.ts, so the dock icon, the tab, notifications, the `codev --mini` badge and the landing page icon are one mark in one red. favicon-v3.svg is the hand-written 512-unit source of that geometry. The tab and .ico icons keep the rounded tile so they read as an app icon. apple-touch-icon and the two maskable manifest icons are square and full-bleed: iOS and PWA launchers apply their own mask, and a pre-rounded icon leaves transparent corners that render black. Known cost: on a dark tile cyan was ~9.4:1 at 16px against red's ~4.2:1, so the tab icon is less punchy than it was. Accepted so the brand reads consistently. site.webmanifest is untouched — its theme_color and background_color describe the PWA's chrome and splash, not the icon. generate-icons.ts also skips iconutil off macOS now, leaving the committed .icns alone, so the rest of the assets regenerate anywhere. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The favicon was the last surface still drawing the mark in cyan. It's now the same red C as everything else, generated from the same geometry as the app icon.
Why it was cyan
Not arbitrary — it was pinned to something that moved. PR #10 originally set both the theme accent and the favicon to
#EE0033, then a later commit in the same PR ("hub-style CODEV banner, accent becomes banner cyan") moved the default-theme secondary and the favicon together to#00cdcdso the mark matched the TUI banner.The banner has since moved to the navy/red wordmark, and the cyan accent is gone:
#009999appears nowhere in the tree, and#00cdcdsurvived in exactly one source file —favicon-v3.svg. The favicon's anchor was removed and the favicon wasn't moved with it.On desktop the two sat side by side:
#131010#131010What changed
generate-icons.tsnow emits the favicon set too, from the geometry it already owns. One generator for both sets is the point: these drifted precisely because they had separate sources.favicon-v3.svg— hand-written 512-unit source of the same 4×5 grid, one-unit stroke, unit 60, corner radius 114.5favicon-96x96-v3.png,favicon-v3.ico(16/24/32/48/64/128/256) — rounded tile, so they read as an app iconapple-touch-icon-v3.png(180),web-app-manifest-192x192.png,web-app-manifest-512x512.png— square, full-bleed: iOS and PWA launchers apply their own mask, and a pre-rounded icon leaves transparent corners that render blackgenerate-icons.tsalso skipsiconutilwhen not on macOS now, leaving the committed.icnsuntouched, so everything else regenerates on any platform. Re-running it produced byte-identicalicons/{dev,beta,prod}output, so the desktop icons are unaffected.The trade-off, stated plainly
Cyan was doing real work at 16px: on
#131010it measures about 9.4:1, where red on white is about 4.2:1. The tab icon is genuinely less punchy than it was. Taken deliberately so that every surface draws one mark in one color rather than optimizing the tab in isolation.site.webmanifestis untouched — itstheme_color/background_color(#080808) describe the PWA's chrome and splash screen, not the icon, so a white-tiled icon on a dark splash is the normal arrangement.Verification
desktoptypecheck,uitests passfavicon-v3.icoverified as a 7-entry Windows icon resourcepackages/app/publicsymlinks confirmed resolving to the new bytes🤖 Generated with Claude Code