TGViewer
Frontender Libs - обзор библиотек JS / CSS Frontender Libs - обзор библиотек JS / CSS @swebdev · 7.45K subscribers
Post #4089 844
Dark Mode Toggle

Dark Mode Toggle - это удобный способ переключать на темную тему на сайте. Сниппет использует CSS-переменные и локальное хранилище для сохранения выбора темы.

function setupDarkModeToggle() {
const toggleButton = document.querySelector('#theme-toggle');
const root = document.documentElement;
const isDark = localStorage.getItem('theme') === 'dark';

// Устанавливаем начальную тему
if (isDark) {
root.classList.add('dark');
}

toggleButton.addEventListener('click', () => {
root.classList.toggle('dark');
const newTheme = root.classList.contains('dark') ? 'dark' : 'light';
localStorage.setItem('theme', newTheme);
});
}

document.addEventListener('DOMContentLoaded', setupDarkModeToggle);


:root {
--background: #ffffff;
--text-color: #333333;
}

.dark {
--background: #1a1a1a;
--text-color: #ffffff;
}

body {
background: var(--background);
color: var(--text-color);
transition: background 0.3s, color 0.3s;
}


👉 @sWebDev | #полезные_сниппеты
  • 👍 4
More from @swebdev
  1. Sep 26, 2026🤖 AI для фронтенд-разработчика: собираем инструменты на Podlodka Frontend Crew AI-инструм…
  2. Mar 23, 2026👉 @sWebDev | #книги
  3. Mar 23, 2026JavaScript для профессиональных веб-разработчиков Автор доступно объясняет сложные концепц…
  4. Jan 27, 2026Tabulator Библиотека, которая превращает HTML-таблицы или данные из JavaScript в интеракти…
  5. Jan 9, 2026Post #4134
  6. Jan 9, 2026Отложенный вызов Вопрос: Что произойдёт, если передать null в качестве задержки в useTimeo…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →