Skip to content

v0.3.20: Theme switcher, switch contrast fix, favicon fix#23

Merged
SylonZero merged 2 commits into
masterfrom
feat/theme-switcher-and-favicon
Jul 14, 2026
Merged

v0.3.20: Theme switcher, switch contrast fix, favicon fix#23
SylonZero merged 2 commits into
masterfrom
feat/theme-switcher-and-favicon

Conversation

@SylonZero

Copy link
Copy Markdown
Owner

Summary

  • Light/dark/system theme switcher in the header (dropdown next to the notification bell), persisted via next-themes'/localStorage. Added a real light color palette to globals.css — it was previously byte-for-byte identical to dark, so "light mode" would have looked the same as dark.
  • Fixed the Switch component: unchecked track had a transparent border and a dimmed fill, making it nearly invisible against the near-black dark background. Now has a permanent border-border outline.
  • Fixed the favicon: app/icon.tsx (a correct, on-brand dynamic icon) was fighting with an explicit metadata.icons override pointing at stale "V0"-template leftover files in public/ that didn't match the app's actual logo. Removed the override and the stale files; added app/apple-icon.tsx so the Apple touch icon matches too. Both are Next.js file-convention routes generated at request time — no .ico file.

Tag v0.3.20 has been pushed with this changelog.

Test plan

  • Verified in a live browser (Playwright, demo account) that toggling Light/Dark/System updates <html> class immediately, and that the choice survives a page reload (confirmed via localStorage.theme).
  • Verified the Switch is now clearly visible in both checked and unchecked states, in both themes.
  • Verified only one <link rel="icon"> and one <link rel="apple-touch-icon"> are emitted, both pointing at the dynamic routes, and confirmed the rendered icon matches the app's actual logo.
  • tsc --noEmit shows no new errors (only the two pre-existing, documented errors unrelated to this change).

🤖 Generated with Claude Code

Sai Prakash and others added 2 commits July 14, 2026 14:52
…vicon

- Wire up next-themes (already installed but unused): ThemeProvider in
  the root layout, a proper light color palette in globals.css (was
  previously identical to dark), and a Light/Dark/System dropdown in
  the header. Persists via next-themes' localStorage handling.
- Switch component: the unchecked track had a transparent border and
  relied on a dimmed bg-input fill alone, making it nearly invisible
  against the near-black page background. Give it a permanent
  border-border outline and drop the dark-mode opacity reduction.
- Favicon: app/icon.tsx (dynamic, on-brand) was fighting with an
  explicit metadata.icons block pointing at stale "V0" template
  leftovers in public/ (icon.svg, icon-{light,dark}-32x32.png,
  apple-icon.png) that didn't match the app's actual logo. Removed the
  metadata override and the stale files, and added app/apple-icon.tsx
  so Apple touch icons match too — both are now Next.js file-convention
  routes generated at build/request time, no .ico needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@SylonZero SylonZero merged commit 67bb487 into master Jul 14, 2026
1 check passed
@SylonZero SylonZero deleted the feat/theme-switcher-and-favicon branch July 14, 2026 19:00
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