FWFrontend WeeklyПоддержи
На главную

Еженедельный дайджест #66: Новости фронтенда

Как читать этот дайджест
  • Начните с заголовков статей, чтобы получить общее представление о содержании
  • Быстро пробегитесь по первым абзацам, чтобы понять актуальность материалов именно для вас
  • Выберите наиболее интересные или полезные темы под текущие задачи
  • Планируйте чтение: выделите, например, 15 минут утром и 15 минут вечером
  • Не пытайтесь прочитать всё сразу — возвращайтесь к дайджесту в удобное время
  • При повторном просмотре читайте выбранные статьи более вдумчиво, делая заметки
  • Не сожалейте, если прочитали лишь часть: ценность в качестве, а не в количестве
  • Используйте закладки для сохранения интересных материалов
  • Делитесь инсайтами и ссылками с коллегами — так информация лучше усвоится
Фронти на связи — выпуск #34! 🗞️
Interop 2026: браузеры синкаются! 🤝
Chrome 145 уже в строю! 🚀
setHTML вместо innerHTML — мощно! 🔒
Oxfmt beta: форматим быстрее! ⚡
React Doctor проверит проект! 🩺
styled-components снова с нами! 💅
Node ест вдвое меньше RAM! 🧠
WebMCP: сайты для AI-агентов! 🤖
OpenSeadragon 6.0: зумим HD! 🔍
Фронти - маскот дайджеста

🧪 HTML и Платформа

Cloudflare открыла набор данных о реальной скорости сайтов

Cloudflare собрала в BigQuery обезличенные показатели Core Web Vitals с 10 000 крупных сайтов. Данные обновляются ежедневно и учитывают не только Chrome, но и Safari/WebKit. Это удобная точка отсчёта для производительности: например, исследование показывает, что задержка LCP чаще связана не с загрузкой файла, а с тем, что происходит на странице до его показа.

Chrome 155 получил поддержку JPEG XL

В Chrome 155 появилась поддержка JPEG XL — формата изображений .jxl, который умеет давать более компактные файлы, HDR и современные возможности сжатия. Для веба это ещё один вариант доставки тяжёлой графики; заметки к релизу помогут проверить остальные изменения браузера.

🎨 CSS и дизайн

CSS Anchor Positioning берёт на себя позиционирование подсказок

CSS Anchor Positioning позволяет привязать tooltip или выпадающее меню к элементу через anchor-name и position-anchor. Браузер сохраняет связь при прокрутке и изменении размера окна — меньше кода для измерений и подписок на события. Patrick Brosset также разбирает, почему встроенные title-подсказки используют редко и каким мог бы стать стилизуемый ::tooltip.

Dart Sass 2.0 запланирован на декабрь

Команда Sass описала путь к Dart Sass 2. Многие предупреждения об устаревшем синтаксисе из ветки 1.x станут ошибками, поэтому сейчас подходящий момент запустить сборку с предупреждениями и обновить старые стили.

  • Panda CSS 2.0 сохранил знакомый css() API, но получил компилятор на Rust. В релизе также есть публикуемые дизайн-системы, стили для View Transitions, ESLint-плагин и пресет типографики.
  • Temani Afif показывает, как реализовать children-count() в современном CSS и строить стили, зависящие от количества дочерних элементов.
  • CSS Doodle использует CSS как язык для генерации узоров, фонов и иконок. На странице примеров можно подсмотреть идеи, а v0.55 добавляет новые типы мозаик.
  • pure-web-bottom-sheet — доступный веб-компонент нижней панели на CSS Scroll Snap и scroll-driven animations; примеры помогают оценить поведение на устройствах с тач-вводом.
  • Gradient Visualizer разбирает сложное значение background с градиентами на слои: их можно изучать по отдельности, редактировать и собрать обратно в CSS.

Заходите в Telegram-канал

Там можно спокойно обсудить выпуск, принести свою ссылку, задать вопрос или просто отметить материал, который пригодился в работе

Заглянуть

📦 JavaScript

Deno присоединяется к Cloudflare

Deno станет частью Cloudflare. Для разработчиков это заметное сближение рантайма JavaScript и инфраструктуры edge: обе команды обещают сохранить открытый характер Deno и развивать инструменты для запуска кода ближе к пользователю.

  • Библиотека audio собрала более 140 высокоуровневых операций над звуком в JavaScript: от шумоподавления и эквалайзера до синтеза и анализа музыки.
  • astromd4x заменяет @astrojs/markdown-remark в Astro и обещает рендер Markdown в 50–70 раз быстрее благодаря одной нативной зависимости.
  • Миниатюрный реактивный пакет µsignal совместим по ощущениям с Preact Signals и Solid, а с Brotli занимает около 816 байт.
  • Amber — типобезопасный язык, который компилируется в Bash и помогает поймать часть ошибок ещё до запуска скрипта.
  • wasm-git переносит Git на libgit2 и WebAssembly, поэтому подходит и для Node.js, и для браузера.

⚛️ React и фреймворки

Next.js 16.4 рекомендует Cache Components по умолчанию

В Next.js 16.4 Cache Components стали рекомендуемым вариантом и включаются в новых приложениях через create-next-app. В документации кэширования объясняется, какие части интерфейса можно переиспользовать, а в релизе описаны улучшения для агентных инструментов и изменения для всех приложений.

Preact 11 и Remix 3.0 развиваются своим путём

Preact 11 добавил Hydration 2.0 и автоматическую передачу ref; при использовании preact/compat пригодится его руководство по обновлению. Remix 3.0 вышел из стабильной ветки и больше не построен на React, а в статье о шести месяцах с v3 можно узнать, как изменился подход к приложению.

  • Визуальная нотация деревьев React предлагает отдельно показывать, где элемент находится в DOM, и какой компонент его создал. Песочница строит такие схемы из вставленного кода.
  • Эксперимент с дополнительными оптимизациями React Compiler разбирает код компилятора и проверяет, что дадут инлайнинг, блоки и вывод селекторов.
  • React Aria Sheet — свайпаемая нижняя панель, в которой инерция и анимации построены на scroll snapping и view timelines. Сам компонент доступен в React Aria, а релиз 1.22 включает его в библиотеку React Aria.
  • Бенчмарк React Compiler и Context на 5 000 радиокнопок исследует, может ли компилятор снизить потребность в context selectors.
  • Практики структуры папок React-проекта помогают выбрать структуру, которая не превратится в лабиринт с ростом приложения.
  • TanStack Charts 1.0 предлагает типизированные графики, собранные из меток и шкал, с выводом в SVG или Canvas. Это переосмысление прежнего React Charts; каталог примеров показывает готовые комбинации и код.
  • Ink 8 обновил React-рендерер для терминалов: Box теперь умеет прокручиваться, а перерисовка затрагивает только изменившиеся части строк.
  • Redux Toolkit 2.13 добавил поддержку TypeScript 7 и исправил создание нового селектора в useQuery. Документация пакетов Redux теперь собрана на redux.js.org, включая раздел Redux Toolkit.
  • Mantine 9.7 добавил компонент Tour для знакомства с интерфейсом и расширил доступ к документации через MCP.
  • React Native Testing Library 14.1 поддерживает React Native 0.88 и React 19.3, а также добавляет пользовательское событие pullToRefresh().
  • React Native Skia 3.0 переходит на графический бэкенд Skia Graphite. Перед обновлением полезно свериться с руководством по миграции, особенно если приложение использует собственные шейдеры или сложную графику.
  • Lexical 0.51 переведён только на ESM и приближает расширяемый редактор Meta к версии 1.0.
  • В Base UI 1.9 появились фильтруемые меню в preview, а также исправления фокуса и Drawer. Доступен и Material UI 9.5.
  • MSW 3.0 стал ESM-only, получил GraphQL-подписки и уменьшил размер. Это обновление для тех, кто подменяет сетевые запросы в тестах и разработке.
  • Shaders открыл исходники WebGPU-движка и более 190 компонентов эффектов; каталог содержит варианты для React, Vue, Svelte, Solid и обычного JavaScript.
  • liquid-glass-svelte воспроизводит эффект жидкого стекла Apple в Svelte с настройкой размытия, бликов и границ.
  • ng2-charts приносит Chart.js в Angular и устанавливается через Angular CLI, а официальный репозиторий Angular Skills даёт агентам актуальные инструкции по разработке Angular-приложений.
  • @lucky-media/astro-seo переносит знакомую из Next.js идею generateMetadata в Astro: общие SEO-настройки задаются один раз, а страницы могут их переопределять.

📘 TypeScript

TypeScript 7 пытаются портировать на Rust

ts-rust — очень ранний эксперимент по переносу компилятора TypeScript 7 на Rust с помощью ИИ-агентов. Это не замена официальному компилятору, но интересный пример того, как можно исследовать производительность и архитектуру привычного инструмента.

⚙️ Node.js

Node.js 26.11 добавляет тайм-аут процесса и развивает SQLite

Node.js 26.11.0 получил --process-timeout, который завершает зависший процесс, виртуальные таблицы в node:sqlite, Buffer.stringLength() и поддержку Alpine x64 второго уровня. Полезные детали реализации — в PR для тайм-аута, SQLite и Buffer.stringLength(). Новый дизайн документации временно откатили в 26.11.1, потому что он не отдавал HTML; экспериментальная версия остаётся на beta.docs.nodejs.org.

  • Vite+ 1.0 объединяет выбор версии Node.js, пакетный менеджер и фронтенд-инструменты в команду vp; он уже указан среди вариантов на странице скачивания Node.js.
  • Будущие версии Node.js должны синхронно загружать большинство ES-модулей: соответствующий коммит и PR оставляют асинхронный путь для top-level await, loader hooks и похожих случаев. В основной ветке также уже появился V8 15.5.
  • Matteo Collina объясняет, почему объекты с null-прототипом могут сначала работать медленнее в V8 и как сохранить производительность.
  • В материале о пуле потоков Node.js на занятой машине показано, почему число потоков нельзя всегда приравнивать к числу ядер CPU.
  • Новый сопровождающий wait-on делится опытом поддержки пакета с помощью агентов.
  • Сравнение сборки JavaScript в один исполняемый файл рассматривает подходы Node.js, Bun и Deno.
  • DOCX 9.9 улучшает генерацию Word-документов из JavaScript и приближает раскладку к поведению Word; возможности библиотеки собраны на docx.js.org.
  • H3 v2 переписан вокруг стандартных Request и Response, поэтому одно HTTP-приложение можно запускать в Node, Bun, Deno и Workers. У фреймворка есть краткое руководство по маршрутизации и middleware.
  • Klattsch превращает фонемы в синтезированную речь в стиле 1980-х и работает как npm-пакет в Node.js и браузере.
  • Feedsmith 3.0 читает и генерирует RSS, Atom и JSON Feed в браузере и Node.js. Для старых проектов есть миграция с v2 и быстрый старт.
  • pnpm 12.10 экспериментирует с linker loaded: зависимости можно загружать прямо из хранилища pnpm без связывания node_modules.
  • Hono 5.0 RC переходит на ESM-only, требует Node 22.12+ и выносит адаптеры рантаймов в отдельные пакеты.
  • Execa 10.1 исправляет пограничные случаи запуска процессов, включая наследование process.env при extendEnv: false.
  • Handlebars 4.7.10 закрывает две критические уязвимости JavaScript-инъекций: проекты на ранних 4.x стоит обновить.
  • У he 2.0 — первый релиз за восемь лет: кодировщик и декодировщик HTML-сущностей перешёл на ESM и именованные экспорты.

🤖 ИИ

WebMCP для Preact

Сервер preact-mcp даёт ИИ-агентам доступ к документации и репозиториям Preact через более чем 13 ресурсов. Это пример того, как фреймворки начинают готовить не только документацию для людей, но и структурированный контекст для инструментов разработки.

⚒️ Инструменты и библиотеки

Медиа, графика и интерфейсные заготовки

  • Fantasy Map Generator — интерактивный редактор фэнтезийных карт с открытым исходным кодом для писателей, игровых мастеров и картографов.
  • Dither It! обрабатывает изображения локально в браузере и позволяет выбирать алгоритм и вид дизеринга.
  • В Public Domain Image Archive собрано более 11 000 произведений, перешедших в общественное достояние: их можно искать, скачивать и использовать повторно.
  • Remocn добавляет в реестр shadcn готовые компоненты для Remotion: переходы, затухания и другие заготовки для программного создания роликов.
  • Video.js 10 объединяет наработки нескольких HTML-видеоплееров в один проект. В нём есть React и веб-компоненты, а размер базовой сборки уменьшен примерно на 60%.
  • Snippets создаёт аккуратные скриншоты кода с настройкой фона, типографики, окна и композиции.
  • Vizua предлагает локальные браузерные инструменты для сжатия, изменения размера, конвертации и редактирования изображений.
  • Pascal Editor — локальный 3D-редактор на React Three Fiber и WebGPU, который запускается в браузере или CLI и умеет подключать агентов по MCP.

Git, терминал и рабочий процесс

  • Saggar — менеджер терминалов для macOS: агенты и shell-сессии можно держать рядом, читать их вывод и в любой момент перехватывать управление.
  • GitSync Lite следит за локальными Git-репозиториями из строки меню macOS и показывает незакоммиченные или неотправленные изменения.
  • Расширение GitHub CLI gh-stack помогает разбивать большую работу на цепочку небольших зависимых pull request, которые проще проверять по одному.
  • vy — терминальный просмотрщик JSON и YAML с поиском, обходом дерева, извлечением и преобразованием данных через jaq.
  • Oak — система контроля версий для агентов, состоящая из переиспользуемой библиотеки и CLI.

Остальное