Перейти к содержанию
Новости искусства и дизайна
Всё о мировых событиях в мире графического, промышленного и веб дизайна, современного искусства,
Новости искусства и дизайна
  • Главная
  • Рубрики статей
  • Контакты
  • Главная
  • Рубрики статей
  • Контакты

Руководство по реализации темных режимов на веб-сайтах

Вы здесь:
  1. Главная
  2. Статьи по дизайну
  3. Руководство по реализации темных режимов…
Сен302019
Статьи по дизайну



     Эскиз лица Кооса "class =" logo-link__img js-only theme-light-only lazy "/> <img src= Дизайнер пользовательского интерфейса в Берлине. Я также являюсь дизайнером взаимодействия, дизайнером пользовательского опыта, дизайнером продуктов, иммигрантом, пограничным тысячелетием, пограничным кейсом, папой.

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

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

Установка

Темы активируются классами CSS в корневом элементе, . Когда страница загружена, я хочу применить тему, которая наиболее подходит посетителю (вам!) Лучше всего. В конце концов, большинству людей не нравится настраивать веб-сайты до того, как они смогут прочитать сообщение в блоге, поэтому вся функция создания тем, скорее всего, останется неиспользованной. Поэтому я должен сделать предположение о том, что посетитель хочет и ожидает. Я делаю это в следующем порядке:

  1. Я предполагаю, что люди не хотят, чтобы тема менялась при переходе между страницами. Поэтому, если загруженная страница — не первая, которую они посещают, я хочу использовать тему, которая использовалась ранее.
  2.   

  3. Если это первая страница, которую они просматривают на моем сайте, их браузер может определить их предпочтения.
  4.   

  5. Если предпочтения нет, мы можем основывать выбор на основании того, день это или ночь.

Я также хочу реагировать на изменения:

  • Когда тема изменяется в одной вкладке браузера, все остальные вкладки с веб-сайтом должны меняться вместе с ней
  •   

  • Когда посетители меняют свою ОС со светлой на темную или наоборот, веб-сайт должен реагировать на это.

Превращение этой логики в Javascript:

  
 1
2
3
4
5
6
7
8
9
  (  функция   initializeTheme   () {
   syncBetweenTabs   () 
   listenToOSChanges   () 
   enableTheme   (
     returnThemeBasedOnLocalStorage   ()   || 
     returnThemeBasedOnOS   ()   || 
     returnThemeBasedOnTime   (), 
     ложно  ) 
} ())  

Конечно, посетители должны иметь возможность вручную выбрать тему, если я угадаю неправильно. Наконец, я добавил переход, когда тема меняется. Это также делается с помощью класса CSS, добавленного к корневому элементу.

Это базовая настройка, теперь давайте углубимся в детали!

Состояние сохранения и загрузки

Когда посетитель переходит со страницы на страницу, тема не должна меняться. Поэтому я сохраняю состояние выбранной темы, чтобы ее можно было загрузить на следующей странице. Рассмотрев некоторые альтернативы (см. Ниже), я попал на сохранение выбранной темы в локальном хранилище.

Каждый раз, когда страница загружается, в текущей или новой вкладке, она проверяет, была ли тема установлена ​​ранее. Поскольку предпочтения для светлой или темной темы могут изменяться в течение дня, при каждом изменении я добавляю отметку времени к сохраненной настройке. Только когда состояние было сохранено менее двух часов назад, оно применяется:

  
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  function   returnThemeBasedOnLocalStorage   ()   {
   const pref = localStorage . getItem [1945934] 'предпочтения-тема' )
   const lastChanged = localStorage . getItem предпочтение-тематический последнее изменение " )
   пусть сейчас = новый Дата ()
   сейчас = сейчас . getTime ()
   const минутПройдено = ( в настоящее время -

Category: Статьи по дизайну30.09.2019
Теги: вебсайтахнапореализациирежимовруководствотемных

Пожалуйста, поставьте рейтинг статье:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться этой записью
Share with FacebookShare with TwitterShare with Google+Share with PinterestShare with LinkedInShare with WhatsApp

Навигация по записям

ПредыдущаяПредыдущая запись:Вкус — Дизайн-кабакСледующаяСледующая запись:Самые дорогостоящие поломки iPhone | 10pix.ru

Связанные записи

Графичные перегородки, камин и молотый камень в интерьере семейного загородного дома — проект Юлии Истратовой
28.12.2025
Lemay спроектировала пристройку к Ораторию ​Святого Иосифа
27.12.2025
Как написанные искусственным интеллектом тексты влияют на ранжирование веб-сайтов Google
26.12.2025
Шкаф-трансформер и стеклоблоки в интерьере инвестиционной квартиры — проект Елены Потемкиной
26.12.2025
Дуэт Agence GG установил рождественскую инсталляцию во Франции
25.12.2025
Визуальный покой и нейтральная палитра в интерьере клиники — проект Александры Бурмистровой
24.12.2025

Самые свежие статьи

  • Графичные перегородки, камин и молотый камень в интерьере семейного загородного дома — проект Юлии Истратовой Графичные перегородки, камин и молотый камень в интерьере семейного загородного дома — проект Юлии Истратовой
  • Lemay спроектировала пристройку к Ораторию ​Святого Иосифа Lemay спроектировала пристройку к Ораторию ​Святого Иосифа
  • Как написанные искусственным интеллектом тексты влияют на ранжирование веб-сайтов Google Как написанные искусственным интеллектом тексты влияют на ранжирование веб-сайтов Google
Useful Links
Go to Top

Поделитесь статьей!

  • Facebook
  • Google
  • Twitter
close-link