Skip to content

feat(phase66): light mode for app chrome - #96

Merged
SuperLogicAI merged 1 commit into
mainfrom
feat/phase-66-light-mode
Oct 18, 2026
Merged

SuperLogicAI merged 1 commit into
mainfrom
feat/phase-66-light-mode

Conversation

@SuperLogicAI

Copy link
Copy Markdown
Owner

Changes

Adds a System / Light / Dark theme for the app chrome (Plan 066). The toggle sits right-aligned in the titlebar, and Tour moves next to it. The terminal pane keeps its fixed dark background in every mode.

  • No class rewrites. A single :root[data-theme="light"] block re-points zinc to a warm neutral scale on #F5F0E8, with raised surfaces (bookmarks bar, selected tab, cards) at #E7E2DA. It also re-shades the Plan 050 role tokens so tinted cards show on cream. Light Lock-in has a matching override.
  • Pref in localStorage. It is applied in main.tsx before first render, and System follows the OS appearance live.
  • Icons. Monochrome public/*.svg icons (home, split, traffic, fan out, isolate) darken in light via .mono-icon.
  • Accent-shade fixes.
    • Fan out's Launch keeps dark text on sky.
    • Inset text wells lighten in light.
    • Decision card glyphs are resized.
  • Hardcoded zinc hexes became zinc variables.

No new dependencies, Rust, schema, migration or prompt changes.

Validation

  • Gates. npm run check (new theme:check: pref parse/resolve/cycle, #F5F0E8 / #E7E2DA anchors, terminal stays dark, every /x.svg <img> carries mono-icon), npx tsc --noEmit, npm run build, git diff --check. Rust untouched; cargo not rerun. Golden not run (no prompt change).
  • Maintainer review. The maintainer rebuilt and reviewed the installed app between tuning rounds.
  • Preview harness (Playwright Chromium). The real App and CSS ran in a temporary harness with Tauri IPC mocked and placeholder data only.
    • Behavior:
      • The toggle cycles and persists.
      • System follows OS appearance changes live.
      • Forced Dark ignores the OS.
      • The first React paint already carries the stored theme.
    • Screenshots: every major Light surface (Home, workspace, split, compact rail, Lock-in, modals, Idea Board); Dark spot-checked.

Coverage limits

  • Titlebar drag vs. Tour/toggle click needs the installed Tauri app.
  • The native frame before JS runs on launch is still dark.
  • Landing countdown modal and diff pop-out with real content were not reachable in the harness.
  • Chromium was used, not WKWebView.

Details in docs/TESTING.md (Phase 66).

🤖 Generated with Claude Code

System / Light / Dark theme via a titlebar toggle (Tour moves beside it).
One CSS override re-points zinc to a warm scale on #F5F0E8 (raised
surfaces #E7E2DA) and re-shades the Plan 050 role tokens, so no class
rewrites. Pref lives in localStorage and applies before first render.
The terminal pane keeps its fixed dark background. Monochrome SVG icons
darken in light via .mono-icon; theme:check guards the anchors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SuperLogicAI
SuperLogicAI merged commit a429fb6 into main Oct 18, 2026
3 checks passed
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