NB. Это дневник почти двух месяцев разработки. Здесь будет много кода, неудачных экспериментов, технических решений и анимированных примеров. Одно изменение постоянно тянуло за собой другое, поэтому получилось длинно. Для удобства разбил историю на главы — можно переходить сразу к интересующим задачам.Приятного чтения!ОглавлениеВступление Мельтешение рта или как я переделал артикуляцию Ручной фон слишком долго делать или зачем мне понадобились генераторы Правка сценария затирала весь проект или…
Эта статья — перевод оригинальной статьи «React 19.3».Также я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов и AI.Новые возможности ReactView TransitionsНовый компонент <ViewTransition> позволяет анимировать элементы интерфейса при их появлении, исчезновении, перемещении или изменении размера с помощью браузерного View Transition API.В прошлом году мы представили его как экспериментальный API, а в React 19.3 он получил стабиль…
Хочу рассказать о своей npm‑библиотеке — это мой второй и самый сложный npm‑проект на момент написания статьи. Глубоко в код погружаться не буду — поделюсь историей создания и мотивацией.ВступлениеПримерно в 2015 году я получил свою первую работу UI/UX‑дизайнером. Рисовал интерфейсы мобильных и десктопных приложений в популярном тогда Sketch, на выделенном мне Mac, и был этому искренне рад. Шло всё неплохо: я соблюдал гайдлайны iOS и Android, а когда идея приложения во мне откликалась, старался…
Я один пишу расширение Chrome, которое показывает субтитры с переводом поверх созвона в Meet, Zoom или Teams, открытых во вкладке браузера. В звонок при этом никто не заходит, звук берётся из вкладки. Ниже три вещи, на которых ушло больше всего времени. Цифры на 17 сентября 2026.Звук вкладки в Manifest V3В MV3 фон расширения это service worker, а в нём нет ни Web Audio, ни getUserMedia. Поэтому service worker получает не поток, а только идентификатор, и создаёт offscreen-документ (reasons: […
Действие сохраняется в очереди при обрыве сети, а сервер отсекает повторУ меня планировщик для школьников. Заходят в него в основном с телефона: из школы, где вайфай один на четыре этажа, и из метро по дороге домой.Ломается это так. Человек жмёт кружок «готово» — кружок не закрашивается. Ошибки нет, спиннера нет, вообще ничего. Он жмёт ещё раз, убирает телефон в карман, а вечером видит задачу невыполненной. Если не повезло — видит две одинаковые.Речь не про офлайн-приложение: это отдельная боль…
Меня зовут Виктория Добролежа, как фронтенд-разработчик в «Аэродиск», я создаю интерфейсы для систем хранения данных (далее СХД). В этой статье расскажу, как мы с командой разработали сложную форму, с помощью которой наши пользователи создают дисковые группы, и поделюсь опытом как, имея три разных сценария, мы избежали дублирования состояния и хаоса в обработчиках. В чем суть формы В СХД есть сущности – дисковые группы RDG, DDP и DDP2. Именно их пользователю необходимо создать с помощью нашей …
Недавно в BotFather у меня появилось сообщение о раннем доступе к Telegram Serverless. Решил посмотреть, что это такое и насколько реально теперь запустить Telegram‑бота вообще без своего VPS.Если совсем коротко — Telegram сделал собственную serverless‑среду специально для ботов. Код и базу можно держать прямо на инфраструктуре Telegram, а отдельный сервер для простого бота больше не обязателен.Пока всё это находится в early access, поэтому некоторые вещи ещё наверняка будут меняться.Что появил…
7 лет назад я опубликовал в npm свою первую библиотеку — custom‑border‑mixin. Тогда я на неделю пропал, просто чтобы в своё удовольствие написать SCSS‑миксин. Если вам интересно, что весёлого может быть в SCSS, просто посмотрите на хелпер:@function param-get($parameters, $key) { $value: map-get($parameters, $key); @if $key == 'side' and $value != 'top' and $value != 'right' and $value != 'bottom' and $value != 'left' { @error 'Value #{$value} …
Привет, Хабр! Меня зовут Павел Востриков. Я занимаюсь фронтенд-разработкой и пишу на JavaScript в «Лаборатории Касперского», а еще участвую в организации московского JS-сообщества. В Diablo II характеристики навыков хранятся в обычных текстовых файлах, поэтому для изменения баланса игру не нужно пересобирать. В Prince of Persia 1989 года поведение персонажа описано через состояния и переходы, а в градостроительных стратегиях сборщик налогов сам выбирает следующее действие по набору правил.Игры …