поддержано свойство text-box (text-box-trim + text-box-edge) для «подрезки» вертикальных отступов у тестовых строк
@view-transition заработал не только в пределах одного документа, но и между разных страниц
из беты вышел background-clip: border-area для маскирования рамки низлежащим слоем; в calc теперь работает деление на единицы измерения calc(100vw / 1px)
поддержаны scrollbar-width и scrollbar-gutter для стилизации скроллбаров
у PointerEvent появились методы getPredictedEvents() и getCoalescedEvents() для предсказания будущих позиций курсора и получения нескольких сгруппированных PointerEvent в pointermove
в Mozilla представили новый брендинг с консольным динозавром-флажком, а также наняли три новых топа: в Firefox выходят вице-президент FF и вице-президент по продукту FF, а также в компании появился вице-президент по инфраструктуре; в общем, кажется готовятся, что у Google (с возможной продажей Chrome) дела могут пойти плохо и тогда лишатся финансирования, придётся поднимать флаг и самостоятельно расправлять паруса
общение компонентов посредством создания и запуска событий помогает избежать проп-дриллинга или связывает (не увеличивая coupling) совсем разнесённые части одной системы; есть простой вариант хука useEvent, который создаёт эвент и отдаёт диспатчер или более сложный в виде шины событий, о котором писал ранее
порой бывает нужно сделать небольшой проект, куда тянуть React не обязательно, и в таком случае не обязательно тянуть и бандлер вместе с процессом билда:
для локального сервера и HMR сгодится browser-sync, сторонние пакеты можно загрузить с unpkg.com или из npm и прописать алиасы в <script type="importmap">
правда не все пакеты, к сожалению, можно просто брать и использовать в сбилженном виде, некоторые, например, lodash-es, придётся сбилдить самостоятельно с помощью esbuild
TS заменяется на JS с JSDoc, а с помощью tsc код проверяется на соответствие типов
в ref элемента в React можно передать функцию, в параметре которой будет DOM-нода и в React 19 ref-функция теперь может возвращать cleanup-функцию, как в useEffect
вслед за React 19 вышел Next 15.1 со свежим React на борту (для Pages Router по-прежнему доступен React 18), улучшен дебаг ошибок, обещают, что найти место ошибки теперь стало проще
CSS
в бете Tailwind 4 был представлен механизм стилизации дочерних элементов из заданного варианта родителю<div class="**:data-avatar:rounded-full"> (все дочерние элементы с атрибутом data-avatar будут скруглёнными), что дизраптит саму идею атомарных классов, помещая в classname «мета-CSS» и открывая возможность использовать фреймворк ещё более противоестественно, приближая его конец
с тех пор, как иконочные шрифты стали считаться анти-паттерном, технологии пошли вперёд: появились вариативные и цветные COLR шрифты, хорошо сжимающий формат woff2 и font-display стали повсеместно поддерживаемыми, content стал поддерживать alt-текст для скринридеров, да и проекты вроде Font Awesome по-прежнему популярны; но тем не менее шрифт может не загрузиться или может быть проигнорирован системными настройками браузера, поэтому SVG — всё ещё предпочтительный вариант для иконок в вебе
color: lch(from var(--bg) calc((49.44 - l) * infinity) 0 0)автоматически меняет цвет текста с чёрного на белый в зависимости от цвета фона
Платформа
в девтулзах Chrome 131 теперь помечаются те анимации, для которых не задействовался процесс «композиции», например, в случае анимации свойства height или кастомного свойства
база, которая мне близка: если знаешь особенности платформы, базового языка (JS, CSS, HTML) и браузеров, то тогда становится легче кастомизировать вещи в рамках фреймворков, находить баги и фиксить их, решать проблемы и задачи легче и элегантнее, всем платформенным респект!