Кейс · 22 июня 2026 · v5.3
Тестовое задание: повторить три экрана лендинга фитнес-марафонов с реальными фото, ценами и рабочей формой. Сделано в одном файле за ~40 минут, без сборщиков и фреймворков.
Бриф
Подход
Headless-Chrome (Playwright) на usmanovafit.gymteam.ru/mainpage + /kdz_june с полным рендером. Сохранил HTML, скриншоты, вытащил 102 URL фото через обход DOM и background-image.
Из DOM достал реальные названия 12 програм, описания, FAQ, реквизиты, ссылки на юридические документы. Цены тарифов нашёл на странице /maysale2026_7 — там, куда ведёт «Подробнее» в каталоге.
13 изображений (1 hero + 12 программ) с их CDN GetCourse. Локально, без зависимости от чужих серверов. Имена переименовал в hero.jpg + program_01.png…program_12.png.
Первая версия была с силуэтами и сгенерированными текстами — заказчик попросил реальные фото, текста, цены и юридические блоки. Пересобрал: дословные описания, реальные тарифы, 4 модалки с офертой/политикой/согласием/службой заботы.
Прогнал на трёх вьюпортах (390/768/1440): document.scrollWidth = ширине вьюпорта (без overflow), scrollIntoView для кнопок, валидация формы (3 ошибки на пустую отправку), маска телефона, тик таймера, открытие/закрытие всех модалок. 0 JS-ошибок в консоли.
vercel deploy --prod --yes из папки проекта → алиас usmanovafit-test.vercel.app. Verify на живом URL тем же Playwright-набором. 0 failed requests, 13/13 фото загрузились, 4/4 модалки работают.
Что получилось
Выбрал воронку: первое касание → выбор программы → конверсия. Стилистика — моя (минимализм + крупная типографика, единая палитра), контент и фото — их.
Большой розовый заголовок как единственный якорь на экране. Реальное фото Кати вместо стокового силуэта. CTA — в программы, а не «узнать больше».
На оригинале каталог скрывает цены за кнопкой «Подробнее» — это лишний клик. Я показал цены сразу, реальные фото каждой программы (12 карточек), дословные описания.
Тёмный лендинг с kdz_june: таймер, два тарифа, форма «Имя + E-mail + Телефон», живая маска на телефоне, валидация, success-экран. Юр. ссылки кликабельны — открывают модалки.
+7 (___) ___-__-__. Согласие на рассылку с галочкой. Success: «Спасибо, {имя}!».В оригинале тарифы спрятаны внутри формы. Я вынес их в отдельный светлый блок между каталогом и формой: посетитель видит цены и состав ДО конверсии, не нажимая лишних кнопок. Тариф «Чемпионка» (6 900 ₽) — флагман с тёмной карточкой, «Спортсменка» (5 600 ₽) — базовый. Клик на CTA в карточке тарифа автоматически пре-селектит нужный тариф в форме ниже.
Полировка v5.3
В v4 я переборщил со скидкой 80% — она торчала и в hero, и в форме, и на фото. Заказчик попросил сделать чисто. Итог: одно упоминание в форме, тонкое напоминание сверху, ноль дублей.
Hero price-bar, вращающийся −80% бейдж на фото, plan__savings пилюля в карточке Чемпионки, sticky promo-бар — всё ушло. Hero снова чистый, плашка скидки не лезет в первый экран.
Заголовок form-section: «Превратите абонемент — со скидкой 80%». Розовый курсив, как паттерн «выберите свой» в блоке тарифов. Без тяжёлой тёмной плашки с гигантской цифрой, без пульса.
Сверху sticky строчка: «−80% Скидка 80% на тариф «Чемпионка» — только до конца акции» + CTA «Забрать со скидкой». Всегда видна, не мешает фото, ведёт к форме. −67% на «Спортсменке» — оставил (другая скидка, не дубль).
−67% (другая скидка).Чем собирал
Никаких фреймворков, сборщиков, CDN-картинок. Один HTML-файл, inline CSS и JS, папка с фото. Открывается офсейн после первой загрузки шрифта.
CSS Grid + Flexbox, custom properties, @media для мобилки. Без препроцессоров, без Tailwind — всё написано руками для полного контроля над метриками.
~120 строк: smooth scroll, IntersectionObserver для reveal-анимаций, таймер обратного отсчёта, валидация формы, маска телефона, модалки по data-modal + Escape для закрытия.
Manrope (sans, кириллица) для основного текста, как в оригинале. Крупные цифры — без засечек. Шрифты с Google Fonts, с preconnect для скорости.
Что проверено
Playwright-скрипт прогоняется после каждого изменения. Вот что он ловит на usmanovafit-test.vercel.app:
#programs#signup9261234567 → +7 (926) 123-45-67#signup−80% упоминается в форме ОДИН раз (в title), плюс в тонком promo-баре. −67% в «Спортсменке» — другая скидка.Кликайте кнопки, отправляйте форму, открывайте юр. модалки. Сайт реально работает на Vercel, проверки в этом кейсе — не теория, а факт прогона.
Открыть лендингИсходник: один HTML-файл · дизайн: Mavis