@mrbykovoleg

Правильная технология организации ночной темы для сайта?

Появилось желание организовать ночную тему для сайта, как выучить, так и добавить нужную фичу (если думать о посетителях сайта). Можно конечно добавить класс на body со стилями invert(100%), но тогда придется подгонять цвета под светлую тему и ночную, чтобы красиво всё смотрелось. Я в теории планирую выписать стили в отдельный theme-for-night.css и вставлять в head после основного css по клику на checkbox и убирать по второму клику. Вопрос: насколько это адекватный ход мыслей? Подскажите свои идеи по реализации данной фичи. Если какие-то прочтенные Вами статьи, форумы, и тд на эту тему?
---
Надеюсь, это кому-то пригодиться...

Этот код добавляет link после моего главного файла со стилями (3 позиция):

<script>
    function darkTheme()
    {
      var checkbox = document.getElementById('changeTheme'),
        newLink = document.createElement('link'), 
        head = document.getElementById('head'); 
      if(checkbox.checked){
        newLink.rel = "stylesheet";
        newLink.href = "theme-for-night.css";
        newLink.id = "link";
        head.insertBefore(newLink, head.children[3]); // 3 - позиция строки в родителе (head в моем случае)
      }else{
        link.remove(newLink); // убрал "child"
      }
    }
  </script>

	<div>
		<input type="checkbox" id="changeTheme" onclick="darkTheme()">
	</div>
  • Вопрос задан
  • 436 просмотров
Решения вопроса 1
flapflapjack
@flapflapjack
на треть я прав
Если изменениям подвержены не все элементы, а часть, то можно просто сделать night.css и подключать его ночью. Соответственно в night.css только изменения.

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

Как мне кажется простейший и наиболее адекватный вариант.
Инверсию на весь документ вешать - АДъ!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
20 апр. 2024, в 13:56
7000 руб./за проект
20 апр. 2024, в 13:52
7000 руб./за проект
20 апр. 2024, в 13:23
1000 руб./за проект