prefers-color-scheme
Свойство prefers-color-scheme — это медиавыражение, которое определяет выбранную в предпочтениях пользователя настройку темы в операционной системе. Свойство поддерживается всеми основными браузерами.
Пример
В этом коде с помощью prefers-color-scheme определяем, что у пользователя выбрана светлая тема, и задаём для неё свои цвета.
👉 @seniorFront
Свойство prefers-color-scheme — это медиавыражение, которое определяет выбранную в предпочтениях пользователя настройку темы в операционной системе. Свойство поддерживается всеми основными браузерами.
Пример
В этом коде с помощью prefers-color-scheme определяем, что у пользователя выбрана светлая тема, и задаём для неё свои цвета.
@media (prefers-color-scheme: light) {
.block {
background: white;
color: black;
}
}👉 @seniorFront
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Golf Toggle
Оригинальный переключатель, анимированный в CSS. Логика смены CSS классов при нажатии реализована в JS.
👉 @seniorFront
Оригинальный переключатель, анимированный в CSS. Логика смены CSS классов при нажатии реализована в JS.
👉 @seniorFront
🔥15👎2🤔2
Вам не нужен Lodash. Хватит! Пожалуйста
Лодаш:
- Имеет множество методов установки, каждый из которых может вызывать проблемы и головную боль с подключением
- Легко подключается целиком вместо нескольких нужных вам методов
- Не обновляется
- Не нужен в 95% случаев
- Мешает пониманию действительно современных методов
Вам не нужен лодаш. Пройдитесь по своим методам, выкиньте доступные в нативе, замените недоступные (если они вам точно нужны).
А если уж вы его используете:
- Используйте es-версию с костылями под TS, если потребуются, или обычную с плагинами для tree-shaking
- Не используйте эти отдельные пакеты - только lodash или lodash-es
- Не увеличивайте его процент использования в вашем коде. Пожалуйста
Вы может быть еще и Moment используете? Тоже пора обновляться!
👉 @seniorFront
Лодаш:
- Имеет множество методов установки, каждый из которых может вызывать проблемы и головную боль с подключением
- Легко подключается целиком вместо нескольких нужных вам методов
- Не обновляется
- Не нужен в 95% случаев
- Мешает пониманию действительно современных методов
Вам не нужен лодаш. Пройдитесь по своим методам, выкиньте доступные в нативе, замените недоступные (если они вам точно нужны).
А если уж вы его используете:
- Используйте es-версию с костылями под TS, если потребуются, или обычную с плагинами для tree-shaking
- Не используйте эти отдельные пакеты - только lodash или lodash-es
- Не увеличивайте его процент использования в вашем коде. Пожалуйста
Вы может быть еще и Moment используете? Тоже пора обновляться!
👉 @seniorFront
👍12👎8
Метрики, которые действительно имеют значение
Способность определить, что работает, а что нет, имеет решающее значение для определения успеха продукта. Кроме того, это позволяет руководителям продуктов правильно приоритезировать планы и инициативы. Принять решение о том, какими будут показатели успешности — важно, поскольку есть множество метрик, которые необходимо отслеживать, и отсутствие чёткого определения показателей успешности может дезинформировать.
В этой статье рассматриваются виды метрик и рассказывается о том, как их выбрать.
👉 @seniorFront
Способность определить, что работает, а что нет, имеет решающее значение для определения успеха продукта. Кроме того, это позволяет руководителям продуктов правильно приоритезировать планы и инициативы. Принять решение о том, какими будут показатели успешности — важно, поскольку есть множество метрик, которые необходимо отслеживать, и отсутствие чёткого определения показателей успешности может дезинформировать.
В этой статье рассматриваются виды метрик и рассказывается о том, как их выбрать.
👉 @seniorFront
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Card Hover Effect - 100
Карточки свёрстаны на HTML и CSS. Частицы реализованы библиотекой particlesJS.
👉 @seniorFront
Карточки свёрстаны на HTML и CSS. Частицы реализованы библиотекой particlesJS.
👉 @seniorFront
👍5🔥4
Media is too big
VIEW IN TELEGRAM
Amazing Liquid Dripping Effects
В этом видео создаётся анимация жидкости. Капли генерируются в JS и анимируются в CSS.
👉 @seniorFront
В этом видео создаётся анимация жидкости. Капли генерируются в JS и анимируются в CSS.
👉 @seniorFront
👍3
Какой метод может изменить структуру URI?
Anonymous Quiz
23%
decodeURI
23%
decodeURIComponent
26%
Оба метода
28%
Ни один из методов
👎9
Media is too big
VIEW IN TELEGRAM
Animated 9 Dots Navigation Menu
В этом видео создаётся навигационное меню, анимируемое при открытии при помощи CSS transform. Каждому элементу задается CSS transition-delay, чтобы раскрытие происходило не одновременно.
👉 @seniorFront
В этом видео создаётся навигационное меню, анимируемое при открытии при помощи CSS transform. Каждому элементу задается CSS transition-delay, чтобы раскрытие происходило не одновременно.
👉 @seniorFront
❤3
Мартышка и АйТи
На данный момент автор в IT уже порядка 15 лет. Большую часть времени был разработчиком.
За эти 15 лет было интересно наблюдать за изменением трендов, особенно вне энтерпрайз разработки. Самое интересное — это наблюдать, как технологии и паттерны циклически развиваются. В этой статье раскрывается тема этого циклического развития.
👉 @seniorFront
На данный момент автор в IT уже порядка 15 лет. Большую часть времени был разработчиком.
За эти 15 лет было интересно наблюдать за изменением трендов, особенно вне энтерпрайз разработки. Самое интересное — это наблюдать, как технологии и паттерны циклически развиваются. В этой статье раскрывается тема этого циклического развития.
👉 @seniorFront
👎2👍1
Fix My Phone Numbers!
Номер телефона должен состоять из 11 цифр и всегда начинаться с 0.
Вам дана строка, где в номер телефона подмешаны различные символы. Очистите строку от лишних символов и верните номер.
👉 @seniorFront
Номер телефона должен состоять из 11 цифр и всегда начинаться с 0.
Вам дана строка, где в номер телефона подмешаны различные символы. Очистите строку от лишних символов и верните номер.
👉 @seniorFront
Глобальный объект
Глобальными называют переменные и функции, которые не находятся внутри какой-то функции.
В JavaScript все глобальные переменные и функции являются свойствами специального объекта, который называется «глобальный объект» (global object).
В браузере этот объект явно доступен под именем window. Присваивая или читая глобальную переменную, мы, фактически, работаем со свойствами window.
Выполнение скрипта происходит в две фазы:
1. На первой фазе происходит инициализация, подготовка к запуску. Во время инициализации скрипт сканируется на предмет объявления функций вида Function Declaration, а затем — на предмет объявления переменных var. Каждое такое объявление добавляется в window. Функции, объявленные как Function Declaration, создаются сразу работающими, а переменные — равными undefined.
2. На второй фазе — собственно, выполнение. Присваивание (=) значений переменных происходит на второй фазе, когда поток выполнения доходит до соответствующей строчки кода.
👉 @seniorFront
Глобальными называют переменные и функции, которые не находятся внутри какой-то функции.
В JavaScript все глобальные переменные и функции являются свойствами специального объекта, который называется «глобальный объект» (global object).
В браузере этот объект явно доступен под именем window. Присваивая или читая глобальную переменную, мы, фактически, работаем со свойствами window.
var a = 5; // объявление var создаёт свойство window.a
alert(window.a); // 5Выполнение скрипта происходит в две фазы:
1. На первой фазе происходит инициализация, подготовка к запуску. Во время инициализации скрипт сканируется на предмет объявления функций вида Function Declaration, а затем — на предмет объявления переменных var. Каждое такое объявление добавляется в window. Функции, объявленные как Function Declaration, создаются сразу работающими, а переменные — равными undefined.
2. На второй фазе — собственно, выполнение. Присваивание (=) значений переменных происходит на второй фазе, когда поток выполнения доходит до соответствующей строчки кода.
// По окончании инициализации, до выполнения кода:
// window = { f: function, a: undefined, g: undefined }
var a = 5; // при инициализации даёт: window.a=undefined
function f(arg) { /*...*/ } // при инициализации даёт: window.f = function
var g = function(arg) { /*...*/ }; // при инициализации даёт: window.g = undefined👉 @seniorFront
👍4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Silky smooth toggles volume
Это input type="checkbox", внутри которых находятся SVG-картинки, анимируемые в JS.
👉 @seniorFront
Это input type="checkbox", внутри которых находятся SVG-картинки, анимируемые в JS.
👉 @seniorFront
👍11🤔3
Разбираемся, зачем нужен и как выбрать оптимальный загрузочный экран для вашего веб-продукта
Нажимая на ссылку или вводя адрес в браузере, вам, наверняка, приходилось ждать, пока браузер бездействует. При долгом ожидании одни пользователи дождутся загрузки, а другие могут закрыть вкладку или отправятся писать гневные сообщения в поддержку. И панацеи от этой паузы не существует, но есть ограничения бюджета, сжатые сроки и внешние технические факторы. Тем не менее, сгладить эту ситуацию помогают загрузочные экраны, можно сказать, обманывая систему.
Когда и где нужны загрузочные экраны
Если страницы вашего продукта загружаются дольше 3-х секунд, даже периодически, то стоит задуматься о загрузочных экранах. Если вы волнуетесь, что при быстрых загрузках загрузочный экран будет появляться на доли секунды, нервируя пользователей таким мерцанием — делайте плавную анимацию появления контента
Типы загрузочных экранов
Если поискать в интернете примеры загрузочных экранов для веб‑страниц, то найдётся бесконечное количество вариаций дизайна, но они укладываются всего в три типа.
- Недетерминированная загрузка - это просто заглушка, закрывающая весь экран или область загрузки, вроде выпадающего списка или загружающегося блока на странице
- Детерминированная загрузка - это всё такая же заглушка, но сложная технически. Дизайн детерминированного загрузочного экрана ограничивается только его задачей — дать пользователю информацию о прогрессе загрузки. Он может быть отображён в текстовом формате в виде процентов, времени, объёма данных или любых других единиц, или графически, воспроизводя анимацию синхронно со статусом загрузки, от 0 до 100 процентов.
-Скелетон - представляет из себя множество недетерминированных заглушек, точечно закрывающих незагруженные данные, напоминающие скелет страницы визуально и технически. Особенность скелетонов в том, что они встречают пользователя структурой страницы, с первых секунд удерживая от закрывания вкладки браузера.
Средний по сложности загрузочный экран. По сути, это недетерминированный загрузочный экран, усложнённый кропотливой работой по оптимизации загрузки ресурсов и многократным точечным его использованием в виде косточек скелетона, практически для каждого элемента на странице. Отображается на доли секунды позже других, так как содержит вёрстку страницы, но этим полезен пользователям.
👉 @seniorFront
Нажимая на ссылку или вводя адрес в браузере, вам, наверняка, приходилось ждать, пока браузер бездействует. При долгом ожидании одни пользователи дождутся загрузки, а другие могут закрыть вкладку или отправятся писать гневные сообщения в поддержку. И панацеи от этой паузы не существует, но есть ограничения бюджета, сжатые сроки и внешние технические факторы. Тем не менее, сгладить эту ситуацию помогают загрузочные экраны, можно сказать, обманывая систему.
Когда и где нужны загрузочные экраны
Если страницы вашего продукта загружаются дольше 3-х секунд, даже периодически, то стоит задуматься о загрузочных экранах. Если вы волнуетесь, что при быстрых загрузках загрузочный экран будет появляться на доли секунды, нервируя пользователей таким мерцанием — делайте плавную анимацию появления контента
Типы загрузочных экранов
Если поискать в интернете примеры загрузочных экранов для веб‑страниц, то найдётся бесконечное количество вариаций дизайна, но они укладываются всего в три типа.
- Недетерминированная загрузка - это просто заглушка, закрывающая весь экран или область загрузки, вроде выпадающего списка или загружающегося блока на странице
- Детерминированная загрузка - это всё такая же заглушка, но сложная технически. Дизайн детерминированного загрузочного экрана ограничивается только его задачей — дать пользователю информацию о прогрессе загрузки. Он может быть отображён в текстовом формате в виде процентов, времени, объёма данных или любых других единиц, или графически, воспроизводя анимацию синхронно со статусом загрузки, от 0 до 100 процентов.
-Скелетон - представляет из себя множество недетерминированных заглушек, точечно закрывающих незагруженные данные, напоминающие скелет страницы визуально и технически. Особенность скелетонов в том, что они встречают пользователя структурой страницы, с первых секунд удерживая от закрывания вкладки браузера.
Средний по сложности загрузочный экран. По сути, это недетерминированный загрузочный экран, усложнённый кропотливой работой по оптимизации загрузки ресурсов и многократным точечным его использованием в виде косточек скелетона, практически для каждого элемента на странице. Отображается на доли секунды позже других, так как содержит вёрстку страницы, но этим полезен пользователям.
👉 @seniorFront
❤3🔥1
Как пирамида тестирования уплывает на сторону разработки
В этой статье тестировщик рассуждает на тему того, почему всё чаще на проектах разработчики начинают писать не только юнит-тесты, а тестирование превращается из специальности в роль.
👉 @seniorFront
В этой статье тестировщик рассуждает на тему того, почему всё чаще на проектах разработчики начинают писать не только юнит-тесты, а тестирование превращается из специальности в роль.
👉 @seniorFront
👍1👎1
Media is too big
VIEW IN TELEGRAM
Animated Text Trail Effects
В этом видео создается текст, следующий за курсором на CSS и JS.
👉 @seniorFront
В этом видео создается текст, следующий за курсором на CSS и JS.
👉 @seniorFront
👍3