Conversation
…line App theme did nothing because most chrome colors were hardcoded hex/rgba instead of referencing the --dw-* tokens. Tokenize the structural surfaces, borders, text, note nodes and floating glass panels (menus, composer, plus new --dw-glass / --dw-glass-border / --dw-note-bg / --dw-note-border tokens), so switching the app theme recolors the interface. Composer: remove the left-hand recipient indicator and its "@mention a terminal" hint. Instead each @mention is tinted in the accent color inline, drawn by a highlight overlay behind a transparent textarea — theme-aware. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collapse the separate app-theme and terminal-theme into a single Theme. The chrome's --dw-* tokens are now derived from the selected theme's palette (themeChrome.ts: surfaces/text are mixes toward the palette's own bg/fg so contrast holds), applied alongside the terminal colors — so any built-in or custom theme themes the app too. Also finish tokenizing the chrome: ~250 hardcoded hex/rgba across surfaces, borders, text, buttons, the canvas grid (Background dots + pane) and note nodes now read the tokens, with new --dw-note-text/-success-bg/-danger-bg/ -on-accent. Removes appThemes.ts and settings.appTheme. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The top palette's drop shadow was too heavy (0 10px 34px / 0.4) — reduce it. Inline <code> in settings/note hints used a fixed rgba(0,0,0,0.3) background with no color, so it was illegible on light themes (e.g. Solarized Light); use themed surface + text tokens instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Dogwalker brand mark now tints from theme tokens (brand/leash/on-accent) via inline SVG styles, so it recolors with the theme. Tokenize the last hardcoded colors: the minimap node/stroke/mask colors, git-graph branch lanes (new --dw-lane-* from the palette's ANSI hues), and ~27 accent/red/ green glows (now color-mix over the theme tokens). Dark modal scrims, the dev HUD, and the categorical intent behind lanes are kept as deliberate exceptions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The rendering-tier badge is a developer diagnostic; gate it behind import.meta.env.DEV so it's tree-shaken out of packaged/release builds, matching the DevBar and HUD (already dev-only). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <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.
Follow-up to v1.4.0. Not for merge yet — will be tested manually first.
One theme instead of two
The separate "app theme" and "terminal theme" collapse into a single Theme. Selecting it recolors the terminals and the whole interface together. The chrome's
--dw-*tokens are derived from the selected theme's palette (src/shared/themeChrome.ts): surfaces and text are mixes toward the palette's own background/foreground, so contrast holds for any theme — built-in or a user's custom.json.settings.appThemeandappThemes.tsare gone.Theme actually recolors the chrome (the v1.4.1 bug)
Root cause: ~250 chrome colors were hardcoded hex/rgba instead of referencing tokens, so switching the theme changed almost nothing. Now tokenized:
--dw-on-accentink).--dw-bg) and the dot color (--dw-border-strong, passed to React Flow's<Background>).--dw-note-bg/--dw-note-border/--dw-note-text(a sensible tint in light and dark).The
:roottoken definitions were left literal (no self-references).Composer polish (2/3/4 from the request)
@mentionis tinted in the accent color inline as you type, via a highlight overlay behind a transparent textarea (--dw-accent, theme-aware).Tests
New
themeChrome.test.ts(color mixing, token derivation, apply).Composer.test.tsxhighlight test;Panel.test.tsxupdated for the single Theme section. Full suite green (26 files / 130 tests), typecheck + lint clean.🤖 Generated with Claude Code