ar
Feedback
Frontender's notes [ru]

Frontender's notes [ru]

الذهاب إلى القناة على Telegram

Ведущий канал о современном фронтенде: статьи, новости, практики, вайбкодинг и автоматизация фронта ИИ-агентами. Личный блог автора - @just_genych MAX - https://max.ru/frontendnoteschannel_ru По вопросам рекламы или разработки - @g_abashkin

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Frontender's notes [ru]

تُعد قناة Frontender's notes [ru] (@frontendnoteschannel_ru) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 31 440 مشتركاً، محتلاً المرتبة 4 127 في فئة التكنولوجيات والتطبيقات والمرتبة 20 258 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 31 440 مشتركاً.

بحسب آخر البيانات بتاريخ 16 سبتمبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -290، وفي آخر 24 ساعة بمقدار -6، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.68‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 4.95‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 2 416 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 557 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 8.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل браузер, api, css, интерфейс, загрузка.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Ведущий канал о современном фронтенде: статьи, новости, практики, вайбкодинг и автоматизация фронта ИИ-агентами. Личный блог автора - @just_genych MAX - https://max.ru/frontendnoteschannel_ru По вопросам рекламы или разработки - @g_abashkin

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 17 سبتمبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

31 440
المشتركون
-624 ساعات
-707 أيام
-29030 أيام
جذب المشتركين
سبتمبر '26
سبتمبر '26
+96
في 23 قنوات
أغسطس '26
+93
في 10 قنوات
Get PRO
يوليو '26
+128
في 10 قنوات
Get PRO
يونيو '26
+111
في 0 قنوات
Get PRO
مايو '26
+239
في 22 قنوات
Get PRO
أبريل '26
+300
في 0 قنوات
Get PRO
مارس '26
+136
في 1 قنوات
Get PRO
فبراير '26
+156
في 1 قنوات
Get PRO
يناير '26
+250
في 60 قنوات
Get PRO
ديسمبر '25
+319
في 28 قنوات
Get PRO
نوفمبر '25
+379
في 69 قنوات
Get PRO
أكتوبر '25
+210
في 32 قنوات
Get PRO
سبتمبر '25
+265
في 90 قنوات
Get PRO
أغسطس '25
+111
في 6 قنوات
Get PRO
يوليو '25
+223
في 2 قنوات
Get PRO
يونيو '25
+247
في 9 قنوات
Get PRO
مايو '25
+255
في 4 قنوات
Get PRO
أبريل '25
+266
في 1 قنوات
Get PRO
مارس '25
+285
في 24 قنوات
Get PRO
فبراير '25
+449
في 27 قنوات
Get PRO
يناير '25
+380
في 36 قنوات
Get PRO
ديسمبر '24
+612
في 53 قنوات
Get PRO
نوفمبر '24
+576
في 40 قنوات
Get PRO
أكتوبر '24
+439
في 27 قنوات
Get PRO
سبتمبر '24
+470
في 34 قنوات
Get PRO
أغسطس '24
+466
في 24 قنوات
Get PRO
يوليو '24
+458
في 34 قنوات
Get PRO
يونيو '24
+431
في 33 قنوات
Get PRO
مايو '24
+442
في 30 قنوات
Get PRO
أبريل '24
+371
في 26 قنوات
Get PRO
مارس '24
+374
في 13 قنوات
Get PRO
فبراير '24
+846
في 4 قنوات
Get PRO
يناير '24
+590
في 22 قنوات
Get PRO
ديسمبر '23
+786
في 34 قنوات
Get PRO
نوفمبر '23
+431
في 8 قنوات
Get PRO
أكتوبر '23
+522
في 1 قنوات
Get PRO
سبتمبر '23
+842
في 0 قنوات
Get PRO
أغسطس '23
+1 001
في 0 قنوات
Get PRO
يوليو '23
+1 476
في 0 قنوات
Get PRO
يونيو '23
+1 096
في 0 قنوات
Get PRO
مايو '23
+916
في 0 قنوات
Get PRO
أبريل '23
+908
في 0 قنوات
Get PRO
مارس '23
+878
في 0 قنوات
Get PRO
فبراير '23
+584
في 0 قنوات
Get PRO
يناير '23
+1 454
في 0 قنوات
Get PRO
ديسمبر '22
+638
في 0 قنوات
Get PRO
نوفمبر '22
+1 656
في 0 قنوات
Get PRO
أكتوبر '22
+536
في 0 قنوات
Get PRO
سبتمبر '22
+537
في 0 قنوات
Get PRO
أغسطس '22
+857
في 0 قنوات
Get PRO
يوليو '22
+1 735
في 0 قنوات
Get PRO
يونيو '22
+523
في 0 قنوات
Get PRO
مايو '22
+218
في 0 قنوات
Get PRO
أبريل '22
+268
في 0 قنوات
Get PRO
مارس '22
+186
في 0 قنوات
Get PRO
فبراير '22
+424
في 0 قنوات
Get PRO
يناير '22
+734
في 0 قنوات
Get PRO
ديسمبر '21
+816
في 0 قنوات
Get PRO
نوفمبر '21
+663
في 0 قنوات
Get PRO
أكتوبر '21
+1 410
في 0 قنوات
Get PRO
سبتمبر '21
+565
في 0 قنوات
Get PRO
أغسطس '21
+1 525
في 0 قنوات
Get PRO
يوليو '21
+1 531
في 0 قنوات
Get PRO
يونيو '21
+1 533
في 0 قنوات
Get PRO
مايو '21
+2 084
في 0 قنوات
Get PRO
أبريل '21
+1 811
في 0 قنوات
Get PRO
مارس '21
+8 672
في 0 قنوات
Get PRO
فبراير '21
+1 828
في 0 قنوات
Get PRO
يناير '21
+1 309
في 0 قنوات
Get PRO
ديسمبر '20
+12 495
في 0 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
17 سبتمبر0
16 سبتمبر+7
15 سبتمبر+3
14 سبتمبر+3
13 سبتمبر0
12 سبتمبر0
11 سبتمبر+4
10 سبتمبر+5
09 سبتمبر+8
08 سبتمبر+25
07 سبتمبر+15
06 سبتمبر0
05 سبتمبر0
04 سبتمبر+3
03 سبتمبر+6
02 سبتمبر+9
01 سبتمبر+8
منشورات القناة
На Habr выкатили текст про то, как порезать фронтенд на модули и сшить их между собой. Разбор — на примере маркетплейса. Авто
На Habr выкатили текст про то, как порезать фронтенд на модули и сшить их между собой. Разбор — на примере маркетплейса. Автор раскладывает приложение на feature-модули, показывает связку сервисов через DI, работу с состоянием и изоляцию обращений к браузерным API. Читать далее 👉 Frontender's notes

2
ИИ уже умеет написать тысячи строк кода за вечер. Вопрос теперь не в том, умеете ли вы пользоваться нейросетью, а понимаете л
ИИ уже умеет написать тысячи строк кода за вечер. Вопрос теперь не в том, умеете ли вы пользоваться нейросетью, а понимаете ли вы, что именно она делает с вашим проектом. «ИИнтеллигенция» - канал для тех, кто хочет разбираться в ИИ глубже обычного пользователя. Здесь выходят: — полезные open-source-инструменты с исходниками; — разборы ИИ-агентов и автоматизации разработки; — локальные модели и self-hosted-сервисы; — реальные инциденты, уязвимости и проблемы AI-кода. Из поста понятно не только что вышло, но и зачем это вам, как запустить и где искать подвох. Читайте «ИИнтеллигенцию» → @clucai
1 341
3
Топовый хостинг под Node.js-приложения и Next.js-сайты с SSR в 2026-м Внутри — про профильные PaaS-облака и про то, с какой с
Топовый хостинг под Node.js-приложения и Next.js-сайты с SSR в 2026-м Внутри — про профильные PaaS-облака и про то, с какой стороны вообще подходить к хостингу сайтов с SSR, то есть серверным рендерингом, на React (Next.js, Remix, Astro), Vue (Nuxt.js, Quasar) и Angular. Где сервисы хороши, а где откровенно хромают — разбирают. Плюс хостинг у VPS- и Serverless-провайдеров. А в финале — пример деплоя нодовского приложения с BullMQ и Redis. Читать далее 👉 Frontender's notes
1 425
4
Свой корпоративный мессенджер на Matrix: дневник инженера На словах задача была простая: собрать ВКС с Jitsi и чатом, да ещё
Свой корпоративный мессенджер на Matrix: дневник инженера На словах задача была простая: собрать ВКС с Jitsi и чатом, да ещё и завезти аккуратный интерфейс в корпоративном стиле. Решение — свой тонкий веб-клиент поверх matrix-js-sdk: болтает с уже имеющимися Synapse-сервером и Jitsi-сервером, но снаружи выглядит и ведёт себя как кусок внутреннего портала. Дальше — подробный, местами болезненный дневник этой стройки: от каркаса на Vite до продакшена с живыми юзерами и крайне поучительных багов. Читать далее 👉 Frontender's notes
1 587
5
Kwork Hider — расширение с кнопкой «Скрыть» для проектов на Kwork На kwork.ru/projects ежедневно вываливается полсотни проект
Kwork Hider — расширение с кнопкой «Скрыть» для проектов на Kwork На kwork.ru/projects ежедневно вываливается полсотни проектов. И добрая половина — вообще не твоё. Кнопки «скрыть» там не завезли, так что ты снова и снова пролистываешь один и тот же шлак. Один умелец сделал расширение Kwork Hider. Оно прикручивает к проектам кнопку «Скрыть». Про свою мотивацию он сказал максимально коротко: «Кто листал, тот знает». Читать далее 👉 Frontender's notes
1 766
6
Накатил свой бесплатный плагин — и вход на WordPress через VK ID работает Очередной хозяин сайта на WordPress решил не мучить
Накатил свой бесплатный плагин — и вход на WordPress через VK ID работает Очередной хозяин сайта на WordPress решил не мучить людей регистрацией и пустить всех через сторонние сервисы. Модная нынче тема, говорит, так что выбор пал на авторизацию через ВК. Раньше он такое уже проворачивал. Но в этот раз уперся: готового решения под задачу не нашлось. В статье рассказывает, как закрыл потребность своим плагином и денег за него не просит. Читать на Habr 👉 Frontender's notes
1 783
7
🔴 Тестовый собес на Frontend-разработчика со старшим разработчиком ex. Сбер в этот четверг! [+ разбор 50 сложных вопросов в
🔴 Тестовый собес на Frontend-разработчика со старшим разработчиком ex. Сбер в этот четверг!  [+ разбор 50 сложных вопросов в подарок ] 17 сентября (в этот четверг!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика! Собеседование проведёт Даниил Дмитриев - старший разработчик в R-Vision, ex. Сбер, Как это будет: 📂 Даниил задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе 📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью 📂 В конце сможешь задать любой вопрос Даниилу и получить на него развёрнутый ответ Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы И ты можешь посмотреть его бесплатно 🔥 Только завтра, в прямом эфире! 🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Frontend-собеседований 🔥 Переходи в бот, чтобы попасть на эфир и забрать подарок 👉 @shortcut_front_bot Реклама. О рекламодателе.
1 677
8
Провайдер баз данных на TypeScript — и ни одного JDBC На Habr выкатили статью про то, как устроен универсальный DB-провайдер
Провайдер баз данных на TypeScript — и ни одного JDBC На Habr выкатили статью про то, как устроен универсальный DB-провайдер на TypeScript, причём без JDBC. Автор отталкивается от простой мысли: в зрелых корпоративных мирах типа Java или .NET всё, что лазает в базу, держится на интерфейсах, стандартизированных на уровне рантайма (Service Provider Interfaces / SPI). В TypeScript подобного стандартного слоя нет. Вот статья и разбирает, как в таких условиях собирают провайдер БД. Читать далее 👉 Frontender's notes
1 744
9
Мужик раскопал математику кейс-сайтов по CS2 — и запилил свой Пару месяцев назад он сам себя спросил: когда жмёшь «открыть» н
Мужик раскопал математику кейс-сайтов по CS2 — и запилил свой Пару месяцев назад он сам себя спросил: когда жмёшь «открыть» на такой площадке — накручивают тебя на ролле или как-то по-другому? Таких сайтов десятки, бабки там крутятся приличные, а исходники не выложил ни один. Снаружи — лента и кнопка, а под капотом — Steam-боты, эмуляция клиента, HMAC, целочисленная бухгалтерия и математика, собранная так, что в среднем в плюсе остаётся сайт. Доказывать это на уровне «да там все скамеры» автор не стал. Он просто целиком написал такой сайт и выложил под MIT. И это не демка с анимацией: заходишь через Steam, крутишь кейс с роллом, который можно проверить, продаёшь и апгрейдишь шмот, кидаешь заявку на вывод — и её реально отправляет торговый бот, а в админке кейс собирается по RTP до того, как уйдёт в продажу. А главный вывод вышел не про мухлёж в ролле: мухлевать там просто не требуется. Репозиторий: github.com/ialakey/caseforge Читать далее: habr.com/ru/articles/1081642 👉 Frontender's notes
1 986
10
Standard JSON Schema vs JSON Schema JSON Schema — это стандарт, которым описывают JSON. Standard JSON Schema — стандарт для… И нет, тут не опечатка и не дубль одного и того же стандарта, просто имена подобраны так, что с ходу и не различишь. А в чём именно между ними разница — разобрано в статье на Habr. Читать: habr.com/ru/articles/1081812 👉 Frontender's notes
1 928
11
Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении Автор расписал, как он возил
Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении Автор расписал, как он возился с архитектурой LibreDB Studio — это IDE для баз данных на TypeScript, которая тянет сразу несколько SQL и NoSQL баз. Пока копался в слое провайдеров, у него вырисовалась довольно строгая схема: подключать новые базы становится безопаснее, а основного кода, который приходится трогать, — меньше. Про саму архитектуру он разложил в блоге, а как сейчас добавляют провайдера — задокументировано в репозитории. Схема, кстати, рабочая. Но остаётся вопрос пошире: чтобы завести нового провайдера, его всё равно нужно впихнуть в основную кодовую базу LibreDB Studio. В итоге автору хочется уехать куда-то в сторону экосистемы плагинов. Читать далее 👉 Frontender's notes
2 000
12
Свой UI Kit: стартовали с 6 компонентов, докрутили до 30+. И один косяк умудрился положить разметку сразу во всех проектах Ко
Свой UI Kit: стартовали с 6 компонентов, докрутили до 30+. И один косяк умудрился положить разметку сразу во всех проектах Когда в проекте плодятся однотипные куски интерфейса, рано или поздно в голову стучится мысль: а зачем мы снова и снова пишем один и тот же Button, Input или Select? Готовые варианты — Ant Design и Material UI в том числе — прикидывали, но они не закрывали запросы: хотелось посильнее контролировать, как компоненты выглядят и как себя ведут, тонко подгонять их под свои задачи и не забывать про требования проекта к безопасности. Читать далее 👉 Frontender's notes
2 087
13
Как я почти завязал с ручным кодингом: оркестрация ИИ-агентов и методология SAMO Автор говорит, что за последние пару лет поч
Как я почти завязал с ручным кодингом: оркестрация ИИ-агентов и методология SAMO Автор говорит, что за последние пару лет почти перестал стучать по клавиатуре сам, а софта при этом клепает, похоже, больше, чем раньше. Львиную часть работы теперь тянут Codex, Claude Code, Gemini и прочие ИИ-агенты, а его собственные задачи всё сильнее смахивают на проектирование среды, где эти ребята могут безопасно работать. Дальше он попробовал копнуть глубже и перестроить под ИИ уже саму архитектуру кодовой базы: сузил пространство решений, вывернул файловую систему почти в систему типов и запустил несколько агентов параллельно. Из этого и выросла SAMO. По его мнению, главный вопрос AI-разработки, возможно, уже не «насколько хорошо ИИ пишет код», а «какую систему мы должны построить вокруг него». Читать далее 👉 Frontender's notes
2 083
14
ИИ уже пилит микросервисы с одного промпта. А я, разработчик, всё ещё зачем-то нужен Автор напоминает: нас хоронят по расписа
ИИ уже пилит микросервисы с одного промпта. А я, разработчик, всё ещё зачем-то нужен Автор напоминает: нас хоронят по расписанию, раз в пару лет. Сначала — визуальные конструкторы. Потом no-code, low-code, автогенерация CRUD. Следом подъехал Copilot. Теперь на очереди LLM: за вечер накидает тебе backend, frontend, Docker Compose, миграции, OpenAPI, Kafka, PostgreSQL, Redis, авторизацию, тесты, README и компилятор в довесок. Соцсети подкидывают дров: «собрал SaaS за 20 минут», «нейронка написала мне приложение», «один промпт заменил команду разработки». Но чем плотнее автор ковыряется с ИИ-тулзами, тем меньше верит в наше исчезновение. И дело не в том, что ИИ тупой — как раз наоборот: код он выдаёт годный. И проверяет он это на самом скромном масштабе из возможных: без бэкенда, Kafka и восьми сервисов. Один фронтенд, один экран поиска. Читать далее 👉 Frontender's notes
2 031
15
RWC. Реактивные веб-компоненты Года не прошло (ладно, ровно год), как автор выкатил RWC — веб-компоненты на сигналах, где ни
RWC. Реактивные веб-компоненты Года не прошло (ладно, ровно год), как автор выкатил RWC — веб-компоненты на сигналах, где ни JSX, ни компилятора шаблонов. Пост собрал восемь тысяч прочтений и тридцать комментов, а потом ядро уехало на переписывание. Дальше в тексте: что вообще поменялось к версии 3.0 и какой холивар прилетел из комментариев — нахрена это нужно, если есть Lit, и реально ли Web Components настолько плохи, как про них говорят. Читать далее 👉 Frontender's notes
2 123
16
Язык, у которого не было ни единого датасета, заговорил — и хватило одной потребительской видяхи Несколько месяцев на одной д
Язык, у которого не было ни единого датасета, заговорил — и хватило одной потребительской видяхи Несколько месяцев на одной домашней видеокарте — и у крымскотатарского появилось рабочее распознавание речи (WER 0.3463 → 0.1701) плюс синтез, который вслух прочитал целую книгу: шестнадцать глав, 1 час 58 минут звучания. Само обучение моделей сожрало часы. А всё остальное время ушло на данные, проверки и выяснение того, какие из собственных измерений врут. По словам автора, именно вторая часть кочует в любой язык, а первая — нет. Конкретных источников аудио, договорённостей с правообладателями, точных рецептов пайплайна и внутренних скриптов в статье не жди — там будут метрики, порядки величин, методология проверки и грабли. Читать далее 👉 Frontender's notes
2 188
17
Shopify валит с React Native Шесть лет прожили на RN — и хватит. Приложения переписывают на нативный Swift с Kotlin. Обоснова
Shopify валит с React Native Шесть лет прожили на RN — и хватит. Приложения переписывают на нативный Swift с Kotlin. Обоснование: кодинг-агенты сбили цену разработки одних и тех же фич дважды. В посте Shopify Engineering заодно пояснили, что будет с React Native Skia, FlashList и Restyle. Есть и отдельный материал про 12-недельный рерайт Shop — с метриками старта, стабильности и размера до и после. Только рады не все: в ветке r/reactnative один из основателей Expo предположил, что это «скорее политическое решение, чем техническое», и что приложение на старой архитектуре сравнивали со свежим рерайтом. Источник: React Status #490 👉 Frontender's notes
2 150
18
Свой велосипед ради покрытия: когда готовые тулзы пасуют На Habr разбирают кейс: даны параметры, некоторые из них умеют собир
Свой велосипед ради покрытия: когда готовые тулзы пасуют На Habr разбирают кейс: даны параметры, некоторые из них умеют собираться в каскады, и надо посчитать, что там покрыто. Логика простая — если тесты есть на каскад, внутри которого сидит параметр, значит и параметр закрыт. И считать надо не ветки, не сценарии, не строки кода, чем обычно и занимаются coverage.py или pytest-cov. Тут речь про покрытие самих сущностей. Подходящего инструмента под это не завезли — так что пилим свою телегу. Читать далее 👉 Frontender's notes
2 153
19
22-23 сентября приглашаем на АЛЬФА ВААА{АИ}ЙЙЙБ ХАКАТОН. Создавайте проект высоконагруженного прокси, соревнуйтесь за 2,3 мил
22-23 сентября приглашаем на АЛЬФА ВААА{АИ}ЙЙЙБ ХАКАТОН. Создавайте проект высоконагруженного прокси, соревнуйтесь за 2,3 миллиона рублей, общайтесь в комьюнити топовых вайб-кодеров. Всех участников пригласим 30 сентября на АЛЬФА ВААА{АИ}ЙЙЙБ МИТАП. Узнаем, кто из финалистов получит миллион, зажжём на техно-рейве с группой ЛАУД и проведём ток-шоу про нейросети. Скорее регистрируйтесь
1 697
20
⁣Отменяемые View Transitions в SPA document.startViewTransition() прекрасен в демках и разваливается, когда пользователь кликает по ссылкам быстрее, чем заканчивается анимация. Наложение переходов. Браузер сам скипнет предыдущий переход, начиная новый, но ваш updateCallback уже мог стартовать fetch и записать состояние роутера - получаете гонку, в которой побеждает не последний клик. Лечится явным AbortController на загрузку данных и skipTransition() на активный переход. Scroll restoration. Браузер делает два снапшота: до и после updateCallback. Если восстанавливать скролл после finished, новый снапшот уже зафиксирован - будет видимый прыжок. Позицию нужно восстанавливать внутри updateCallback, а scroll-behavior: smooth на время перехода отключать, иначе кадр снапшота ловится в середине анимации скролла. Утечки. view-transition-name должен быть уникален в документе. Имя, оставленное на элементе, который вы «закрыли» (display: none, но узел в DOM), уронит следующий переход ошибкой о дубликате. Плюс до finished живут псевдо-оверлеи ::view-transition-old/new: если держите на них блокировку скролла (overflow: hidden, position: fixed), снимайте в finally, иначе после отмены страница останется «залипшей». Каркас: let activeVT: ViewTransition | null = null; let ac: AbortController | null = null; async function navigate(to: string) { activeVT?.skipTransition(); // гасим висящую анимацию ac?.abort(); // и незавершённый запрос ac = new AbortController(); const data = await loadPage(to, { signal: ac.signal }) .catch(() => null); if (!data) return; // aborted const vt = document.startViewTransition(async () => { history.replaceState({ y: scrollY }, '', location.pathname); render(data); restoreScroll(to); // скролл - ДО снапшота нового состояния }); activeVT = vt; document.documentElement.classList.add('vt-lock'); vt.ready.catch(() => {}); // скип реджектит ready, без unhandled try { await vt.finished; } catch { // переход отменён - это норма } finally { document.documentElement.classList.remove('vt-lock'); if (activeVT === vt) activeVT = null; } } Ещё пара мелочей: восстанавливайте фокус (document.activeElement) после перехода, иначе скринридер останется на удалённом узле; в updateCallback не запускайте лишних await - браузер ждёт промис, а старый снапшот всё это время висит мёртвым кадром. Источники: - MDN: View Transition API, ViewTransition.skipTransition() - W3C CSS View Trans
1 962