Skip to content

feat(toolpath-desktop): soft-graphite dark mode + theme toggle#32

Merged
eliothedeman merged 1 commit into
mainfrom
eliot/elated-hawking-09e514
Apr 22, 2026
Merged

feat(toolpath-desktop): soft-graphite dark mode + theme toggle#32
eliothedeman merged 1 commit into
mainfrom
eliot/elated-hawking-09e514

Conversation

@eliothedeman
Copy link
Copy Markdown
Collaborator

Summary

Adds a first-class dark theme to toolpath-desktop, following the Pathbase "Soft graphite" palette from the Claude Design handoff bundle. A ◐ / ◑ toggle lives at the end of the primary tabs bar.

What changed

  • styles.css — new :root[data-theme="dark"] block with the graphite paper stock, warm-cream ink, and muted water/forest/road/contour hues. Two previously hardcoded off-white backgrounds on .pg-card--dead and .pg-card__toggle were promoted to theme-aware vars (--pg-card-dead-bg, --pg-card-toggle-bg). Added .theme-toggle styles and a dark-mode filter for the contour backdrop so it still reads on the darker ground.
  • app.svelte — toggle button at the end of the tabs bar. Theme reads from localStorage['toolpath.theme'], falls back to prefers-color-scheme, and syncs to <html data-theme> via $effect.
  • Dark-mode polish — body background matches window paper (no lighter outer frame), .window border goes transparent, active tab sits a shade below paper so it reads as pressed-in.

Light mode is unchanged — all dark-mode rules are scoped under [data-theme="dark"].

Test plan

  • bun run check — 0 errors (4 pre-existing warnings in BrowseClaude/BrowsePi, unrelated)
  • bun run build — Vite production build succeeds
  • Manually verify toggle click swaps the whole surface — tabs, sidebars, preview body, status bar, viz graph cards
  • Reload the app and confirm the theme persists
  • Confirm the ◐ / ◑ glyph matches the current state on first paint (no light-mode flash)

Implements the Pathbase "Soft graphite" dark theme from the design-system
handoff bundle, wired behind a light/dark toggle in the tabs bar.

- styles.css: :root[data-theme="dark"] block — graphite paper, warm-cream
  ink, muted territory hues. Promoted two hardcoded .pg-card hexes to
  new vars so they flip with the theme. Dark-mode tweaks so the window
  runs edge-to-edge (no lighter outer frame) and the active tab sits a
  shade below paper.
- app.svelte: theme toggle (◐/◑) at the end of the tabs bar; persists
  to localStorage.toolpath.theme, falls back to prefers-color-scheme,
  and syncs to <html data-theme>.
@eliothedeman eliothedeman merged commit 46110c4 into main Apr 22, 2026
1 check passed
@github-actions
Copy link
Copy Markdown

🔍 Preview deployed: https://75c96e64.toolpath.pages.dev

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