v0.3.20: Theme switcher, switch contrast fix, favicon fix#23
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
next-themes'/localStorage. Added a real light color palette toglobals.css— it was previously byte-for-byte identical to dark, so "light mode" would have looked the same as dark.Switchcomponent: unchecked track had a transparent border and a dimmed fill, making it nearly invisible against the near-black dark background. Now has a permanentborder-borderoutline.app/icon.tsx(a correct, on-brand dynamic icon) was fighting with an explicitmetadata.iconsoverride pointing at stale "V0"-template leftover files inpublic/that didn't match the app's actual logo. Removed the override and the stale files; addedapp/apple-icon.tsxso the Apple touch icon matches too. Both are Next.js file-convention routes generated at request time — no.icofile.Tag
v0.3.20has been pushed with this changelog.Test plan
<html>class immediately, and that the choice survives a page reload (confirmed vialocalStorage.theme).<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 --noEmitshows no new errors (only the two pre-existing, documented errors unrelated to this change).🤖 Generated with Claude Code