Skip to content

feat: rework mint/lavender/lemon into a poppy mint/grape/lemon palette - #31

Merged
lstebner merged 1 commit into
mainfrom
feat/mint-lavender-lemon-themes
Jul 10, 2026
Merged

feat: rework mint/lavender/lemon into a poppy mint/grape/lemon palette#31
lstebner merged 1 commit into
mainfrom
feat/mint-lavender-lemon-themes

Conversation

@lstebner

@lstebner lstebner commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Rebuilds the three colored themes (previously derived from dark's near-black scale, reading as muted/restrained) on light's neutral scale with much higher saturation throughout, per "fun and poppy, not restrained" direction.
  • Renames lavendergrape to match the fruit/candy naming of mint/lemon. lemon's bg-base and grape's accent are anchored on literal reference colors (#ffff81, #6f2da8).
  • lemon gets a unique hover flip: hovering/playing a track row inverts to a dark chip with glowing ink, via a dedicated --row-* token family (pass-through no-op for every other theme).
  • Sidebar and transport bar get their own --chrome-* token family (same pass-through pattern) so those two always-visible surfaces read as themed instead of staying near-white. Popovers/settings/drawer and light are unaffected.
  • Theme switcher swatches now show each theme's --bg-base instead of --accent — accent is a deliberately dark/muted token for text contrast, not what a theme looks like at a glance (this also fixes dark's swatch reading lighter than light's).
  • docs/DESIGN_SYSTEM.md updated throughout: the old "muted, 25–40% saturation" accent rule is replaced, and both new token families are documented with rationale.

Test plan

  • npm run check passes
  • cargo test --lib appearance passes (no theme-list coupling there)
  • Manually verified all three themes, the lemon hover flip, and the chrome surfaces in the running app (confirmed by the reporter)
  • No persisted-theme migration needed — an old lavender id gracefully falls back to dark on next load (existing isTheme() guard)
Screencast.from.2026-07-09.21-25-36.mp4

🤖 Generated with Claude Code

The three colored themes were derived from dark's near-black neutral
scale and read as muted/restrained ("dark theme, different accent dot").
Rebuilds them on light's neutral scale instead, with much higher
saturation throughout — bg-base carries a bold, instantly-recognizable
tint, accents are deep and vivid rather than muted, and lemon's bg-base
and grape's accent are anchored on literal reference colors (#ffff81,
#6f2da8) per direct request. Renames lavender -> grape to match the
fruit/candy naming of mint and lemon.

Also:
- Lemon gets a unique "hover flip": hovering or playing a track row
  inverts to a dark chip with glowing ink instead of staying light,
  implemented as a dedicated --row-* token family (pass-through no-op
  for every other theme) rather than repurposing the shared
  --bg-hover/--bg-selected tokens, since those are consumed by many
  other components that assume a light background.
- Sidebar and transport bar get their own --chrome-* token family (same
  pass-through pattern) so those two always-visible surfaces read as
  themed too, instead of staying near-white regardless of which colored
  theme is active. Popovers/settings/drawer and the light theme are
  unaffected.
- Theme switcher swatches now show each theme's --bg-base instead of
  --accent, since accent is a deliberately dark/muted token for text
  contrast, not what a theme actually looks like at a glance (this also
  fixes dark's swatch reading lighter than light's).

docs/DESIGN_SYSTEM.md is updated throughout: the old "muted, 25-40%
saturation" accent rule is replaced, and both new token families (row-*
and chrome-*) are documented with the same rationale captured here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@lstebner
lstebner merged commit 68d1f67 into main Jul 10, 2026
2 checks passed
@lstebner
lstebner deleted the feat/mint-lavender-lemon-themes branch July 10, 2026 04:27
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