-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Summary
The Highlands theme is a warm dark theme with brown-grey surfaces inspired by Scottish moorland. It reads as pleasant but somewhat anonymous — it lacks the distinctiveness of Daintree or Arashiyama. The terminal palette is muted to the point of reduced legibility, and the theme doesn't yet fully express the highlands character: heather purple, pewter sky, peaty shadow.
Problem Statement
Highlands uses surfaces #1A1614 (canvas) and #14110F (sidebar) — a warm charcoal brown. The feel is correct in direction but unfinished:
- The warmth is subtle to the point of being unnoticeable. At small sizes or quick glances, Highlands looks nearly identical to a generic dark grey theme.
- Terminal colors are intentionally desaturated (the muted palette approach works for Arashiyama and Galápagos), but
terminal-green: #4E8C6Aandterminal-blue: #5B7E96are dark enough to risk legibility issues on the canvas background.terminal-magenta: #8B6A8Ain particular is very dim. syntax-string: #C88C45is a warm amber that's used as the primary syntax color, but this competes withsyntax-number: #BE7055which is also a warm tone — they're hard to differentiate at a glance.- The theme has no strong secondary hue that gives it character. Daintree has its cool grey neutrality, Arashiyama has its warm bamboo amber/rust. Highlands needs something — heather purple, moss green, or pewter blue — to anchor its identity.
activity-idle: #4A4238is very close to thesurface-canvasvalue, making idle worktrees barely distinguishable from the background.
Relevant code:
shared/theme/themes.ts#L388-L450— current Highlands token definitions
Desired Behavior
Highlands should feel like the Scottish moorlands: warm dark earthy tones with heather purple accents, grey-pewter sky mid-tones, and deep peat-brown surfaces. The theme should:
- Have a clear identity hue (heather purple or pewter blue) worked into syntax highlighting and/or activity indicators.
- Terminal colors should be legible — all normal ANSI colors should achieve contrast ≥ 3:1 on the canvas background.
syntax-stringandsyntax-numbershould be differentiable — distinct enough hues that code doesn't look monochrome.activity-idleshould be visually distinct from the canvas surface.
Verification Workflow
- Apply the theme:
await setAppTheme(window, "highlands"). - Capture full-page screenshot.
- Measure terminal color contrast against canvas for each ANSI color.
- AI visual evaluation: does the theme have a clear highlands character? Are the syntax colors distinguishable? Does it look distinct from Daintree?
- Iterate and
npm run check.
Acceptance Criteria
- The theme has a recognizable secondary identity hue beyond warm-brown surfaces (heather, pewter, or similar moorland-inspired tone).
- All standard ANSI terminal colors meet ≥ 3:1 contrast against
surface-canvas. -
syntax-stringandsyntax-numberare visually distinct from each other. -
activity-idleis clearly visible against the canvas — it should read as a meaningful UI signal, not blend in. - All E2E tests pass.
Edge Cases & Risks
- Terminal scheme pairing from PR feat(terminal): match terminal color scheme to app theme automatically #3345 — verify app/terminal visual cohesion after token changes.
- Highlands category colors currently use the default shared dark-theme oklch values; if the theme redesign introduces a strong secondary hue, the category colors should be evaluated for coherence.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels