Repository navigation
feat(ui): draw the codev C in Splash and Mark - #176
Merged
Merged
Conversation
The icon/wordmark rebrand only reached `Logo`, so upstream's square "o" still shipped in the last two glyphs that render it: the desktop boot splash, the app loading overlay, the connection-error screen, the two session side-panel watermarks and the v1 new-session view. Both glyphs now draw the codev C — the block art `█▀▀▀ / █ / ▀▀▀▀` on a 4x5 grid with a one-unit stroke, the same geometry the app icon and the `codev --mini` badge use — as one full-bleed path each. Upstream's second path, which shaded the lower half of the "o"'s enclosed counter, is dropped: the C is open on the right so there is no counter to shade, and the TUI badge is a flat outline for the same reason. The two split on color. `Splash` is brand-locked through a new `--logo-splash: #ee0033`, declared once with no dark-mode swap — red clears 4:1 against both the light and dark `background-base`, unlike the wordmark's navy half. `Mark` keeps `var(--icon-strong-base)` because two of its three call sites are `opacity-10` watermarks, where brand red reads as a pink wash rather than a neutral texture. The static `opacity-50` on the two splash call sites is left as is: this fork's `animate-pulse` is `pulse-opacity` (0.4 -> 1 -> 0.4), which overrides the declared opacity for the whole animation, so removing it would be a no-op in two upstream files. 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.
Upstream's square "o" survived the icon/wordmark rebrand in the last two glyphs that still render it.
Logowas rebranded in #170;MarkandSplashwere explicitly carved out at the time. This closes that gap.Affects the desktop boot splash, the app loading overlay, the connection-error screen, the two session side-panel watermarks and the v1 new-session view — all from one file.
What changed
Both glyphs draw the codev C as one full-bleed path each: the block art
█▀▀▀ / █ / ▀▀▀▀on a 4x5 grid with a one-unit stroke, the same geometrypackages/desktop/icons/icon.svgand thecodev --minibadge use.Splash— viewBox0 0 80 100, unit 20,M0 0H80V20H20V80H80V100H0ZMark— viewBox0 0 16 20, unit 4,M0 0H16V4H4V16H16V20H0ZUpstream's second path on each glyph — which shaded the lower half of the "o"'s enclosed counter in
--icon-weak-base/--icon-base— is dropped. The C is open on the right, so there is no counter to shade, and the TUI badge is a flat outline for the same reason.Why they split on color
Splash--logo-splash#ee0033#ee0033Mark--icon-strong-base#1d1917#ede8e4Splashis brand-locked, following the precedent already set for this exact glyph inpackages/opencode/src/cli/cmd/run/theme.ts(BRAND_MARK), so the boot splash, the dock icon, the landing page icon and the terminal badge are one glyph in one red. It needs no dark-mode swap — red clears 4:1 against both the light and darkbackground-base, unlike the wordmark's navy half.Markstays tokenized: two of its three call sites areopacity-10watermarks in the session side panel, where brand red renders as a pink wash instead of a neutral texture.Deliberately not changed
The static
opacity-50on the two splash call sites. This fork'sanimate-pulseispulse-opacity(0.4 → 1 → 0.4, not Tailwind's stock1 → .5), which overrides the declared opacity for the entire animation — verified by reading computed opacity in the running app. Removing it is a visual no-op that would touch two upstream files.Known follow-up
At the 0.4 pulse floor, red on the dark ground composites to
#6a0b1f— about 1.5:1 against#121212, where the grey it replaced held 3.4:1. Opacity blends toward the ground and red has little luminance to spend: the green channel carries 71.5% of perceived luminance and#ee0033has none of it. Only the dark ground really changed — on light the trough was always soft (grey 2.5:1, red 2.0:1).It recovers to full strength every two seconds, so this may just be what a pulse looks like. Holding 3:1 on dark would need a floor near 0.8, which is barely a pulse — so the real choice is to accept the trough or to stop pulsing opacity on a brand-locked mark and use the
pulse-scalekeyframes the app already ships. Note the blast radius of a global change is small: the only otheranimate-pulsecall site in the app is one sidebar skeleton.Verification
uitypecheck + 9 tests,desktoptypecheck + 63 tests,apptypecheck — all passdand fills--logo-splashresolves to#ee0033under bothdata-color-schemevalues in the running appe2eselectors reference these glyphsDIVERGENCES.mdrow updated: keepSplashbrand-locked andMarktokenized on conflict, and re-apply the C rather than taking back the "o".🤖 Generated with Claude Code