28143
🚀 Статьи, новости, туториалы по frontend разработке. http://jem-space.ru Admin: @jem_jem Пишу в @five_a_m Читать на парковке: https://max.ru/front_end_dev Реклама: http://bit.ly/2NxmVDu РКН: https://clck.ru/3GLw7G
9 CSS лайфхаков для более дружелюбного пользовательского опыта
Собрали в одном месте практичные CSS приемы: адаптивные фоновые изображения через image-set, удобная валидация форм с :user-valid и :user-invalid, а также безопасные анимации на transform чтобы не ловить лишние перерисовки. Эти техники помогают сделать интерфейсы заметнее, быстрее и понятнее без привязки к конкретным фреймворкам.
https://habr.com/ru/companies/ruvds/articles/1018112/
Радио стейт-машина в CSS
Если UI нужно переключать между несколькими визуальными режимами без JS, радио state machine на базе input type radio и селекторов позволяет держать логику прямо рядом с разметкой. Разбираем подход, который заменяет checkbox hack, когда состояний больше двух и важна чистая управляемость интерфейса.
https://css-tricks.com/the-radio-state-machine/
Сидеть и работать в корпорации — страшно, жизнь-то мимо проходит. Уходить строить бизнес — страшно, а вдруг прогорит. Один из вариантов — разрабатывать свой пет-проект по вечерам. Многие успешные компании, например, Twitter, создавались именно так. Это не значит, что ваш проект обязательно заработает миллиарды, но заработать больше, чем в найме, и получить ценный опыт — вполне реально.
Перед началом разработки появляется множество вопросов, например:
– Как выбрать идею для пет-проекта?
– Что нужно знать про маркетинг?
– Как запуститься и довести до первых продаж не имея бюджета на рекламу?
В телеграм-канале «Твой пет проект», Михаил Табунов делится своим опытом с разработчиками и менеджерами.
Он рассказывает, где искать идею для нового проекта, что нужно знать о маркетинге, как запустить стартап и привлечь первых 10 клиентов, а также о многих других важных вещах.
Подписывайтесь на «Твой пет проект», получайте пользу от практиков рынка!
GitHub - privatenumber/minification-benchmarks: 🏃♂️🏃♀️🏃 JS минфикация в цифрах
Сравнение популярных JS-minifier’ов (SWC, oxc-minify, esbuild, terser, uglify-js, SWC и др.) по размеру после minify и скорости работы: что реально даёт меньший bundle и быстрее ли именно на практике. Отличный ориентир перед выбором инструмента для production-сборок.
https://frontendfoc.us/link/181948/web
requestAnimationFrame для плавных анимаций
requestAnimationFrame помогает синхронизировать UI-обновления с кадром рендера: меньше дрожания, меньше фризов и стабильнее тайминг. Разберём разницу с setTimeout, момент выполнения в пайплайне браузера (INP/next paint) и где уместны альтернативы вроде scheduler.yield, postTask и requestIdleCallback.
https://frontendfoc.us/link/181902/web
Три причины раздувания зависимостей в JavaScript
Разбираем три типовых источника dependency bloat: поддержка древних рантаймов, защита от мутаций глобального окружения и кросс realm значения, из за которых в npm деревьях копятся лишние микропакеты. Узнаем, как начать чистить дерево без поломок.
https://43081j.com/2026/03/three-pillars-of-javascript-bloat
Нативные JSON-модули наконец-то заработали по-настоящему
Теперь JSON можно импортировать как полноценные ES-модули: import config from "./config.json" with { type: "json" }. Разбор происходит на runtime, включается стандартный кэш ESM и исчезают лишние трансформации/loader’ы — а сборщики становятся опциональными.
https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
Прекратите «войну» с валидацией форм: JSON Schema как единый источник правды
Дублирование проверок между фронтендом и бэкендом ломает UX и порождает регрессии. Подход schema-driven переносит правила, сообщения и условия показа полей в одну JSON-схему: форма рендерится, валидирует и согласованно проверяется на сервере.
https://blog.logrocket.com/stop-fighting-schema-driven-form-validation/
Гибридный поиск: объединяем semantic и lexical, чтобы находить точные вещи и смысл одновременно
Использование одной семантики ведет к промахам по точным названиям, API и ключевым терминам . Решение: параллельный запуск lexical и semantic поиска.
https://kentcdodds.com/blog/implementing-hybrid-semantic-lexical-search
Event Loop для начинающих — разбор без страха
JavaScript выполняется в одном потоке, но браузер/окружение берут на себя асинхронщину: таймеры, клики, сети и Promise. Разберём, как Event Loop управляет очередями задач и микрозадачами, почему стек вызовов работает по принципу LIFO и как микрозадачи могут блокировать рендер.
https://habr.com/ru/articles/1011258
Codemod в JavaScript: меняйте сотни файлов без боли с jscodeshift
Когда в проекте постоянно меняются API, синтаксис и UI-kit, спасает подход “меняем код машиной”: jscodeshift строит AST и позволяет делать предсказуемые трансформации сразу по всем файлам — вместо опасного поиска-замены и regex.
https://habr.com/ru/companies/banki/articles/1011580
Как чинить Dropdown-меню внутри скролл-контейнеров
Когда dropdown оказывается в блоке с overflow, он может обрезаться, “уезжать” при прокрутке или прятаться под соседними слоями. Разбираем причины по шагам и показываем стабильные решения.
https://www.smashingmagazine.com/2026/03/dropdowns-scrollable-containers-why-break-how-fix/
Expo для React разработчиков
Expo позволяет перенести ваши React навыки в React Native и собрать нативные iOS и Android приложения без переписывания с нуля, при этом часть логики можно переиспользовать и для web. Фокус на удобной маршрутизации, нативных API и автоматизации сборок через EAS, чтобы быстрее дойти до релиза.
https://expo.dev/solutions/expo-for-react-web-devs
Вредная веб графика: как разработчики раздувают вес страниц
Оптимизация изображений часто упирается в неправильный формат и отсутствие конвертации: PNG там, где достаточно JPEG, и игнорирование WebP и AVIF. Разберем, как выбрать формат под задачу и получить кратное снижение веса без заметной потери качества, чтобы ускорить загрузку и улучшить UX.
https://habr.com/ru/companies/alfa/articles/1012848
Capacitor OTA - обновления без ревью магазинов: архитектура, стратегии и GitHub Releases
В Capacitor обновляйте только JavaScript бандл через OTA, чтобы правки не требовали пересборки и ожидания в Google Play и App Store. Разбираем, как собрать dist в ZIP, скачать его через capacitor-updater, безопасно откатываться при сбое и выстроить FSD архитектуру с двумя стратегиями обновления.
https://habr.com/ru/articles/1013754/
Wiretext - инструмент для юникодных wireframe диаграмм
Wiretext рендерит макеты как символы для рисования, поэтому wireframe и схемы можно быстро собирать в тексте и легко шарить без картинок. Поддерживаются слои, боксы и подписи, удобно для прототипов и документации интерфейсов.
https://wiretext.app/
Моя коллекция полезных HTML-фич
Набор практичных HTML-атрибутов и приёмов для ускорения загрузки и декодирования изображений, корректной локализации текста для скринридеров и удобного отключения интерактивных элементов без костылей. Подойдёт тем, кто хочет прокачать фронтенд на уровне разметки и легко внедрить улучшения в существующие проекты.
https://habr.com/ru/companies/ruvds/articles/1021090
Руководство по SVG фильтрам
Познакомимся с SVG фильтрами и посмотрим на их базовые возможности
https://frontendmasters.com/blog/svg-filters-guide-getting-started-with-the-basics/
Inspira UI: open-source компоненты для анимированных интерфейсов на Vue и Nuxt
Библиотека готовых компонентов для создания живых UI-эффектов: анимации, примеры и гибкая кастомизация через Tailwind. Отличный старт, чтобы быстрее собрать интерфейс и подстроить его под дизайн-проекты.
https://frontendfoc.us/link/181906/web
Ценность z-index: как перестать жить магическими числамиz-index управляет порядком наложения UI-элементов, но в больших командах быстро превращается в хаос: числа растут, конфликты и отладка усложняются. Разбираем, почему это происходит, как связаны значения и stacking context, и как спасти проект через стандартизацию уровней наложения.
https://css-tricks.com/the-value-of-z-index/
focusgroup в HTML: декларативная навигация стрелками без роувинг-tabindex
focusgroup — атрибут, который добавляет arrow-key навигацию для составных виджетов (toolbar, tablist, menu и т.д.) без ручной настройки tabindex. В браузере остаются только ваши прикладные состояния, а направление (RTL/вертикальные письма), и восстановление фокуса берёт на себя платформа.
https://frontendfoc.us/link/181886/web
ESLint пора на пенсию: миграция на Oxlint для скорости и удобства
ESLint в больших репозиториях превращается в узкое горлышко: медленно прогоняет проверки и требует сложной настройки. Oxlint — быстрый линтер на Rust с большим числом правил по умолчанию и поддержкой type-aware linting, так что CI и локальная разработка ускоряются, а порог входа заметно снижается.
https://blog.logrocket.com/retire-eslint-migrate-oxlint/
!important #7: random(), folded corners, anchored container queries
CSS-дайджест с практичными фишками: генерация значений через random()/random-item(), «сложенные» углы через clip-path, фоновые эффекты backdrop-filter, стабильные числа font-variant-numeric: tabular-nums
https://css-tricks.com/whats-important-7/
Построили open-source SVG-библиотеку брендов с 4 700+ иконками
Единый источник SVG-логотипов и облачных диаграмм: поиск, версии, CDN/CLI/API и типизированные пакеты для React/Vue/Svelte. Импортируйте только нужные иконки, используйте варианты (color/mono/light/dark/wordmark) и интегрируйте в продукт без боли.
https://github.com/glincker/thesvg
Masonry на Flexbox: раскладываем элементы по строкам с точной математикой
Разбираем, как Flexbox распределяет свободное место между flex-элементами (grow/shrink), чтобы собрать “мозаичный” layout из карточек разной высоты при известном aspect ratio. Освоим логику расчёта для каждой строки и сможем воспроизвести masonry-эффект без тяжёлых фреймворков.
https://frontendmasters.com/blog/flexbox-masonry-layout-explained-with-math/
Тихие блокеры в robots.txt: как ошибки могут незаметно убрать сайт из Google
Неправильный .robots.txt может остановить обход страниц или скрыть важные директории, из-за чего контент не попадает в поиск. Разбираем типовые ошибки вроде Disallow: /, блокировок ресурсов и синтаксических опечаток, и проверяем конфиг через инструменты Google.
https://dev.to/freedevkit/the-silent-blockers-how-robotstxt-mistakes-can-ghost-your-site-from-google-12h0
Поддержка системного масштабирования текста в Chrome Canary
Chrome Canary начинает уважать системные настройки масштабирования только текста (как в iOS/Android accessibility) — это помогает делать типографику на сайте предсказуемой и доступной.
https://frontendmasters.com/blog/text-scaling-support-in-chrome-canary/
Astro и HTML minification с HMN за пару шагов
Ускорьте сборку и уменьшите размер страниц в Astro, подключив html-minifier-next и прогоняя минификацию для всех HTML в папке dist через хуки сборки. Настройте preset comprehensive или conservative, чтобы подобрать баланс между размером и совместимостью.
https://frontendfoc.us/link/182363/web
Сигнальные формы в Angular: быстрый старт
Сигнальные формы в Angular заменяют ручную синхронизацию состояния формы и данных на декларативную модель через FieldTree и FieldState, где изменения напрямую обновляют связанный сигнал. В материале показан минимальный пример и как это упрощает код, но функционал помечен как экспериментальный и требует осторожности в production.
https://habr.com/ru/articles/1013664/
Цифровая доступность без визуальных интерфейсов
Как тестировать и улучшать веб интерфейсы для людей, которые работают со скринридерами: от навигации по ссылкам и структуре контента до типичных проблем, которые ломают сценарии в реальном использовании.
https://habr.com/ru/companies/ispsystem/articles/1013824/