Переключатель темы
Кнопка переключения темы с плавной анимацией иконок солнца и луны. Сохраняет выбор в localStorage и автоматически синхронизируется с системными настройками.
Превью
Особенности
- Плавная анимация переключения иконок через CSS transitions (blur + scale)
- Автоматическое определение системной темы через
prefers-color-scheme - Сохранение выбора в
localStorage - Доступность: кнопка с
aria-labelдля экранных читалок - Корректно работает при серверном рендеринге (SSR)
Использование
Пропсы
| Пропс | Тип | По умолчанию | Описание |
|---|---|---|---|
class | string | '' | Дополнительные CSS-классы |
Theme Store
Компонент использует themeStore из $lib/stores/theme.svelte.ts:
| Свойство / Метод | Тип | Описание |
|---|---|---|
current | 'light' 'dark' | Текущая тема |
isDark | boolean | Проверка тёмной темы |
set(theme) | (theme: Theme) => void | Установить тему |
toggle() | () => void | Переключить тему |
