Темный режим для сайта с помощью Css и javascript — пошаговое руководство

Как создать темный режим для вашего сайта с помощью css и javascript

Темный режим на сайте: как сделать правильно с помощью CSS и JavaScript

Темный режим уже давно стал не просто модной фишкой, а настоящим стандартом удобного интерфейса. Пользователи ценят возможность переключать тему сайта на темную, особенно в вечернее время. Хорошая новость — реализовать это можно довольно просто. Главное — знать нюансы и не наступать на грабли, на которые часто наступают новички.

Зачем вообще нужен темный режим?

Как создать темный режим для вашего сайта с помощью CSS и JavaScript - иллюстрация

Темный интерфейс снижает нагрузку на глаза, особенно в условиях слабого освещения. Он также может экономить заряд батареи на OLED-дисплеях. Поэтому поддержка темного режима — это не только стиль, но и забота о пользователе.

Кроме того, наличие возможности переключения темы — это плюс к UX и конкурентоспособности сайта. Но чтобы реализовать темный режим CSS и JavaScript средствами корректно, нужно учитывать множество деталей.

Простой способ: включение темного режима через CSS

Самый базовый способ — использовать CSS-переменные и класс, который переключает стили. Это быстро и понятно.

1. Задаем переменные в :root:
```css
:root {
--bg-color: #ffffff;
--text-color: #000000;
}
```

2. Применяем переменные в стилях:
```css
body {
background-color: var(--bg-color);
color: var(--text-color);
}
```

3. Добавляем класс `.dark-mode` и переопределяем переменные:
```css
body.dark-mode {
--bg-color: #121212;
--text-color: #e0e0e0;
}
```

И вот так, без лишних сложностей, у вас готов темный режим CSS.

Как сделать переключение темы на JavaScript

Чтобы пользователь мог сам выбрать тему, нужно добавить немного JavaScript. Вот базовый пример:

```javascript
const toggle = document.getElementById('theme-toggle');
toggle.addEventListener('click', () => {
document.body.classList.toggle('dark-mode');

// Сохраняем выбор пользователя
const isDark = document.body.classList.contains('dark-mode');
localStorage.setItem('theme', isDark ? 'dark' : 'light');
});
```

А при загрузке страницы проверяем сохраненные настройки:

```javascript
const savedTheme = localStorage.getItem('theme');
if (savedTheme === 'dark') {
document.body.classList.add('dark-mode');
}
```

Вот и всё — включение темного режима через CSS и JavaScript работает. Переключение темы сайта на темную теперь в ваших руках.

Частые ошибки новичков

Если вы только начинаете, вот на что стоит обратить внимание, чтобы не наломать дров:

  • Забывают использовать CSS-переменные. Многие новички задают цвета напрямую — это усложняет переключение темы. Переменные позволяют централизовать изменения.
  • Не сохраняют выбор пользователя. Если не использовать `localStorage`, пользователь будет видеть светлую тему при каждом заходе, даже если выбрал темную.
  • Игнорируют системные предпочтения. У некоторых пользователей включен тёмный режим на уровне ОС. Ваш сайт может адаптироваться с помощью медиа-запроса `prefers-color-scheme`.

Пример использования предпочтений пользователя:

```css
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #121212;
--text-color: #e0e0e0;
}
}
```

Как не испортить UX при реализации темной темы

Как создать темный режим для вашего сайта с помощью CSS и JavaScript - иллюстрация

Вот несколько практических советов, чтобы тёмный режим не стал кошмаром для пользователя:

  1. Проверяйте контрастность. Некоторые цвета хорошо смотрятся на белом фоне, но становятся нечитаемыми на тёмном. Используйте инструменты проверки контрастности.
  2. Не переусердствуйте с черным цветом. Чисто черный фон (#000000) может быть слишком резким. Лучше использовать темно-серые оттенки, например #121212 или #1e1e1e.
  3. Продумайте иконки и картинки. Светлые изображения на светлом фоне будут теряться. Используйте SVG с адаптивным цветом или дублируйте изображения для разных тем.

Бонус: как сделать темный режим на сайте без кнопки

Как создать темный режим для вашего сайта с помощью CSS и JavaScript - иллюстрация

Если вы хотите, чтобы темная тема включалась автоматически в зависимости от настроек операционной системы, можно обойтись без JavaScript:

```css
@media (prefers-color-scheme: dark) {
body {
background-color: #121212;
color: #e0e0e0;
}
}
```

Такой подход прост, но не дает пользователю выбора — это важно учитывать.

Итог

Темный режим — не просто тренд, а полезная фишка, которую легко реализовать. Используйте CSS-переменные, добавьте переключение через JavaScript и не забудьте сохранить выбор пользователя. Учитывайте предпочтения системы, тестируйте цвета и не забывайте о доступности.

Теперь вы знаете, как сделать темный режим на сайте безопасно и удобно — без лишней головной боли и с максимальной пользой для пользователей.

Scroll to Top