К содержанию
levitskiy.dev
К работам
Case 02 / 03[Beauty studio] — [2026]

Levitskaia.

Клиент
Levitskaia, студия перманентного макияжа — Прага, Жижков
Роль
Дизайн и разработка
Стек
Next.js 16 · React 19 · Tailwind v4 · Framer Motion · Google Calendar API
Год
2026
Статус
Запуск в 2026

Тёплый нюдовый editorial-сайт студии перманентного макияжа в Праге — люкс через сдержанность и движок записи, которым владелица управляет прямо из своего Google Календаря.

Levitskaia — Text-parallax — заголовок услуги дрейфует поверх отступающей фотографии
Text-parallax — заголовок услуги дрейфует поверх отступающей фотографии
Открыть на весь экран

Обзор

Перманентный макияж покупают на доверии — работа остаётся на лице год. Поэтому сайт читается как журнал: тёплая нюдовая бумага, фотографии во всю ширину, сдержанность вместо золота и блёсток.

Ни админки, ни CMS. База данных — Google Календарь владелицы: рабочие блоки минус занятость превращаются в слоты по 30 минут с буфером 15 минут на 60 дней вперёд по Праге. Визард ведёт услуга → день → время → контакты, проверяет данные через zod и подтверждает письмом Resend с файлом .ics.

Оба языка равноправны — словари CZ и RU, hreflang, локализованные OG, — а каждая фотография проходит через свой пайплайн пресетов от 800 до 2400 px, чтобы кадр в 4K не стоил шести мегабайт на телефоне.

Посмотреть вживую/demos/levitskaia/

Полная копия сайта работает внутри портфолио — можно раскликать все страницы.

Фирменная анимация

Как это устроено.

На каждую услугу — 150vh скролла. Фотография залипает на весь экран, заголовок дрейфует поверх и вспыхивает только в середине блока: читается как разворот журнала.

  1. 01

    150vh на услугу

    У каждой услуги свой блок. Фото пинится на весь экран, а скролл внутри блока работает таймлайном.

  2. 02

    Фото отступает

    Масштаб идёт 1 → 0.88, прозрачность гаснет: изображение отходит назад, а не уезжает вбок.

  3. 03

    Заголовок дрейфует

    Строка clamp(52px, 10vw, 128px) движется по y 220 → −220 и раскрывается до полной непрозрачности только в центре ([0.2, 0.45, 0.72]).

  4. 04

    Киношный hero

    Над всем этим заголовок выезжает построчно из-под маски — y 110% → 0, 0.9 с, stagger 0.12, на фирменном ease.

Levitskaia — Hero — каждая строка выходит из-под своей маски
Levitskaia — mobile
Hero — каждая строка выходит из-под своей маски
Посмотреть вживую/demos/levitskaia/
Возможности06
  • 01

    Google Календарь вместо CMS

    Рабочие блоки минус занятость дают доступные слоты: шаг 30 минут, буфер 15 минут, горизонт 60 дней, Europe/Prague.

  • 02

    Визард записи

    Услуга → день → время → контакты, валидация через zod, подтверждение письмом с вложенным .ics.

  • 03

    Без админки

    Владелица ведёт студию из календаря, которым и так пользуется. Учить нечего, заходить некуда.

  • 04

    CZ + RU

    Полный словарь, hreflang и локализованные OG — а не перевод, прикрученный в конце.

  • 05

    DockNav на мобильном

    Навигация — pill-док с индикатором на layoutId: он переезжает между разделами, а не прыгает.

  • 06

    Пайплайн фотографий

    Каждый кадр собирается в пресеты от 800 до 2400 px и отдаётся по ширине экрана, а не наугад.

Дизайн-система

Палитра

  • Cream#F1E7D7
  • Cream 2#EFE6D5
  • Panel#1B1614
  • Ink#100D0B
  • Stone#8C837A
  • Stone 2#6F675E

Шрифты

  • GeistDisplay · Text
  • Geist MonoLabels
Галерея04
  • Why me — три числа вместо манифеста
    Why me — три числа вместо манифеста
  • Губы и межресничка — строка услуги перекидывается со стороны на сторону, цена лежит на кадре
    Губы и межресничка — строка услуги перекидывается со стороны на сторону, цена лежит на кадре
  • Брови — третья процедура и вопросы, которые задают до записи
    Брови — третья процедура и вопросы, которые задают до записи
  • Choose your time — финальный экран и вход в запись
    Choose your time — финальный экран и вход в запись
Следующий проект

Magic Xtal

[Industrial B2B] — [3D point cloud]