Skip to content

feat(banner): adopt CoDev Code's "codev" wordmark, theme-aware - #222

Merged
quickbeard merged 3 commits into
mainfrom
feat/codev-wordmark-banner
Jul 30, 2026
Merged

feat(banner): adopt CoDev Code's "codev" wordmark, theme-aware#222
quickbeard merged 3 commits into
mainfrom
feat/codev-wordmark-banner

Conversation

@quickbeard

Copy link
Copy Markdown
Owner

What

Replaces the block CODEV ASCII logo with CoDev Code's lowercase "codev" pixel wordmark (ported verbatim from codev-code/packages/tui/src/logo.ts), and makes it light/dark aware.

  • "co" on the left, "dev" on the right, bold, no drop shadow.
  • "dev" is always the brand red #ee0033.
  • "co" is the brand navy #19224c on a light terminal (matching CoDev Code's TUI mode === "light" branch) and the terminal's default foreground on a dark or unknown one — the readable counterpart of navy-on-white, mirroring how CoDev Code's own CLI banner handles the undetectable case.
  • Keeps the AI Coding Agent Hub v<version> subtitle.

Rendered

Dark / unknown terminal — co in default foreground, dev red:

          ▄
█▀▀▀ █▀▀█ █▀▀█ █▀▀█ █  █
█    █  █ █  █ █▀▀▀ █  █
▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀  ▀▀
AI Coding Agent Hub v0.5.2

Light terminal (COLORFGBG=0;15) — co switches to brand navy, dev stays red.

New: theme detection

src/lib/terminal-theme.ts#terminalIsLight — a synchronous, best-effort light/dark detector via COLORFGBG, the only signal available without an escape-sequence round trip that would fight Ink for the TTY. Returns true/false/null; on null (unknown) the banner falls back to the always-readable default foreground.

Note on limits: COLORFGBG isn't set by every terminal (iTerm2, macOS Terminal don't), so on those the banner uses the default-foreground fallback and only upgrades "co" to navy when a light background is explicitly advertised. The full navy-on-light / foreground-on-dark split is only guaranteed inside CoDev Code's TUI, which has a real theme context this CLI does not.

Tests

  • Banner.test.tsx updated to assert the new wordmark glyphs.
  • New tests/lib/terminal-theme.test.ts covering light/dark/rxvt fg;default;bg/unset/malformed cases.

Validation

pnpm fix, pnpm typecheck, pnpm test (1256 passed), and pnpm build && node dist/index.js --version all pass (also enforced by the pre-commit hook).

🤖 Generated with Claude Code

quickbeard and others added 3 commits July 30, 2026 20:43
Replace the block CODEV logo with the lowercase "codev" pixel wordmark
from codev-code (packages/tui/src/logo.ts): "co" on the left, "dev" on
the right, no drop shadow, bold. "dev" is always the brand red (#ee0033);
"co" is the brand navy (#19224c) on a light terminal and the terminal's
default foreground on a dark or unknown one -- the readable counterpart
of navy-on-white, matching how codev-code's own CLI banner handles the
undetectable case.

Add src/lib/terminal-theme.ts#terminalIsLight, a synchronous best-effort
light/dark detector via COLORFGBG (the only signal that avoids an
escape-sequence round trip that would fight Ink for the TTY); it returns
null when unknown so the banner falls back to the always-readable
default foreground.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The "codev" wordmark's top row is near-empty (just the tittle of the
"d"), so the pre-existing padding={1} top line on each app's outer Box
made the banner read as floating two lines below the user's command.
Switch those wrappers to paddingX + paddingBottom, keeping side and
bottom spacing while removing the top gap. The block logo hid this
because its first row was solid.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@quickbeard
quickbeard merged commit 3f3956a into main Jul 30, 2026
2 of 4 checks passed
@quickbeard
quickbeard deleted the feat/codev-wordmark-banner branch July 30, 2026 13:54
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.

1 participant