Еженедельный дайджест #22: Новости фронтенда
Как читать этот дайджест
- Начните с заголовков статей, чтобы получить общее представление о содержании
- Быстро пробегитесь по первым абзацам, чтобы понять актуальность материалов именно для вас
- Выберите наиболее интересные или полезные темы под текущие задачи
- Планируйте чтение: выделите, например, 15 минут утром и 15 минут вечером
- Не пытайтесь прочитать всё сразу — возвращайтесь к дайджесту в удобное время
- При повторном просмотре читайте выбранные статьи более вдумчиво, делая заметки
- Не сожалейте, если прочитали лишь часть: ценность в качестве, а не в количестве
- Используйте закладки для сохранения интересных материалов
- Делитесь инсайтами и ссылками с коллегами — так информация лучше усвоится
🧪 HTML и Платформа
- В Baseline «Newly available» попали URLPattern и view transitions в рамках одной страницы — меньше полифиллов, больше уверенности «можно брать в прод».
- Safari Technology Preview 230: свежие фиксы и эксперименты — заметки релиза.
- Google сворачивает часть технологий Privacy Sandbox из-за низкого принятия — подробности решения.
- Ранний W3C-бэкап: как повысить надёжность JavaScript в Сети с помощью подхода WAICT — разбор инициативы.
- Двухлетний опыт использования Signed Exchanges (SXG): где помогает и почему, похоже, не взлетит массово. Итоги: выводы по SXG и что это за технология — краткая справка.
Доступность (A11y) и UI-паттерны
- Cостояния ARIA: чем отличаются
aria-selectedиaria-current, когда их применять и как не путаться. Понятное объяснение: что со «состояниями» в ARIA. - «Проблема двух кнопок»: почему активная кнопка порой неочевидна и как сделать интерфейс естественным. Читайте о двух кнопках и ясности состояния.
- Распространённые заблуждения о скринридерах — мифы и реальность.
- Когда использовать modal против dialog и почему это не одно и то же — краткий гид по выбору.
🎨 CSS и дизайн
25 крутых возможностей CSS за 25 минут
Энергичное выступление от Адама Аргайла: современный CSS уже умеет авто-подгон размеров полей, стили скроллбаров, матфункции, анимации, «привязанные» к прокрутке и многое другое. У видео есть и конспект со слайдами — удобно, если хотите примеры кода без просмотра. Смотрите видео-доклад и листайте слайды со списком фич.
Эволюция «мэсонри» (кирпичной раскладки)
Высокоуровневый обзор того, как развивалась идея CSS-мейсонри: от первых предложений до текущего состояния спецификаций и обсуждений. Полезно, чтобы понимать, почему некоторые фичи идут к нам годами. Читайте про эволюцию Masonry.
Контекстно-зависимые компоненты и новая функция inherit()
Функция inherit() (ещё в разработке) работает похоже на var(), но открывает путь к компонентам, которые «подстраиваются» под окружение — без тонны пропов и темизации. Небольшой гид по идеям и кейсам: как это упростит дизайн-системы. Разбор: как inherit() упростит дизайн-системы.
Подводный камень у @starting-style
@starting-style позволяет делать «входные» анимации через обычные CSS-переходы (поддержка ~85%). Автор показывает, где фича заходит отлично, а где ведёт к неожиданностям. Детали: главный «гоча» @starting-style и таблица поддержки.
Anchor Positioning — актуальное состояние, осень 2025
Короткий апдейт по якорному позиционированию: что уже можно использовать, что экспериментально и где подводные камни. Обзор: обновления Anchor Positioning.
- «Кому летающие машины, когда у нас есть
display: grid» — вдохновляющая заметка о радостях современного CSS: немного любви к Grid. - Большой современный разбор CSS-layout от Dr. Axel Rauschmayer: Flexbox, Grid, медиазапросы и контейнер-квери — отличная «шпаргалка» не только для новичков — прочитать материал.
Присоединяйтесь Telegram-каналу
Получайте уведомления о новых дайджестах, обсуждайте новости с коллегами и делитесь своим опытом в дружелюбном сообществе фронтенд-разработчиков
📦 JavaScript
JSON: import против fetch — что выбрать
Импорт атрибуты теперь широко поддерживаются, и JSON можно грузить через import с атрибутами, а не только fetch. Джейк Арчибальд разбирает, когда импорт удобнее, а когда проще остаться на fetch: прочитать разбор. Для старта загляните и в описание import attributes.
- URL Pattern API пополнил Baseline: Newly available — удобный способ матчить и разбирать URL-шаблоны: детали.
- Асинхронные циклы без ловушек: почему
awaitвfor...of— последовательно, почемуmap(async …)«не ждёт», и какие шаблоны реально работают — разбор. - Boa v0.21 — JS-движок на Rust с поддержкой Temporal: релиз.
TypeScript
- Решаем головоломку NYT «Pips» на TypeScript — хороший повод прокачать алгоритмическое мышление: прочитать.
- 4 нестандартных способа кастинга в TypeScript — полезные трюки для рефакторинга типов: заметка.
⚛️ React
Vitest 4.0: Vite-нативный тест-раннер стал ещё мощнее
Вышел крупный релиз Vitest 4.0 — тест-фреймворка на базе Vite и с совместимостью с Jest. В 4.0 добавили визуальные регрессионные тесты, стабилизировали Browser Mode — запуск тестов прямо в браузере, завезли поддержку Playwright Traces и многое другое. Если сомневаетесь, посмотрите сравнение с другими раннерами — станет понятнее, когда Vitest удобнее Jest. Источник: анонс Vitest 4.0
- Начиная с Angular 21, Vitest становится тест-раннером «по умолчанию», заменяя Karma/Jasmine — подробности.
Next.js 16: стабильные Turbopack и React Compiler, новый кеш и MCP-сервер
На Next.js Conf представили Next.js 16. В релиз вошли стабильные поддержка Turbopack и React Compiler, новые «компоненты кеширования», а также MCP-сервер для AI-ассистированного дебага. Если работаете с App Router — будет чем развлекаться. Посмотреть можно анонс и описание и трансляцию конфы.
-
Solito 5.0: мост между React Native и Next.js для переиспользования навигации. Теперь с поддержкой Next.js 16 и Expo 54, при этом без зависимости от React Native Web — анонс и сайт проекта.
-
React vs Backbone в 2025 — ностальгический разбор, зачем нам был Backbone и как далеко ушёл React: прочитать заметку.
-
React и Remix выбирают разные пути развития — коротко про размежевание подходов: статья.
-
«Год с App Router и почему мы уходим» — опыт команды и их причины сменить стек: заметка.
⚙️ Node.js
Node.js 25: релиз «Current»
Вышел Node.js v25.0.0 — в этом релизе по умолчанию включено Web Storage, ускорен JSON.stringify, в модель разрешений добавлен флаг --allow-net, появились встроенные конвертеры base64/hex для Uint8Array, а также оптимизации для WebAssembly и JIT. С выходом 25-й ветки Node 24 скоро станет «active LTS», а Node 22 перейдёт в «maintenance LTS». Подробнее в заметке на сайте nodejs.org и в описании permission model.
- 💡 Вышел LTS-патч: Node v22.21.0 — добавлены
--use-env-proxyи переменная окруженияNODE_USE_ENV_PROXYдля работы через прокси. - ▶️ Записи докладов Nordic.js 2025 уже на YouTube: посмотрите выступление Joyee Cheung про поставку пакетов в 2025 и доклад Marco Ippolito про файл
node.config.jsonв Node 23. Плейлист — тут. - Слайды Ruy Adorno с JSConf: «Что нового и что дальше в Node.js». Анонс события — JSConf.
- CLI на Ace (Node/Bun): как сделать мини-приложение «закладки» на фреймворке Ace от команды AdonisJS. Короткая, практичная статья с примерами. Почитать: «Building CLIs with Ace», посмотреть Ace и его репозиторий; про AdonisJS — здесь.
- Backpressure и DTrace в Node.js: автор показывает, как отключение backpressure резко увеличивает нагрузку на GC, и как это померить с помощью DTrace. Разбор полезен всем, кто работает с потоками. Читать: эссе Tyler Hillery и введение в backpressure.
- Покрытие кода в Node Test Runner: у встроенного тест-раннера есть нативная поддержка coverage — документация объясняет, как её включить и использовать. Подробнее: руководство.
- Почему
typeof null === "object"? Исторический экскурс с деталями стандарта — полезно, если вы когда-то спотыкались об это поведение. Подробности: разбор. - Bun 1.3.1 — минорное обновление после большого 1.3: релиз-ноты и анонс 1.3 для контекста.
- Deno Deploy — сводка свежих улучшений платформы деплоя от команды Deno: читать апдейты.
📊 Видео и статьи
🤖 ИИ
- ChatGPT Atlas — новый Chromium-браузер с «встроенным» ИИ-чатом и агентами. Пока доступен на macOS, Windows и мобильные версии обещаны позже. Узнайте подробнее на странице анонса.
⚒️ Инструменты и библиотеки
- Wretch 3.0 — обёртка над
fetchс «читаемым» fluent-API: меньше бойлерплейта, лучше обработка ошибок, умные ретраи и прогресс загрузки. Ознакомиться: анонс 3.0 и примеры. Страница проекта: Wretch. - Graffle 7.3 — лёгкий GraphQL-клиент (ранее
graphql-request), теперь с поддержкой CommonJS для Jest и не-ESM-систем. Подробнее: релиз 7.3. - DOMPurify 3.3 — быстрый и «толерантный» санитайзер HTML от XSS; поддерживает Node и современные браузеры. Потестировать можно в лайв-демо. Репозиторий: DOMPurify.
- ImapFlow — современная и простая библиотека IMAP-клиента для взаимодействия с почтовыми серверами. Смотреть: сайт проекта.
- ATSippy — клиент для Bluesky Jetstream с переподключением и сжатием; поможет слушать «файрхоза» событий Bluesky. Подробности: ATSippy и описание Jetstream.
- Obra Icons — аккуратный набор из 1000+ иконок: скачивайте в SVG/PNG или копируйте код под React/Svelte. На странице можно сразу поиграть с толщиной и размером.
- Web Codegen Scorer — утилита от команды Angular для оценки качества веб-кода, который генерируют ИИ-модели. Помогает сравнивать модели и отслеживать прогресс. Смотрите инструмент на GitHub.
- Format JSON Online — комбайн для JSON: форматирование, проверка, преобразования и даже ИИ-помощь в исправлении/генерации. Пробуйте набор инструментов.
- Грейскейл → STL — браузерный конвертер из оттенков серого в 3D-модель (под Three.js). Полезно для «барельефов», карт высот и 3D-печати. Код: репозиторий и демо-страница.
- ColorMate — простые генераторы палитр, градиентов и извлечения цветов из изображений. Откройте набор цветовых утилит.
- Публичный фотосток WordPress — 28 000+ изображений в паблик-домене: забирайте свободные фото.
- Biome 2.3 — быстрый форматтер/линтер теперь с поддержкой Vue, Svelte и Astro: анонс.
- ESLint 9.38.0, Astro 5.15, pnpm 10.19, Rspack 1.6.0 beta1 — сводка релизов, Astro, pnpm, Rspack beta.
- Ky 1.13 — минималистичный HTTP-клиент на базе Fetch. Удобнее, чем «чистый» Fetch, и альтернатива Axios. В 1.13 добавили context для переиспользуемых клиентов. Примеры — посмотреть, релиз — читать, репозиторий — открыть.
- JustGage 2.0 — рисуем и анимируем «приборные» SVG-шкалы на чистых браузерных API; есть playground — демо и опции.
- MaxIntervalCover — библиотека для вычисления оптимального набора непересекающихся интервалов (полезна для планировщиков/таймлайнов) — репозиторий.
- p-limit 7.2 — ограничиваем конкурентность промисов; теперь
.map()принимает любойIterable, а не только массив — релиз. - Repomix 1.8 — «упаковывает» весь репозиторий в один LLM-дружелюбный файл; появились плагины для Claude Code — анонс.
- ESLint Markdown Language Plugin 7.5 — линт JS/TSX-блоков прямо в Markdown — релиз.
Обновления
- Faker 10.1 — генератор фейковых данных для тестов и сидов.
- node-oracledb 6.10 — драйвер Oracle DB; добавлен AQ в Thin-режиме.
- node-rdkafka 3.6 — биндинги к librdkafka.
- 🤖 OpenAI Node 6.6 — официальный SDK для API OpenAI.
- zx 8.8.5 — удобные шелл-скрипты на Node.
- terminal-image 4.1 — вывод изображений в терминале.
- Got 14.6 — «человечный» HTTP-клиент.
- Pino 10.1 — очень быстрый JSON-логгер.