Skip to content

Add a Legacy theme that mimics the pre-overhaul Dash colors - #177

Merged
simo787c merged 3 commits into
mainfrom
feat-og-dash-theme-9d2
Jul 1, 2026
Merged

simo787c merged 3 commits into
mainfrom
feat-og-dash-theme-9d2

Conversation

@simo787c

Copy link
Copy Markdown
Collaborator

Summary

The recent UI overhaul replaced Dash's original "Obsidian Console" palette (neutral grey + orange accent, One-Dark/One-Light terminals) with the current warm-paper / moonlight-blue look. Some users preferred the old colors.

This PR adds an opt-in Legacy theme that reproduces the old look — both the app chrome and the terminal — with light and dark variants that follow the existing Light/Dark mode toggle.

Legacy is implemented as a terminal-palette entry (alongside Dracula, Nord, …). Selecting it also reskins the app chrome via a legacy class on <html>; picking any other palette reverts the chrome to the standard Light/Dark theme. There is no behavioral change for any existing palette.

Proposed changes

  • terminalThemes.ts — add legacyDarkTheme / legacyLightTheme (old One-Dark / One-Light terminal colors), a legacy entry at the end of TERMINAL_THEMES, and a legacy branch in resolveTheme.
  • index.css — add .light.legacy / .dark.legacy chrome token blocks (full token sets reproducing the old white+orange / grey+orange palette), plus a .legacy-scoped flat side-panel override (old Dash had no gradient on the side panels).
  • App.tsx — toggle the legacy class on <html> when the Legacy palette is selected.
  • SettingsModal.tsx — resolve the terminal-preview swatch through resolveTheme (so the Legacy swatch follows Light/Dark) and tag it "auto".

Scoped entirely to the Legacy theme — no other palette changes behavior.

Test plan

  • Settings → Appearance → Terminal palette shows a Legacy entry at the end, tagged "auto".
  • Legacy + Dark → chrome turns neutral grey + orange; terminal uses the old One-Dark colors; side panels are flat (no gradient).
  • Legacy + Light → chrome turns white + orange; terminal uses One-Light.
  • Switch to another palette (e.g. Dracula) → only the terminal recolors; chrome reverts to standard Light/Dark.
  • Restart the app → the Legacy selection persists.
  • pnpm type-check passes; pre-commit hook (Prettier / ESLint / type-check) is clean.

Adds a "Legacy" terminal palette that also reskins the app chrome to the
old "Obsidian Console" look (neutral grey + orange), with light and dark
variants that follow the Light/Dark mode toggle.

- terminalThemes: legacyDark/legacyLightTheme palettes, a `legacy` grid
  entry, and a `legacy` branch in resolveTheme (old One-Dark/One-Light
  terminal colors)
- index.css: `.light.legacy`/`.dark.legacy` chrome token blocks, plus a
  `.legacy`-scoped flat side-panel override (old Dash had no gradient)
- App.tsx: toggle the `legacy` class on <html> when the Legacy palette is
  selected
- SettingsModal: resolve the preview swatch via resolveTheme so Legacy
  follows light/dark, and tag it "auto"

Scoped entirely to the Legacy theme; no change for other palettes.

Co-Authored-By: Claude <noreply@anthropic.com> via Dash <dash@syv.ai>
@simo787c simo787c changed the title Add a Legacy theme that restores the pre-overhaul Dash colors Add a Legacy theme that mimics the pre-overhaul Dash colors Jun 29, 2026
Co-Authored-By: Claude <noreply@anthropic.com> via Dash <dash@syv.ai>
@nthomsencph

Copy link
Copy Markdown
Collaborator

Fix CI errors and merge

@simo787c
simo787c merged commit 649eed4 into main Jul 1, 2026
5 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.

2 participants