
CSS *
Каскадные таблицы стилей
Как перестать выжигать людям глаза своими письмами: настраиваем тёмную тему для рассылок

Привет! Меня зовут Евгений Шишков, я CPO конструктора рассылок EmailMaker. И я давно сталкиваюсь с одной и той же проблемой: и для мобильных, и десктопов тёмная тема уже стала классикой. Но когда дело доходит до отдельных приложений, любители этого режима рискуют выжечь себе глаза, и почтовые клиенты тут — не исключение. И даже если сам клиент тёмную тему поддерживает — далеко не факт, что письма в ней тоже будут тёмными. Одни просто отобразятся светлыми, другие криво адаптируются и от этого становятся нечитаемыми.
Есть пара способов, как адаптировать свои письма под dark mode и перестать светить ими, как паяльной лампой, в глаза получателям. Ниже расскажу, как популярные клиенты ведут себя в тёмном режиме, во что превращают ваши входящие и как на это можно повлиять при помощи нюансов вёрстки и кода — пригодится, если вы хоть раз сталкивались с созданием писем или шаблонов для них.
Наиболее эффективные методы улучшения Core Web Vitals

На протяжении многих лет сообщество веб-разработчиков накапливало знания об оптимизации производительности веб-приложений. Хотя каждая отдельная оптимизация может привести к улучшению работы сайта, совместное применение всех методов является довольно сложной задачей. Кроме того, лишь некоторые из них применимы к какому-либо конкретному сайту.
Вопросы производительности могут быть не столь очевидны для тех, чья карьера не была связана с этой областью. Именно поэтому важно понимать, какие оптимизации способны наиболее существенно повлиять на это. На реализацию всех рекомендаций скорее всего просто не будет времени, поэтому важно задать себе вопрос: какие оптимизации принесут максимальную выгоду пользователям?
Всего несколько строк CSS для плавных переходов между страницами

Одна строка CSS-кода может обеспечить чёткие переходы между страницами веб-приложений (и сайтов — для тех, кто их обслуживает, есть разница), открывая новые возможности для проектирования и работы. Так что предлагаю разобрать тему переходов между представлениями (View Transitions), обсудив их актуальность и сделав первые шаги при помощи всего одной строки CSS.
5 полезных фреймворков и библиотек для начинающего фронтенд-разработчика на конец 2024 года. Часть 2

Привет, Хабр! На связи Никита Никоноров, фронтенд-разработчик в МТС Диджитал. Недавно мы уже делились подборкой фреймворков для фронтендеров — сегодня продолжу тему.
Эта подборка ориентирована на начинающих разработчиков, но и опытные коллеги, надеюсь, смогут найти что-то полезное для себя. Как обычно, делитесь любимыми инструментами и лайфхаками в комментариях — всегда интересно узнать, чем пользуются другие. Начнем!
Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: «Какие знаешь псевдо-классы?»

За свою карьеру у меня было достаточно много собеседований. Конечно, одной из основных тем вопросов была вёрстка. Немного похвастаюсь. Не было вопроса, на который я не ответил.
Недавно у меня появилось желание снова проверить себя и показать сообществу свои ответы на самые популярные вопросы по вёрстке. Может же быть так, что мои ответы были неполными или некорректными. Если это так, то я научусь новому. А если всё хорошо, то они помогут другим людям в подготовке к собеседованию. Кажется, это в любом случае будет полезно.
У меня получился достаточно большой список. Он составлен на основе моего опыта, опыта моих знакомых и публично доступных собеседований. Каждый вопрос будет отдельной статьёй.
Сегодня я дам ответ на следующий вопрос: «Какие знаешь псевдо-классы?».
Как сделать анимацию разными способами: CSS, WebP, Canvas, Lottie, Spine и секвенции

Привет! Меня зовут Даша, я фронтенд-разработчик отдела спецпроектов в KTS.
В нашем отделе мы часто занимаемся разработкой ярких и креативных проектов, которые содержат в себе анимации. Сегодня хочу поделиться нашим опытом, рассказать про несколько способов создания анимаций и показать, в каких случаях они подходят лучше всего.
Для каждой из перечисленных технологий я буду приводить пример использования анимации в реальном проекте.
Выкинь свой RoadMap: что на самом деле нужно знать начинающему фронтендеру

Сколько бы раз я ни смотрел RoadMap для начинающих фронтендеров, всегда натыкаюсь на одну проблему: RoadMap, как правило, — просто свалка технологий, которую можно описать одной фразой: "Учи всё, что есть". Но так ли это? Нужно ли учить всё это в самом начале? Давайте отбросим большую схему с технологиями в сторону и поговорим начистоту.
Карточный домик стилизации без чистого CSS. Часть 1

Всем прекрасного времени суток. Это первая часть из серии двух статей про перенос стилизации с SCSS'а
на чистый CSS
.
Сегодня мы с вами посмотрим каким образом можно преобразовать миксины SCSS'а
на CSS
с атомарными классами. Как я уже писал в прошлой статье, я работаю в достаточно молодой компании уровня стартапа, поэтому мы сами открываем методы оптимизации и некоторые особенности CSS'а
.
Итак начнём.
Эффект матового стекла для веба

В процессе разработки UI для игр Forza Horizon 3 и Forza Motorsport 7 я имел возможность поработать с потрясающими акриловыми матовыми элементами дизайна.
Вдохновлённый этим дизайном, я захотел создать похожий эффект при помощи HTML. В этом посте я расскажу о своих попытках создания красивого эффекта стекла, а также представлю пример кода и ассетов для тех, кто захочет попробовать реализовать эту методику самостоятельно.
«Безумный» CSS квиз от гика

Хабр, привет! Я стабильно пишу здесь о CSS. Мне радостно, что моя работа вам полезна. Только я немного заскучал. Мне хочется повеселиться и отвести душу. В общем, я придумал новый формат статей в виде квиза.
Сразу скажу, что вопросы в нём только отчасти имеют практический смысл. На практике навряд ли вы столкнётесь с ними. Но это так задумано! Я специально хочу сделать всё, чтобы вы не ответили на вопросы! Поэтому, пожалуйста, не воспринимайте квиз серьёзно. Просто весело проведём время.
Конечно, я оставлю своё решение для каждого вопроса. Будет классно, если вы тоже добавите своё в комментариях. Я тоже хочу учиться. Давайте вместе увидим, каким может быть CSS.
Так, вы готовы? Давайте посмотрим, что я вам подготовил.
Нужно ли онлайн-образование сейчас? В IT, по крайней мере

Предупреждаю, это будет относительно большая статья. Но советую дочитать до конца, особенно тем, кто сейчас учится или думает о построении плана обучения и своей дороги в программировании в целом. Этот пост основан на моем опыте: расскажу, как я нашел первую работу и обучался.
Можно сказать, это «краткое резюме» моей 9-летней карьеры в IT в качестве frontend разработчика. Обязательно будет интересно! Даже если местами будет казаться скучно, продолжайте читать — оно того стоит.
Элегантная реализация Long Press обработчика с помощью CSS анимации
В веб-разработке часто возникает необходимость обрабатывать различные типы взаимодействий пользователя, включая короткие и длинные нажатия. В этой статье мы рассмотрим изящный способ реализации обработчиков для этих двух взаимодействий.
▎Зачем нужен Long Press?
Long Press — это взаимодействие, при котором пользователь удерживает палец на экране или кнопку в течение определенного времени. Это может быть полезно для вызова дополнительных действий, таких как контекстное меню, всплывающие подсказки или специальные функции, которые не должны выполняться при обычном клике.
▎Стандартное решение
Реализация обработчиков долгого и короткого нажатия на чистом JavaScript будет выглядеть примерно следующим образом:
Ближайшие события
Упрощаем CSS-анимации с помощью свойств display и размеров элемента

До недавнего времени далеко не все свойства CSS можно было анимировать. Например, чтобы создать эффект плавного появления или исчезновения элемента, приходилось использовать свойство opacity, а не display, поскольку display нельзя было анимировать. А проблема в том, что визуально скрытый элемент всё же оставался на странице.
В статье сравниваем традиционные методы и новые функции Chrome, с помощью которых можно анимировать свойство видимости и изменение размера элемента.
5 полезных фреймворков и библиотек для начинающего фронтенд-разработчика на конец 2024 года

Привет, Хабр! Это Саша Раднаев, фронтенд-разработчик в МТС Диджитал. Сегодня поговорим о фронтенде и тех инструментах, которые делают работу специалистов более эффективной. Я бы сказал, что подборка рассчитана на начинающих, но, возможно, и те, кто уже давно в теме, найдут для себя что-то интересное. Было бы отлично, если бы вы делились собственными находками в комментариях. Поехали!
Возможности поля HTML-документа, часть 2. Внедряем CSS и JS

В прошлой статье я рассказал, какие возможности скрывает в себе поле HTML-документа, выведенное на форму 1С. Сегодня подробнее остановлюсь на возможностях языков CSS (язык стилей и некоторых элементов поведения) и JavaScript (язык программирования, используемый в веб-разработке), которые могут пригодиться в работе с 1С-интерфейсом.
Неизвестно полезный CSS. Часть 6

Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.
style.setProperty vs setAttribute

На днях столкнулся с интересным вопросом. Что быстрее element.style.setProperty(свойство, значение)
или element.setAttribute('style', 'свойство: значение')
? На первый взгляд ответ кажется очевидным. Логика говорит нам, что setProperty
должен устанавливать значение сразу в CSSOM, тогда как setAttribute
выставляет сначала атрибут style
и уже потом значение атрибута будет разобрано в CSSOM. Таким образом, setProperty
должен быть быстрее. Но действительно ли всё так однозначно? Давайте разбираться.
Начнем с того, что немного освежим мат. часть. Мы знаем, что стили описываются с помощью языка CSS. Получив строковое описание стилей на языке CSS, браузер разбирает его и составляет объект CSSOM. Интерфейс этого объекта представлен спецификацией https://www.w3.org/TR/cssom-1. Он следует принципам каскадности и наследования, изложенным в https://www.w3.org/TR/css-cascade-4.
Из выше указанных спецификаций мы знаем, что основной единицей CSS является "свойство". Свойству присваивается значение, характерное конкретно этому свойству. Если значение не задано явным образом, оно наследуется от выше стоящего стиля или, если нет вышестоящего, будет установлено initial value.
Набор свойств для элемента собирается в правила CSSRule. Правила бывают разных типов. Наиболее популярный тип - CSSStyleRule
, определяющий свойства элемента. Такое правило начинается с указания одного из валидных селекторов и последующих фигурных скобок с набором свойств и значений <selector>: { ... }
Имеются и другие типы правил, например CSSFontFaceRule, описывающий параметры подключаемого шрифта @font-face { ... }
, CSSMediaRule - @media { ... }
и др. Полный список в спецификации https://www.w3.org/TR/cssom-1/#css-rules.
CSS-анимации: 20 полезных библиотек для разработчиков

Анимации в веб-дизайне давно стали стандартом. Они делают интерфейсы более живыми, помогают привлечь внимание к важным элементам и улучшают пользовательский опыт. Эти 20 библиотек помогут быстро добавить анимации в ваши проекты.
1. Animate.css
Описание: Простая в использовании библиотека кроссбраузерных анимаций. Подключаете CSS-файл, добавляете классы к элементам, и всё работает. Поддерживает эффекты вроде fade, bounce, slide и другие.
Минусы: Ограниченный набор эффектов. Для сложных кастомизаций потребуется дописывать стили вручную.
Описание: Базовый набор CSS-анимаций, который подойдет для простых проектов. Легко интегрируется и не требует настройки.
Минусы: Меньше эффектов, чем в Animate.css, и практически отсутствует документация.
Описание: Удобный инструмент для кастомизации анимаций. Сначала вы выбираете эффект в интерфейсе, настраиваете параметры (скорость, задержка, циклы), а затем скачиваете готовый CSS-код.
Минусы: Требуется онлайн-доступ для генерации анимации.
4. Hamburgers by Jonathan Suh
Описание: Специализированная библиотека для создания анимационных кнопок-гамбургеров. Поддерживает разные стили: стрелки, крестики, линии.
Минусы: Узкая специализация, не подходит для других задач.
5. Whirl
Описание: Набор простых CSS-загрузчиков: вращение, пульсация, изменение цвета. Легко интегрируется в проекты и не требует сложной настройки.
Минусы: Ограниченный выбор эффектов, подходит только для загрузочных индикаторов.
5. Three Dots
Описание: Минималистичная библиотека загрузочных анимаций, которые создаются с использованием одного HTML-элемента.
Минусы: Поддерживает только базовые эффекты, не подойдет для сложных анимаций.
Ошибки при работе с tailwindcss

Рассмотрим распространенные ошибки которые допускают разработчики при работе с tailwind и пути их решения.