This commit introduces a theme switcher component in the header, allowing users to toggle between light and dark modes. The changes include:
- Added a new `ThemeSwitcher` component in `components/header/theme-switcher.tsx` that handles the theme switching logic and UI.
- Integrated the `ThemeSwitcher` component into the `HeaderToolbar` component.
- Updated the global CSS file (`app/globals.css`) to include styles for the light mode.
- Initialized the theme based on user's previous preference or system preference.
- Saved the user's theme preference in the browser's local storage for persistence.
These changes provide a better user experience by allowing users to switch between light and dark modes, which can improve readability and accessibility, especially in different lighting conditions.
Adds a bottom border to the toolbar component to create a more
distinct separation between the toolbar and the content below it.
This change improves the visual hierarchy and overall design of
the page.
Adds `AnimatedLink` component to the toolbar, allowing for
animated links to different sections of the website. This
improves the user experience and provides a more visually
appealing way to navigate the site.
Adds a language switcher icon to the header toolbar and updates the email and
RSS icons. This change improves the user experience by providing a way for
users to switch between different language versions of the site.
Adds new icons and links to the toolbar component, including email, RSS feed, support, and settings. The icons are now displayed as images using the Next.js `Image` component, and the links are wrapped in `Link` components for better navigation. The overall layout and styling of the toolbar have also been improved.
Adds a new toolbar component to the header section. This component
displays the user's profile information and provides links to various
sections of the application, such as email, RSS, support, and settings.
The toolbar is designed to be responsive and visually appealing, with a
clean and modern layout.