Как создать личный проект. Пошаговый план от идеи до реализации | by Илья Сидоренко | Aug, 2021

Рассказываю на основе личного опыта создания шести обучающих продуктов. Бонус к статье: три книги, которые помогут создать личный проект. Эта статья — ответ на вопрос читателя (Телеграм-канал, Инстаграм). Если и у вас появятся вопросы, воспользуйтесь формой на сайте. Буду рад поделиться опытом или мнением. А теперь вернемся к теме статьи — как создать личный проект.…

Google покупает Fitbit для реализации своих собственных больших амбиций

После недели слухов Google подтвердил, что согласился купить компанию Fitbit для отслеживания фитнеса за 2,1 миллиарда долларов, что значительно расширило бизнес аппаратного гиганта. Даже с Fitbit Google будет сложно конкурировать на рынке носимых устройств Apple Watch. Но если Google хочет реализовать свои четко заявленные амбиции размещать свои сервисы повсюду, все время, ему нужно место на…

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

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

Я добавил темы со смесью 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 минутПройдено = ( в настоящее время -

Бесплатные градиенты и примеры их реализации в дизайне

Градиенты на пике своей популярности сегодня. Их нет в списке модных Flat дизайнов. Однако иногда нам нужно возвращаться к старым добрым вещам, чтобы оживить наши замыслы. Градиент, как вы, вероятно, знаете, представляет собой заливку, состоящую из двух или более цветов, плавно смешивающихся между собой. В этом посте я предлагаю вам 10 красивых наборов градиентов для Photoshop,…

примеры и советы по реализации

Вам нравятся картины, фотографии и постеры на стенах? Я их обожаю. Но для того, чтобы очередное произведение искусства нашло свое место, нужно в буквальном смысле испортить поверхность гвоздями. К такому повороту событий в своей новой квартире, едва пережившей капитальный ремонт, я не была готова. Пришлось озадачить подругу-дизайнера поиском достойной альтернативы. И она нашлась – это…

Go to Top