Skip to content

feat(seasonal-theme): centralize seasonal theme logic in utility function#352

Open
dzienisz wants to merge 3 commits intomainfrom
feat/theme
Open

feat(seasonal-theme): centralize seasonal theme logic in utility function#352
dzienisz wants to merge 3 commits intomainfrom
feat/theme

Conversation

@dzienisz
Copy link
Collaborator

@dzienisz dzienisz commented Dec 30, 2025

Screenshot 2025-12-30 at 12 01 11

@vercel
Copy link

vercel bot commented Dec 30, 2025

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

Project Deployment Review Updated (UTC)
website Ready Ready Preview, Comment Jan 7, 2026 2:42pm

…tion

- Create getSeasonalTheme utility to manage seasonal features (snow, logo)
- Move Christmas season date logic from Logo component to centralized function
- Add conditional rendering for Snow component based on seasonal theme
- Replace inline date checks with getSeasonalTheme() in Logo component
- Improve maintainability by having single source of truth for seasonal features
…th localStorage persistence

- Create SeasonalControls component with dropdown menu for theme and snow preferences
- Create SeasonalEffects component to handle client-side rendering of seasonal effects
- Add useSeasonalPreferences hook to manage localStorage state with cross-tab sync
- Extend seasonal theme logic with getSeasonalThemeWithMode function supporting manual overrides
- Add SeasonalThemeMode type ('auto' | 'default' | '
…tions

- Add prefers-reduced-motion media query detection with legacy browser support
- Create LegacyMediaQueryList type for older browsers using addListener/removeListener
- Add useEffect hook to monitor motion preference changes with proper cleanup
- Disable snow animations when user prefers reduced motion
- Support both modern addEventListener and legacy addListener APIs for broader compatibility
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