feat(landing): add light/dark theme toggle; persist choice in localSt… #708
+265
−7
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.
What’s Added
Added a theme toggle button (sun/moon icon) to the top-right corner of the landing page header.
Implemented default theme = Dark.
Implemented persistent theme preference using localStorage under the key:
drawdb:theme
Added support for system theme detection via:
window.matchMedia('(prefers-color-scheme: dark)')
Added smooth but minimal transition animations with support for
prefers-reduced-motion.
Improved color variables for clean, consistent UI across both themes.
Made toggle accessible:
role="switch"
aria-checked
Keyboard focus (Tab, Enter, Space supported)