Skip to content

feat(theme): Add user-selectable color themes#171

Merged
alphatrl merged 9 commits intomasterfrom
amos/theming-support
Apr 1, 2026
Merged

feat(theme): Add user-selectable color themes#171
alphatrl merged 9 commits intomasterfrom
amos/theming-support

Conversation

@alphatrl
Copy link
Copy Markdown
Owner

@alphatrl alphatrl commented Apr 1, 2026

Purpose

Introduce a theme system that lets users switch between color themes (Blue, Red, Emerald, Pink) from the navigation menu. The selected theme persists across sessions via localStorage.

Changes

  • Add CSS custom properties for theme colors (--theme-50 through --theme-950) with palettes for each theme, mapped through Tailwind's @theme directive
  • Add ThemeContext with ThemeWrapper provider and useTheme hook for theme state management
  • Add inline script in _document.tsx to apply the saved theme before first paint, avoiding flash of default theme
  • Add ThemeSubmenu dropdown in the nav header for theme selection with color dot previews
  • Replace all hardcoded sky-* / text-sky-* color classes with theme-* equivalents across components
  • Fix <title> hydration warning caused by multiple child nodes in SEO component

Files changed

  • src/styles/globals.css — Theme CSS variables and @theme registration
  • src/shared/contexts/ThemeContext.tsx — Theme context, provider, and hook
  • src/pages/_document.tsx — Inline script for pre-render theme application
  • src/pages/_app.tsx — Wrap app with ThemeWrapper
  • src/shared/components/navigation/NavHeader/components/MoreButton/ — Refactored to directory, added ThemeSubmenu
  • src/styles/calendar.css — Replaced sky-* with theme-*
  • src/shared/components/SEO.tsx — Fix title hydration warning
  • Various widget/component files — Replaced hardcoded sky-* classes with theme-*

Demo

user selectable theme-selector

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
classmaid Ready Ready Preview, Comment Apr 1, 2026 8:47am

@alphatrl alphatrl changed the title feat(theme): Introduce a colour theming selector feat(theme): Add user-selectable color themes Apr 1, 2026
@alphatrl alphatrl merged commit 4dddf3a into master Apr 1, 2026
2 checks passed
@alphatrl alphatrl deleted the amos/theming-support branch April 1, 2026 08:50
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