Услуги · 2026
Сайт коллегии адвокатов
Состав коллегии, направления помощи и контакты — статический сайт, который ничего не собирает о посетителе.
- Клиент
- Коллегия адвокатов Курчатовского района Челябинска
- Срок
- 4 недели
- Что сделали
- Дизайн · Разработка · Контент · Инфраструктура
Задача
Показать коллегию и её адвокатов — и ничего не собирать о посетителе.
Адвокату реклама запрещена. Поэтому сайт не продвигает, а даёт проверить: статус каждого адвоката читатель находит сам, по реестровому номеру Адвокатской палаты Челябинской области.
Этапы · 4 недели
Как шла работа
Этап 01
Ограничения
Реклама адвокату запрещена, и из этого выросли правила для каждого текста и каждого блока.
- Оценки качества✕ нельзя
- Обещания результата✕ нельзя
- Отзывы клиентов✕ нельзя
- Слова о чужих делах✕ нельзя
Этап 02
Тексты
Писали под 63-ФЗ и кодекс профессиональной этики адвоката: что делаем, а не как хорошо.
Лучшиеадвокаты городагарантируют победу в судеАдвокаты коллегии помогают на всех этапах — от консультации и подготовки документов до представительства в суде.
пример правкиЭтап 03
Состав и направления
Реестровый номер, стаж и специализация в карточке. Отдельная страница у каждого адвоката, фильтр по отраслям права.
Этап 04
Сцена «Сквозь время»
Возраст коллегии вырезан в фоне, общий снимок виден только сквозь цифры. Дальше всё решает прокрутка.
Этап 05
Разработка
Статический экспорт Next.js. Три движения на CSS scroll timelines, одна сцена на GSAP.
/* the header’s tone, without JavaScript */ .header { animation: tone linear both; animation-timeline: scroll(root); }Этап 06
Выкладка
GitLab CI собирает, rsync доставляет, симлинк переключает релиз. Откат — тот же симлинк на прошлую версию.
- build
- rsync
- ln -sfn
- Caddy
Решение
Формы обратной связи нет
Мы предложили обойтись без неё, и коллегия согласилась. Нет формы — нет персональных данных, и сайт не становится их оператором.
0персональных данных собрано. Осталось то, ради чего приходят.
- Имя и телефонСтатус оператора ПДн
- СообщениеТокен, который нужно беречь
- Согласен на обработку персональных данныхЧекбокс согласия
- Политика конфиденциальностиПолитика обработки ПДн
- ОтправитьУведомление в Роскомнадзор
- Телефоны
- +7 (351) 741-76-81 +7 (351) 741-76-82
- Почта
- advokatt5561@gmail.com
- Адрес
- Челябинск, ул. Куйбышева, 55, офис 61
Карта грузится, только когда до неё долистали. Это единственный сторонний запрос на всей странице.
Сцена клиента, прокрученная нашей прокруткой
Сквозь время
Сквозь времяВозраст коллегии вырезан в фоне, и общий снимок виден только сквозь цифры. Страница влетает внутрьПрокрутка укрупняет цифры, пока просвет в них не станет целым экраном. 1989 — основаниеЛинейка лет останавливается на первой дате, снимок ещё без цвета. 2003 — новое имяГоды прокручиваются дальше, в фотографию понемногу возвращается цвет. СегодняЛинейка доходит до текущего года, цвет возвращается целиком. Сцена кончается общим снимком.
Детали
То, что легко не заметить
Наведите лупу на экран или выберите пункт в списке.
Спецификация
Из чего собрано и почему
| Поз. | Компонент | Где | Почему |
|---|---|---|---|
| 01 | Next.js · static export | Сборка | Сайт собирается в статические файлы: ни базы, ни процесса, который может упасть ночью. |
| 02 | React · TypeScript | Интерфейс | Состав коллегии, фильтр по отраслям права, страница у каждого адвоката. |
| 03 | SCSS | Стили | Стили компонентов лежат рядом с компонентами. |
| 04 | CSS scroll timelines | Движение × 3 | Первый экран, тон шапки и полоса чтения работают без JavaScript. |
| 05 | GSAP ScrollTrigger | Движение × 1 | Только сцена «Сквозь время»: ей нужно измерить глиф, чтобы знать, куда лететь, и удержать восемь движений на одних часах. |
| 06 | Карта · lazy | Контакты | Грузится, только когда до неё долистали. Единственный сторонний запрос на странице. |
| 07 | Caddy | Сервер | Отдаёт статику на небольшом сервере. |
| 08 | GitLab CI · rsync · symlink | Выкладка | Релиз — rsync и переключение симлинка. Откат — тот же симлинк на предыдущий релиз. |
Бюджет движения
Ровно четыре движения
Они названы поимённо в конвенциях проекта. Всё, что сверх списка, в код не попадает.
- Первый экранCSS
- Тон шапкиCSS
- Полоса чтенияCSS
- Сцена «Сквозь время»GSAP
Релизы
Выкладка и откат — одна команда
/srv/advokaty74/
releases/
- r01/
- r02/
- r03/← current
На сервере нет
базы данныхDockerпроцесса, который упадёт ночью