❤️ Еженедельный дайджест #33: Новости фронтенда ❤️
Как читать этот дайджест
- Начните с заголовков статей, чтобы получить общее представление о содержании
- Быстро пробегитесь по первым абзацам, чтобы понять актуальность материалов именно для вас
- Выберите наиболее интересные или полезные темы под текущие задачи
- Планируйте чтение: выделите, например, 15 минут утром и 15 минут вечером
- Не пытайтесь прочитать всё сразу — возвращайтесь к дайджесту в удобное время
- При повторном просмотре читайте выбранные статьи более вдумчиво, делая заметки
- Не сожалейте, если прочитали лишь часть: ценность в качестве, а не в количестве
- Используйте закладки для сохранения интересных материалов
- Делитесь инсайтами и ссылками с коллегами — так информация лучше усвоится
Доступность
- Короткий разбор WCAG 3.0: что меняется в следующем поколении стандартов доступности и почему это ещё «в процессе» (кандидат в рекомендации ожидается не раньше 2027).
- Как дизайнер доступности добавляет клавиатурные шорткаты в веб‑приложение: практичный взгляд на хоткеи так, чтобы они не ломали навигацию и были удобны.
- Новый meta‑тег, чтобы уважать масштабирование текста на мобильных: про то, как не мешать пользователям увеличивать текст (важно для читаемости и доступности).
🧪 HTML и Платформа
Interop 2025: год сближения
Итоги проекта Interop — инициативы, где браузерные команды совместно выбирают «больные точки» совместимости и доводят поведение до общего знаменателя. В обзоре есть список тем 2025 года и фичи, по которым браузеры заметно сошлись: Anchor Positioning, View Transitions, Navigation API и др. Внутри также ссылка на то, что проект завершил четвёртый год работы — подробности здесь.
Как 💔 “broken heart” сделал страницу в Safari в 100 раз медленнее
Детективная история: одна эмодзи внезапно превратила загрузку дашборда в ~10 секунд. Автор показывает, как искать такие странные деградации через профилирование, таймлайны производительности и «бинарный поиск» причины. Отличный пример того, как выглядят реальные расследования перф‑багов.
-
Как работают браузеры? Высокоуровневое объяснение «что внутри»: рендеринг, загрузка ресурсов, выполнение JS — без лишней академичности.
-
Браузер не любит сюрпризы: приёмы, которые уменьшают «дёрганье» и сдвиги контента при загрузке (когда перерисовки неизбежны, но их можно сделать предсказуемее).
-
Shades of Halftone: подробный техразбор пикселизации, дизеринга и «полутоновых» эффектов — с математикой и реализацией на GLSL‑шейдерах.
-
Полифил для HTML Switch Element: как принести поведение будущего нативного переключателя во все современные браузеры; отдельно можно почитать про сам native HTML switch.
-
Invoker Buttons Polyfill для атрибутов
commandиcommandfor: если нужно расширить поддержку новых HTML‑атрибутов, поможет этот скрипт; есть и разбор/пояснение. -
Гайд по DevTools: Network Monitor: как читать сеть в браузерных инструментах — запросы, ответы, тайминги и что смотреть, когда «всё медленно».
-
Иллюстрированный гид по мультипоточному рендерингу в вебе: что реально может выполняться параллельно, где границы потоков и почему это важно для производительности.
-
Как измерять время рендеринга SVG через Node.js: идея и подход для тех, кто хочет сравнивать рендеринг/оптимизации не «на глаз», а по метрикам.
🎨 CSS и дизайн
CSS Selection: издание 2026
Большое исследование «как CSS используется в реальных проектах» на данных 100 000+ сайтов: размеры стилей, популярность фич, сложность CSS и даже крайние кейсы (вроде страницы с сотнями тысяч правил). Полезно, чтобы понять, какие современные возможности CSS реально «прижились» и на что стоит делать ставку в продакшене.
- Как (и почему) запретить выделение текста на сайте: разбор свойства CSS
user-selectи нюансов, где это уместно (и где может навредить UX).
Присоединяйтесь Telegram-каналу
Получайте уведомления о новых дайджестах, обсуждайте новости с коллегами и делитесь своим опытом в дружелюбном сообществе фронтенд-разработчиков
📦 JavaScript
Результаты опроса «State of JS 2025»
Ежегодный опрос собрал мнения 12 000+ JS-разработчиков и показывает «картину года» в удобных графиках:
- какие есть боли языка и где чаще спотыкаются;
- какие фреймворки выбирают и почему;
- какие сборщики/инструменты используют;
- сколько кода, по ощущениям, пишут с помощью ИИ;
- какие не-JS/TS языки идут «в паре» с фронтендом.
ESLint v10.0.0
Большой релиз, который «дожимает» переход на новую конфигурацию: старый формат eslintrc окончательно убран. Для новичка важно вот что:
- конфиги стали более предсказуемыми и проще для современных проектов;
- новый алгоритм поиска конфигов стартует от файла, который вы линтите — это удобнее для монорепозиториев;
- улучшили анализ JSX (отслеживание ссылок), чтобы меньше было странных ошибок со scope.
Скоро станет проще «убираться» после JavaScript-кода: Symbol.dispose и using
Статья про новые возможности, которые помогают гарантированно освобождать ресурсы: закрывать соединения, отписываться, освобождать хэндлы и т. п. Идея похожа на «dispose»/«finally», но более встроенная и удобная для больших проектов.
План развития webpack на 2026 год
Коротко: команда делится направлениями, куда движется webpack. Среди идей — универсальная цель сборки (чтобы один билд легче работал в разных рантаймах), сборка TypeScript без лоадеров, CSS Modules без плагинов и другие улучшения.
- VoidZero: дайджест за январь 2026 — обновления Oxlint, Oxfmt, Vitest и других частей Rust-based toolchain’а вокруг экосистемы Vite.
- 🤯 Promethee: UEFI-байндинги для JavaScript — да, можно писать UEFI-лоадер на JS вместо C (экзотика, но любопытно).
- 📄 Как proposal Temporal внедряют в JavaScriptCore — заметки про реализацию нового API для дат/времени на уровне движка.
TypeScript
TypeScript 6.0 вышел в beta — что это значит для Node/фронтенд‑разработчиков
TypeScript 6.0 теперь в beta и это релиз «навести порядок в tsconfig», который готовит почву к будущему «нативному» компилятору TypeScript 7 на Go. Для проектов на Node/фронтенде важны изменения по умолчанию:
- Режим
--strictтеперь включён по умолчанию — если вы рассчитывали на старое значениеfalse, придётся явно выставить его, иначе сборка может начать «сыпаться» на типах. typesпо умолчанию стал[]иrootDirпо умолчанию стал.— это может неожиданно поменять видимость типов и структуру выходных файлов.- Импорты подпутей с префиксом
#/: пакеты смогут использовать более простой префикс для subpath‑imports без лишнего сегмента в пути. - Добавили типы для Temporal — приятный шаг к более удобной работе с датами/временем в JS.
--esModuleInteropиallowSyntheticDefaultImportsбольше нельзя ставить вfalse— если у вас есть импорты, завязанные на старое поведение, нужно будет их поправить.- На всякий случай держите под рукой список breaking changes и депрекейтов, чтобы не ловить сюрпризы при апдейте.
⚛️ React и фреймворки
Последние результаты опроса State of React 2025
Вышли свежие результаты ежегодного опроса сообщества: почти 4 000 разработчиков поделились мнением о React‑экосистеме. На сайте State of React 2025 можно посмотреть, какие UI‑библиотеки выбирают чаще, какие библиотеки для визуализации данных популярны, что используют для аутентификации, какие альтернативные рендереры пробуют, и где находятся главные боли в core‑API React. Ещё есть итоговая статья‑вывод, которая кратко резюмирует год React.
«Пуленепробиваемые» React‑компоненты
Шу Дин в статье Building Bulletproof React Components собрал 10 практических приёмов, которые помогают компонентам пережить современные «краевые случаи» React: порталы, переходы, гидрацию, рендеринг на сервере и т. п. Полезно, если компоненты часто живут в разных проектах и окружениях. По ходу упоминаются SWR и React Best Practices (Vercel).
Виртуальный скролл на масштабе «миллиарды строк»
Статья Implementing Virtual Scrolling at Billion-Row Scale — технический разбор, как автор строил таблицу, которая выдерживает экстремальные объёмы данных: ограничения DOM, точность полосы прокрутки, доступность (a11y) и правильные расчёты размеров. Пример компонента: HighTable (GitHub).
-
Как собрать rich‑text редактор на React (на примере Puck) — про архитектуру, модель документа и базовые UX‑детали.
-
Трюк для более красивых exit‑анимаций в React — про то, как дать элементу «дожить» анимацию перед размонтированием.
-
Почему команда Gusto отказалась от React.FC — разбор типизации, children и того, как снизить количество скрытых ловушек в кодовой базе.
-
📄 Почему Inngest мигрировал с Next.js на TanStack Start — разбор мотивов и компромиссов при смене full‑stack фреймворка.
-
▶ Evan You о Vite, Rust и будущем JS‑инструментов — подкаст о пути от Vite до VoidZero и Rust‑based toolchain’а.
-
🤖 Отладка React с помощью ИИ: может ли он заменить опытного разработчика? — эксперимент: автор подложил тонкие баги и посмотрел, как «агент» справится на практике.
-
📄 Чего ждать в Angular 22 — обзор ожидаемых направлений и изменений.
-
📄 Лучшие практики Solid.js — советы по архитектуре и паттернам для приложений на Solid.
React Native 0.84: Hermes V1 по умолчанию
В релизе React Native 0.84 движок Hermes V1 стал дефолтным на iOS и Android — обещают прирост производительности и меньший расход памяти. На iOS также поставляются предсобранные бинарники, что ускоряет сборку. Под капотом всё крутится на React 19.2.3.
- react-native-turbo-base64: библиотека для быстрого Base64 encode/decode в React Native на C++ + JSI.
- Sentry React Native 8.0: обновление официального SDK Sentry для React Native.
⚙️ Node.js
npmx: новый браузер пакетов npm-реестра
Если стандартный интерфейс npm кажется «скучным» или медленным, npmx — это быстрый и приятный способ смотреть пакеты в официальном npm registry: сразу видно ключевую информацию (версии, зависимости, формат модулей и т. п.). Для примера можно открыть страницу axios. Отдельно полезна фича: быстро сравнивать пакеты по размеру, зависимостям, лицензии, формату модулей и т. д.
- Как делать HTTP‑запросы в Node.js по‑взрослому — статья How to Make an HTTP Request in Node.js объясняет, что «просто
fetch» — это только начало: таймауты, стримы, ретраи, параллельные запросы, моки, и когда стоит выбирать Undici илиhttp/httpsнапрямую. - Node.js 25.6.1 (Current) — релиз Node.js 25.6.1 включает новый лексер
merveдля извлечения named exports из CommonJS; заявлено, что он примерно на 25% быстрее, чемcjs-module-lexer. - Node.js 24.13.1 (LTS) — в Node.js 24.13.1 отмечают поддержку разбора URL с Unicode 17, а также стабилизацию
crypto.hashи--build-snapshotплюс пачку обновлений зависимостей и фиксов. - Node «однопоточный»… или нет? — материал Is Node.js Single-Threaded… Or Not? с диаграммами для новичков про то, как устроены внутренности Node и где на самом деле появляется параллелизм.
- VFS для Node — Matteo Collina работает над «первоклассным» модулем виртуальной файловой системы, который должен интегрироваться с
fs.
🤖 ИИ
- Transformers.js v4 Preview — запуск ML‑моделей прямо в браузере на новом WebGPU‑рантайме (полезно, если вы интересуетесь on-device inference).
⚒️ Инструменты и библиотеки
Подборка красивых HTML UI‑компонентов, готовых к вставке: сайт‑витрина для вдохновения и быстрых прототипов.
- Polypane v28: обновление «браузера для разработчиков» — новое понятие Environments, улучшенная панель Elements и другие мелочи.
- Peek: JS‑библиотека для “умного” скрывающегося хедера: отличает мелкий скролл от намеренного, настраиваются пороги/задержки; исходники в репозитории.
- Shaka Player 5.0: проигрывание адаптивного видео (DASH/HLS) в браузере без плагинов + оффлайн‑хранение через IndexedDB; есть демо.
- broz — простой “безрамочный” браузер для скриншотов: чтобы получать чистые скриншоты страниц без лишнего интерфейса.
- SVG Studio: браузерный инструмент для оптимизации/дебага SVG, чистки экспорта из дизайн‑тулов и понимания «что в SVG вообще происходит».
- VerifyFetch: скачивание больших файлов через fetch с возобновлением и проверкой целостности — идея «fetch, но взрослый»: можно докачивать, валидировать, падать быстро при повреждениях. Есть репозиторий на GitHub.
- 🔐 OTPAuth: библиотека одноразовых кодов (HOTP/TOTP) — генерация и проверка 2FA‑кодов в Node/Deno/Bun и браузере.
Обновления
-
Bun v1.3.9 — удобные флаги для запуска нескольких npm‑скриптов (параллельно/последовательно), ускорения и оптимизации (включая SIMD‑ускорение для регулярных выражений).
-
Ink 6.7 — «React для терминала»: добавили concurrent rendering и синхронизацию обновлений (меньше мерцаний).
-
Ember 6.10 — очередная порция чисток и модернизации в стабильном, «боевом» фреймворке.
-
Meriyah 7.1 — совместимый (ES2024) парсер JavaScript; можно поиграться в песочнице.
-
React Grab 1.0 — инструмент, который помогает выделять компоненты в браузере и передавать их агентам для правок.
-
Downshift 9.3 — примитивы для WAI‑ARIA совместимых autocomplete/combobox/select компонентов в React.
-
Js_of_ocaml 6.3 — транспайлер OCaml → JavaScript.
-
VuePDF 2.0 — рендер PDF в приложениях на Vue 3.
-
Lume 3.2 — статический генератор для Deno.
-
DOCX 9.5.2: популярная библиотека для создания и редактирования
.docxполучила первое обновление за долгое время. -
Prisma 7.4.0: добавили новый слой кэширования и поддержку partial indexes.
-
Aedes 1.0: минималистичный MQTT‑сервер, который может работать поверх любого stream‑сервера.
-
Awilix 12.1: IoC‑контейнер для Node.
-
pnpm v10.29.3: быстрый и экономный менеджер пакетов.
-
Wasp 0.21.0: «Rails‑like» фреймворк для React/Node/Prisma; теперь ставится через npm, а ещё перешёл на Tailwind CSS 4, Vitest 4 и React Router 7.
-
ReUI 2.0: большая подборка React + Tailwind UI‑компонентов/паттернов/эффектов для проектов на shadcn/ui.
-
Ant Design 6.3: обновление Ant Design.