🖇️ Полностью в вебе
Новости
🔡 закрывается браузер Arc: создатели переключились на другой браузер (с AI) Dia, под капотом тоже Chromium и проприетарная платформа для создания браузеров, которую опенсорсить не собираются
🔡 также закрывается проект Glitch (браузерный редактор веб-приложений + хостинг) после 10 лет работы
🔡 в ESLint провели ретроспективу выкатки flat-config-а с 2019 по 2024, выявили основные ошибки: слишком много ломающий изменений за раз, слишком много документации и отсутствие тулинга автомиграции, медленное впитывание новой версии экосистемой, отказ от двойных конфигов (надо было поддержать, востребовано авторами плагинов)
🔡 господа из React Router поддержали в RR React Server Components, а также решили воскресить Remix (в лучших традициях рестлинга) да не просто так, а сделать его полностью независимым, даже от React (внутри будет форк Preact): теперь стало понятно, что этот проект — экспериментальная площадка, чтобы проверять крейзи-фичи и затем интегрировать их в «стабильный» RR
🔡 вышел Chrome 137:
🔵 поддержали функцию
if() в CSS: background-color: if(style(--color: white): black; else: white)🔵 заработала функция
shape() для указания направления в свойстве offset-path🔵 добавили значение
view-transition-name: match-element, чтобы автогенерировать название вью-транзишна вместо хардкода или задания из JS🔡 вышел Firefox 139.0:
🔵 из коробки работает Temporal proposal (прикол в том, что для движка SpiderMonkey поддержку реализовал один чел, опенсорсный контрибьютор, который не работает в Mozilla)
🔵 поддержали атрибут
hidden=until-found🔵 в экспериментальных фигах за флагом приехали: View Transition API, scheduler.yield()
🔡 вышла новая версия Bun v1.2.14:
🔵 позаимствовали фичу
catalogs: из pnpm для создания алиасов для группы зависимостей🔵 добавили флаг
bun init --react для быстрого разворачивания шаблона React-проекта и дев-сервером на Bun🔡 вышла новая версия JSPM 4.0 (import map package manager): внутри команды для безконфиговой сборки и сервинга проекта, поддержка нативного TS «со стриппингом», импортмапы средствами браузера — звучит знакомо? да, потому что контрибьютор JSPM и ES Module Shims — один и тот же человек, Guy Bedford
Проекты
🔡 snapdom — либа для снятие скриншота с DOM-ноды, как в дев-тулзах, только отдельной либой (и без папеттира внутри)
🔡 enum-converter — пример работы TypeScript Transform API — конвертер Enum в type alias
Статьи, мнения, туториалы
JS/TS
🔡 реактовский
useSyncExternalStore можно использовать не только для хранения каких-то бизнес-данных (типичный стор), но и для «UI»-информации, например, данных о window.matchMedia: подписываемся на 'change' состояния экрана, записываем в «стор», в React-компоненте юзаем этот стор🔡 как избегать проблемы циклических импортов между компонентами с помощью здравого смысла, а также инверсии зависимостей (меняем прямое использование на пропы) на примере методологии FSD
🔡 в связи с начавшейся раскаткой Temporal в браузерах (FF — первый) пора знакомиться, если ещё не, тем более, есть полифилл
🔡 краткая история JS с уклоном в Райана Даля, Node и Deno: в 2025 JS исполнилось 30 лет, JSDoc — 26 лет, JSON — 24, Safari — 22, MDN — 20, jQuery — 19, Chrome — 17, Node.js, CoffeeScript — 16, npm, Backbone — 15, TypeScript — 13, React — 12, ES6 — 10, Next.js — 9, Bun — 2
CSS
🔡 помимо именования view-transions с ними есть ещё одна проблема: так как транзишн применяется к
document, одновременно может выполняться только один транзишн + есть проблема с z-index, когда транзишнящийся элемент перекрывает всё вокруг; решение — будущий Scoped View Transitions, то есть возможность запуска транзишна на конкретном элементе element.startViewTransition()🔡 эффект «фонарика в темноте»: что прикольно, так это, что можно задавать любую форму светлому участку благодаря
filter или mix-blend-mode, например, «решётка» из градиентов сильно смазанная и переконтращенная filter: blur(1em) contrast(100) становится движущейся «кляксой»@web_platform | Поддержать платформу ✨