Темная тема для сайта

Темная тема для сайта
Материал добавлен: 27 Июня 2024
Материал обновлен: 01 Июля 2024
  1. Пошаговая инструкция по добавлению переключателя темной темы
  2. FAQ по работе с темной темой

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

Преимущества ночного режима включают уменьшение усталости глаз при длительном использовании сайта, экономию заряда батареи на устройствах с OLED и AMOLED экранами, а также более стильный и современный вид сайта. Эти факторы делают его привлекательным как для пользователей, так и для разработчиков, стремящихся улучшить пользовательский опыт и внешний вид своих сайтов.

Пошаговая инструкция по добавлению переключателя темной темы 

1. Загрузка необходимых файлов на сайт

Перейдите в "Файловый менеджер" и загрузите файлы "darktheme.js" и "darktheme.css" в соответствующие папки "js" и "css".

Загрузить darktheme.css Загрузить darktheme.js

2. Установка кода для вывода кнопки переключателя темы

Перейдите во вкладку "Дизайн" → "Управление дизайном" → "Редактирование шаблонов" → "Верхняя часть сайта" и добавьте после блока поиска следующий код:

<svg style="position:absolute;top:-10000px;left:-10000px">
<symbol id="sun_icon" viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
 <path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path>
 <path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"></path>
</symbol>
<symbol id="moon_icon" viewBox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
 <path xmlns="http://www.w3.org/2000/svg" d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"/>
</symbol>
</svg>

<button id="dm_btn" class="dm-btn">
<svg class="svg-icon-24"><use xlink:href="#sun_icon"></use></svg>
</button>

Обязательно, перед началом осуществления действий, перейдите в Панель управления: Дизайн → Резервное копирование шаблонов и создайте новую копию, чтобы вернуться к ней в случае, если что-то пойдет не так.

3. Импорт стилей темной темы

Перейдите в шаблон "Таблица стилей (CSS)" и импортируйте ранее добавленный файл стилей темной темы следующим образом:

@import url('/css/darktheme.css');

Примечание: Добавлять код необходимо в самом начале шаблона.

4. Подключения скрипта

Перейдите во вкладку "Дизайн" → "Управление дизайном" → "Редактирование шаблонов" → "Нижняя часть сайта" и добавьте в самом конце следующую строку кода для подключения скрипта:

<script type="module" async src="/js/darktheme.js"></script>

После выполнения всех шагов на вашем сайте в меню появится переключатель для темной темы, который пользователи смогут использовать для изменения темы.

Важно! Данное решение предназначено для Дизайна #2301. Убедитесь, что ваш сайт использует данный шаблон перед применением инструкции.

Демо сайт

FAQ по работе с темной темой

1. Как изменить цветовую схему на свою?

Для изменения цветовой схемы нужно просто отредактировать эти переменные в файле darktheme.css:

.dark-mode {
 --dark-color: #2b2b2b;
 --tpl-border-line-100: 1px solid var(--tpl-dark-300);
 --tpl-border-line: 2px solid var(--tpl-dark-200);
 --tpl-dark-900: #e5e5e5;
 --tpl-dark-800: #d1d1d1;
 --tpl-dark-700: #e5e5e5;
 --tpl-dark-600: #9e9e9e;
 --tpl-dark-500: #858585;
 --tpl-dark-400: #9e9e9e;
 --tpl-dark-300: #525252;
 --tpl-dark-200: #383838;
 --tpl-dark-100: #1f1f1f;
 --tpl-ovelay: rgba(229, 229, 229, 0.5);
 --tpl-ovelay-dark: rgba(0, 0, 0, 0.5);
 --tpl-panel-shadow: 0 4px 14px 0 rgba(0, 0, 0, .13);
 --tpl-accent-blue-dark: #2a53d3;

 background-color: var(--dark-color);
}

Изменяя значения этих переменных, вы можете создать уникальную цветовую схему для своего сайта.

Как использовать пользовательские свойства CSS для создания переменных и их применения в веб-разработке вы можете ознакомиться по ссылке.

Примечание: Выбрать и посмотреть hex-коды всех цветов, вы можете здесь.

2. Как изменить цвета в кнопке переключения темы?

Чтобы изменить цвета в кнопке переключения темы, нужно отредактировать CSS-код, отвечающий за стили этой кнопки. В файле darktheme.css вы найдете следующие переменные:

.dm-btn {
 --dm-btn-shadow: inset 0 2px 4px rgba(0, 0, 0, .1), inset 0 2px 4px rgba(0, 0, 0, .1), inset 0 -2px 2px rgba(0, 0, 0, .1); /* Тень кнопки */
 --dm-btn-bg: var(--tpl-accent-white); /* Фон кнопки в светлом режиме */
 --dm-btn-color: var(--tpl-accent-blue); /* Цвет текста кнопки в светлом режиме */
}

.dark-mode .dm-btn {
 --dm-btn-shadow: inset 0 4px 6px rgba(0, 0, 0, .1), inset 8px 0 8px rgba(0, 0, 0, .1), inset 0 -4px 4px rgba(0, 0, 0, .1); /* Тень кнопки в темном режиме */
 --dm-btn-bg: var(--tpl-accent-blue); /* Фон кнопки в темном режиме */
 --dm-btn-color: #fff; /* Цвет текста кнопки в темном режиме */
}

3. Как задать определенному элементу необходимые параметры?

Чтобы задать определенному элементу не только цвет, но и другие стили (размер, шрифт и т.д.), вы можете добавить новые переменные в класс .darkmode. Например:

.dark-mode {
 --background-color: #2b2b2b; /* Цвет фона */
 --text-color: #ffffff; /* Цвет текста */
 --font-size: 16px; /* Размер шрифта текста */
 --padding: 10px; /* Внутренние отступы */
}

Затем задайте необходимый класс и примените к нему цвет с помощью данной переменной:

.myblock {
 background-color: var(--background-color);
 color: var(--text-color);
 font-size: var(--font-size);
 padding: var(--padding);
}

В HTML добавьте класс .dark-mode к родительскому элементу:

<div class="dark-mode">
 <div class="myblock">
 Ваш контент здесь
 </div>
</div>

4. Как убрать в скрипте привязку к теме браузера и ОС?

По умолчанию в скрипте есть условие, которое автоматически переключает темы в зависимости от темы браузера или операционной системы пользователя. Чтобы убрать эту зависимость, внесите следующие изменения в скрипт, заменив следующий участок кода:

const getPreferredTheme = () => { 
 const mode = localStorage.getItem("darkmode");
 
 if (mode) {
 return mode === "true";
 } else {
 return darkModeMediaQuery.matches;
 }
 };

на следующий:

 const getPreferredTheme = () => localStorage.getItem("darkmode") === "true";

5. Как сделать смену темы в расширении "Мини-чат"?

Для смены темы в расширении "Мини-чат", необходимо в скрипте darktheme.js заменить участок кода:

 const applyMode = (isDarkMode, fromListener = false)=>{
 document.body.classList.toggle('dark-mode', isDarkMode);
 toggleBtnState(isDarkMode, fromListener);
 localStorage.setItem('darkmode', isDarkMode)
 };
на следующий:
 const applyMode = (isDarkMode, fromListener = false)=>{
 document.body.classList.toggle('dark-mode', isDarkMode);
 toggleBtnState(isDarkMode, fromListener);
 localStorage.setItem('darkmode', isDarkMode)

[...document.querySelectorAll('iframe[src="/mchat/"]')].forEach(({contentWindow: {document}}) => {
 const toggleDark = () => document.body?.classList.toggle('dark-mode', isDarkMode);
 document.addEventListener('DOMContentLoaded', () => toggleDark());
 toggleDark();
});
};
Далее в файле стилей darktheme.css к основному классу darkmode добавить класс мини-чата:
.dark-mode, .mchat-body.dark-mode {
*/ остальные стили темной темы */
}

6. Как добавить темную тему в свой шаблон?

Для создания темной темы на другом шаблоне сайта можно использовать данное решение, однако потребуется внесение некоторых правок в файлы CSS и JavaScript, чтобы адаптировать стили под конкретный шаблон.

Загрузка файлов и добавление кода

Для начала, добавьте код переключения темной темы на ваш сайт. Убедитесь, что файлы darktheme.js и darktheme.css загружены и правильно подключены к вашему шаблону.

Внесение правок в файл стилей darktheme.css

Откройте файл darktheme.css и проанализируйте его содержимое. В этом файле задаются переменные цвета и другие стили, которые определяют внешний вид темной темы. Вам потребуется внести следующие изменения:

  • Определить переменные цветов, которые соответствуют вашему шаблону.
  • Применить эти переменные к соответствующим элементам на вашем сайте.

Настройка стилей для конкретного шаблона

Для каждого элемента, который вы хотите адаптировать под темную тему, добавьте соответствующие правила CSS. Например:

.dark-mode {
 --main-bg-color: #333; /* Фоновый цвет главного контейнера */
 --text-color: #fff; /* Цвет текста */
 --link-color: #8cd9d6; /* Цвет ссылок */
 /* Другие переменные и стили */
}

Эти правила задают цвета и другие стили элементов на вашем сайте в темном режиме.

Применение темной темы

После внесения необходимых изменений сохраните файлы и проверьте работу темной темы на вашем шаблоне. При необходимости отладки или доработки стилей, используйте инструменты разработчика браузера для проверки и настройки стилей в реальном времени.

Следуя этим шагам, вы сможете успешно адаптировать темную тему к любому шаблону вашего сайта, сохраняя его уникальный стиль и обеспечивая удобство использования для пользователей.

Темная тема для сайта