Pretext — библиотека, которая считает текстовую вёрстку в 500 раз быстрее браузера. Зачем это нужно и как работает
28 марта 2026 инженер Midjourney Cheng Lou выложил в открытый доступ движок текстовой верстки Pretext на чистом TypeScript, который обходит DOM и layout reflow. Это ускоряет сценарии с постоянными пересчётами высоты текста — от AI-стриминга до виртуализации списков.
https://habr.com/ru/articles/1020058/
28 марта 2026 инженер Midjourney Cheng Lou выложил в открытый доступ движок текстовой верстки Pretext на чистом TypeScript, который обходит DOM и layout reflow. Это ускоряет сценарии с постоянными пересчётами высоты текста — от AI-стриминга до виртуализации списков.
https://habr.com/ru/articles/1020058/
👍16💩2❤1🔥1🤔1🤡1🥴1
Name-only контейнеры в CSS для безопасного scoped стиля
Name-only контейнеры позволяют ограничивать область действия стилей по имени без условий, решая конфликт классов в больших дизайн системах и многолетних проектах. Это ближе к тому, что дают CSS modules и scoped styles в компонентах, но с поддержкой на уровне веб платформы.
https://frontendmasters.com/blog/name-only-containers-the-scoping-we-needed/
Name-only контейнеры позволяют ограничивать область действия стилей по имени без условий, решая конфликт классов в больших дизайн системах и многолетних проектах. Это ближе к тому, что дают CSS modules и scoped styles в компонентах, но с поддержкой на уровне веб платформы.
https://frontendmasters.com/blog/name-only-containers-the-scoping-we-needed/
👍7❤1
Syncpack для монорепозитория: единые версии зависимостей без рассинхрона
Syncpack помогает находить и фиксить расхождения версий в больших JavaScript монорепах, а также задавать правила для точных и loose semver диапазонов. Можно принудительно держать одну версию, банить нежелательные пакеты и автоматически обновлять зависимости, сохраняя консистентность package.json.
https://syncpack.dev/
Syncpack помогает находить и фиксить расхождения версий в больших JavaScript монорепах, а также задавать правила для точных и loose semver диапазонов. Можно принудительно держать одну версию, банить нежелательные пакеты и автоматически обновлять зависимости, сохраняя консистентность package.json.
https://syncpack.dev/
👍9🔥2❤1
Поддержка Solid 2.0 beta в TanStack Router, Start и Query
Solid 2.0 beta: асинхронный рендер, derived state и SSR получили новые паттерны, а TanStack Router, Start и Query остаются совместимыми. Достаточно обновить зависимости и, при необходимости, добавить solid-query, чтобы сразу получить роутинг, загрузочные состояния и data fetching в одном стеке.
https://tanstack.com/blog/tanstack-start-solid-v2
Solid 2.0 beta: асинхронный рендер, derived state и SSR получили новые паттерны, а TanStack Router, Start и Query остаются совместимыми. Достаточно обновить зависимости и, при необходимости, добавить solid-query, чтобы сразу получить роутинг, загрузочные состояния и data fetching в одном стеке.
https://tanstack.com/blog/tanstack-start-solid-v2
👍7🔥1
SVGInject: внедряйте SVG inline в DOM без сборки
Небольшая библиотека заменяет img на inline svg, чтобы стилизовать любые path, circle и group через CSS, включая анимации и темную тему. Поддерживает кэширование, предотвращает конфликты ID и автоматически улучшает доступность через ARIA.
https://github.com/iconfu/svg-inject
Небольшая библиотека заменяет img на inline svg, чтобы стилизовать любые path, circle и group через CSS, включая анимации и темную тему. Поддерживает кэширование, предотвращает конфликты ID и автоматически улучшает доступность через ARIA.
https://github.com/iconfu/svg-inject
GitHub
GitHub - iconfu/svg-inject: A tiny, intuitive, robust, caching solution for injecting SVG files inline into the DOM.
A tiny, intuitive, robust, caching solution for injecting SVG files inline into the DOM. - iconfu/svg-inject
👍9❤2🤡2🔥1
7 рецептов для View Transitions в CSS
Собрали готовые шаблоны анимаций для плавных переходов между страницами: от простого dissolve до более выразительных эффектов. Подходит как для практики, так и для быстрого внедрения в веб приложения с учетом prefers-reduced-motion.
https://css-tricks.com/7-view-transitions-recipes-to-try/
Собрали готовые шаблоны анимаций для плавных переходов между страницами: от простого dissolve до более выразительных эффектов. Подходит как для практики, так и для быстрого внедрения в веб приложения с учетом prefers-reduced-motion.
https://css-tricks.com/7-view-transitions-recipes-to-try/
🔥12❤3👍1
Что знать в JavaScript к 2026 году
Обновления ECMAScript 2025, ленивые Iterator Helpers для экономии памяти, методы для Set и RegExp.escape для безопасной сборки регулярных выражений из пользовательского ввода. В фокусе не только язык, но и то, как это применять в рантаймах, фреймворках, библиотеках и туллинге.
https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/
Обновления ECMAScript 2025, ленивые Iterator Helpers для экономии памяти, методы для Set и RegExp.escape для безопасной сборки регулярных выражений из пользовательского ввода. В фокусе не только язык, но и то, как это применять в рантаймах, фреймворках, библиотеках и туллинге.
https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/
👍8❤3
Делаем эмодзи и иконки доступными для скринридеров
Эмодзи и иконки в коде часто не являются настоящими изображениями, поэтому скринридер читает их буквальные названия или не находит текста. Добавляйте текстовые альтернативы, подписывайте icon-only элементы и контролируйте, чтобы смысл не терялся без визуального контекста.
https://blog.pope.tech/2026/04/01/making-emojis-and-icons-screen-reader-accessible/
Эмодзи и иконки в коде часто не являются настоящими изображениями, поэтому скринридер читает их буквальные названия или не находит текста. Добавляйте текстовые альтернативы, подписывайте icon-only элементы и контролируйте, чтобы смысл не терялся без визуального контекста.
https://blog.pope.tech/2026/04/01/making-emojis-and-icons-screen-reader-accessible/
❤5👍3🔥1
Безопасная загрузка файлов в Node.js
Решение для защиты загрузки файлов в бэкенде: валидация, ограничения и снижение рисков вроде вредоносного контента и переполнений. Подходит для веб приложений, где важны надежность и контроль входящих данных.
github.com/pompelmi/pompelmi
Решение для защиты загрузки файлов в бэкенде: валидация, ограничения и снижение рисков вроде вредоносного контента и переполнений. Подходит для веб приложений, где важны надежность и контроль входящих данных.
github.com/pompelmi/pompelmi
GitHub
GitHub - pompelmi/pompelmi: ClamAV antivirus scanning for Node.js — scan file uploads with a single function call. Zero dependencies.…
ClamAV antivirus scanning for Node.js — scan file uploads with a single function call. Zero dependencies. Typed Symbol verdicts. Local or Docker/clamd. - pompelmi/pompelmi
👍11❤2
Формы в Angular: от Reactive Forms к Signal Forms
Signal Forms в Angular v21 дают новый способ управления состоянием формы через сигналы, уменьшая шаблонную и компонентную разрозненность. Разберем, как мигрировать подход от FormGroup и FormArray к более предсказуемой модели и что это меняет в валидации и работе с динамическими полями.
https://habr.com/ru/companies/domclick/articles/1018180
Signal Forms в Angular v21 дают новый способ управления состоянием формы через сигналы, уменьшая шаблонную и компонентную разрозненность. Разберем, как мигрировать подход от FormGroup и FormArray к более предсказуемой модели и что это меняет в валидации и работе с динамическими полями.
https://habr.com/ru/companies/domclick/articles/1018180
👍8❤2⚡1
Чем заменить !important в CSS
Каскадные слои, грамотный порядок подключений, трюки с селекторами и работа с специфичностью помогают убрать !important и вернуть предсказуемость стилей в больших проектах.
https://css-tricks.com/alternatives-to-the-important-keyword/
Каскадные слои, грамотный порядок подключений, трюки с селекторами и работа с специфичностью помогают убрать !important и вернуть предсказуемость стилей в больших проектах.
https://css-tricks.com/alternatives-to-the-important-keyword/
👍6❤3🔥1
CSS subgrid для выравнивания контента из CMS без костылей
Subgrid позволяет наследовать сетку родителя и легко расширять фон и блоки на всю ширину или возвращать их обратно в основной столбец, сохраняя точное выравнивание текста. Это упрощает сложные макеты с вложенными блоками и делает верстку предсказуемой.
https://dbushell.com/2026/04/02/css-subgrid-is-super-good/
Subgrid позволяет наследовать сетку родителя и легко расширять фон и блоки на всю ширину или возвращать их обратно в основной столбец, сохраняя точное выравнивание текста. Это упрощает сложные макеты с вложенными блоками и делает верстку предсказуемой.
https://dbushell.com/2026/04/02/css-subgrid-is-super-good/
👍6⚡1
SSGOI: нативные переходы между страницами
SSGOI добавляет плавные переходы с поддержкой React, Next, Vue, Nuxt, Svelte и Angular, работая с любым роутингом. Есть готовые типы переходов и быстрая настройка через обёртки вокруг layout и страниц.
https://github.com/meursyphus/ssgoi
SSGOI добавляет плавные переходы с поддержкой React, Next, Vue, Nuxt, Svelte и Angular, работая с любым роутингом. Есть готовые типы переходов и быстрая настройка через обёртки вокруг layout и страниц.
https://github.com/meursyphus/ssgoi
1😁8👍7🥴1😐1
HTML в canvas: рисуем и компонуем DOM с доступностью
Предложение к использованию <canvas>, которое добавляет примитивы для layoutsubtree, drawElementImage и paint event, чтобы корректно рендерить дочерние HTML элементы в 2D и 3D canvas с согласованным fallback и hit testing. Идея закрывает боль с качеством, доступностью и экспортом контента, а также открывает путь к эффектам через WebGL/WebGPU.
https://github.com/WICG/html-in-canvas
Предложение к использованию <canvas>, которое добавляет примитивы для layoutsubtree, drawElementImage и paint event, чтобы корректно рендерить дочерние HTML элементы в 2D и 3D canvas с согласованным fallback и hit testing. Идея закрывает боль с качеством, доступностью и экспортом контента, а также открывает путь к эффектам через WebGL/WebGPU.
https://github.com/WICG/html-in-canvas
GitHub
GitHub - WICG/html-in-canvas
Contribute to WICG/html-in-canvas development by creating an account on GitHub.
👍9❤2👎2⚡1🤔1🤨1
Создаем WCAG доступный DatePicker в React
Разбираем, как собрать DatePicker по паттерну WAI-ARIA APG Date Picker Dialog: корректные роли и aria, roving tabindex, фокус ловушка, полная клавиатурная навигация и календарная сетка. Плюс практичные требования WCAG 2.1/2.2 Level AA, контрастность и обработка disabled дат без лишних зависимостей.
https://habr.com/ru/articles/1022918/
Разбираем, как собрать DatePicker по паттерну WAI-ARIA APG Date Picker Dialog: корректные роли и aria, roving tabindex, фокус ловушка, полная клавиатурная навигация и календарная сетка. Плюс практичные требования WCAG 2.1/2.2 Level AA, контрастность и обработка disabled дат без лишних зависимостей.
https://habr.com/ru/articles/1022918/
👍12
Автогенерация skeleton экранов из реального UI
Boneyard автоматически снимает разметку и генерирует pixel-perfect скелеты без ручных замеров и подгонок, поддерживает React, Vue, Svelte 5, Angular, Preact и React Native. Используйте CLI или Vite plugin, а затем подключайте registry для быстрых и консистентных загрузочных состояний.
https://github.com/0xGF/boneyard
Boneyard автоматически снимает разметку и генерирует pixel-perfect скелеты без ручных замеров и подгонок, поддерживает React, Vue, Svelte 5, Angular, Preact и React Native. Используйте CLI или Vite plugin, а затем подключайте registry для быстрых и консистентных загрузочных состояний.
https://github.com/0xGF/boneyard
👍17🔥8❤🔥2❤1
Скринридеры это не тестовый инструмент для проверки WCAG
Скринридеры помогают понять опыт пользователя, но из за особенностей навигации и имитации кликов они могут скрывать проблемы и давать ложное ощущение готовности. Для аудита WCAG используйте их как часть проверки, а не как единственный инструмент, и не перегружайте интерфейс избыточными подсказками.
https://yatil.net/blog/screen-readers-are-not-testing-tools
Скринридеры помогают понять опыт пользователя, но из за особенностей навигации и имитации кликов они могут скрывать проблемы и давать ложное ощущение готовности. Для аудита WCAG используйте их как часть проверки, а не как единственный инструмент, и не перегружайте интерфейс избыточными подсказками.
https://yatil.net/blog/screen-readers-are-not-testing-tools
👍4❤1
Baseline март 2026: 12 браузерных фич, которые уже можно брать в прод
В марте 2026 появилось много Widely available возможностей, включая Clear-Site-Data для управляемого сброса кэша и хранилищ, а также новые CSS и WebAPI.
https://habr.com/ru/articles/1018200/
В марте 2026 появилось много Widely available возможностей, включая Clear-Site-Data для управляемого сброса кэша и хранилищ, а также новые CSS и WebAPI.
https://habr.com/ru/articles/1018200/
❤7👍2
Google начнет наказывать за back button hijacking
С 15 июня 2026 сайты, которые перехватывают кнопку назад и ломают ожидаемую навигацию, попадут под спам-действия или автоматические понижения в выдаче. Проверьте скрипты, библиотеки и рекламные интеграции, которые могут подменять историю браузера и отправлять пользователя на непосещенные или навязанные страницы.
https://developers.google.com/search/blog/2026/04/back-button-hijacking
С 15 июня 2026 сайты, которые перехватывают кнопку назад и ломают ожидаемую навигацию, попадут под спам-действия или автоматические понижения в выдаче. Проверьте скрипты, библиотеки и рекламные интеграции, которые могут подменять историю браузера и отправлять пользователя на непосещенные или навязанные страницы.
https://developers.google.com/search/blog/2026/04/back-button-hijacking
👍25🤔3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Митапы — это, конечно, круто и полезно. Но что может быть лучше открытой дискуссии с коллегами о наболевшем? ☑️
AvitoTech тут зовёт на классный ивент для фронтендеров. Обещают полтора часа дискуссий на самые разные темы: от роста фронтенд-инженера в тимлида до ванильного JS. И вишенка на торте — афтерпати на веранде ☄️
Всё пройдёт вечером 19 мая, так что погода не должна подкачать. Регистрация, кстати, по ссылке.
AvitoTech тут зовёт на классный ивент для фронтендеров. Обещают полтора часа дискуссий на самые разные темы: от роста фронтенд-инженера в тимлида до ванильного JS. И вишенка на торте — афтерпати на веранде ☄️
Всё пройдёт вечером 19 мая, так что погода не должна подкачать. Регистрация, кстати, по ссылке.
👍6
Ленивая загрузка видео и аудио в HTML уже стандарт
Ленивая загрузка в HTML для видео и аудио стала доступной через loading=lazy и помогает откладывать скачивание медиа до момента появления в вьюпорте. Разберем практики вроде poster, autoplay и сохранения размеров через width height или aspect-ratio, чтобы избежать layout shift и лишнего трафика.
https://engineering.squarespace.com/blog/2026/how-to-use-standard-html-video-and-audio-lazy-loading-on-the-web-today
Ленивая загрузка в HTML для видео и аудио стала доступной через loading=lazy и помогает откладывать скачивание медиа до момента появления в вьюпорте. Разберем практики вроде poster, autoplay и сохранения размеров через width height или aspect-ratio, чтобы избежать layout shift и лишнего трафика.
https://engineering.squarespace.com/blog/2026/how-to-use-standard-html-video-and-audio-lazy-loading-on-the-web-today
👍11❤4🔥3