Design System — ТЗ на лендинг «Мягкий эксперт»
Дизайн-система · ТЗ v1.0

Стиль лендинга
«Мягкий эксперт»

Полное техническое задание на дизайн и вёрстку landing page для экспертов в нише психологии, коучинга, консультирования. Основано на реализованном проекте Алёны Архиповой.

Тип Single-page landing Трафик Холодный Яндекс.Директ Аудитория Женщины 30–42, доход выше среднего Стек HTML / CSS / JS (no-framework)
01

Цветовая палитра

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

Основной фон
#F5F1EB
Фон большинства секций
Альт. фон
#EFE9E2
Чередующиеся секции
Тёмный фон
#EDE6DD
Акцентные секции
Карточки
#FFFFFF
Фон всех карточек
Заголовок
#1F1F1F
H1, H2, H3
Основной текст
#2E2E2E
Body text
Приглушённый
#7A736C
Субтайтлы, подписи
CTA / Акцент
#C46A4A
Кнопки, лейблы, линии
CTA hover
#8F442C
Состояние кнопки
Золото
#D6A15C
Разделители, div

CSS-переменные

:root {
  --bg:      #F5F1EB;   /* Основной фон */
  --bg-alt:  #EFE9E2;   /* Чередующийся фон */
  --bg-dark: #EDE6DD;   /* Акцентный фон */
  --card:    #FFFFFF;   /* Фон карточек */
  --text:    #2E2E2E;   /* Основной текст */
  --muted:   #7A736C;   /* Приглушённый текст */
  --head:    #1F1F1F;   /* Заголовки + тёмная шапка/футер */
  --cta:     #C46A4A;   /* Кнопки и акценты */
  --ctah:    #8F442C;   /* Hover состояние кнопки */
  --accent:  #D6A15C;   /* Золотые разделители */
}
Правило Терракотовый (#C46A4A) используется ТОЛЬКО для кнопок, лейблов-подзаголовков разделов и акцентных линий. Нигде больше. Это создаёт чёткую визуальную иерархию внимания.
02

Типографика

Два шрифта. Один — для заголовков, создаёт элегантность и тепло. Второй — для текста, обеспечивает читаемость.

Display font — Cormorant Garamond
Ты не обязана решать в одиночку
H1, H2, H3, цитаты, italic-подзаголовки
Body font — Manrope
Ты всё понимаешь. Видишь манипуляции. Но продолжаешь возвращаться. Это не слабость — это программы привязанности.
Весь body текст, кнопки, навигация, лейблы

Шкала размеров

ЭлементРазмерВесШрифт
H1 (hero)clamp(2.1rem, 5vw, 3.4rem)500Cormorant Garamond
H2 (секции)clamp(1.7rem, 3.5vw, 2.5rem)500Cormorant Garamond
H3 (карточки)clamp(1.1rem, 2vw, 1.4rem)500Cormorant Garamond
Body16px / 1rem400Manrope
Body small14–15px / 0.88–0.93rem400Manrope
Кнопка0.9rem600Manrope
Label (uppercase)11px700Manrope
Микротекст12px400Manrope
Italic-цитата1.05–1.1rem400 italicCormorant Garamond

Межстрочный интервал (line-height)

КонтекстЗначение
Заголовки H1, H21.2
Основной текст1.75
Мелкий текст, карточки1.6–1.65
Цитаты курсивом1.7
Кнопки1.35

Подключение шрифтов

<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@300;400;500;600&display=swap" rel="stylesheet">
Альтернативы Вместо Cormorant Garamond можно использовать Playfair Display или EB Garamond — тот же настрой. Вместо Manrope — DM Sans или Plus Jakarta Sans. Главное: один серифный + один гротескный.
03

Отступы и сетка

Контейнер

.wrap {
  max-width: 860px;
  margin: 0 auto;
  /* Горизонтальные отступы задаются у секции: padding: 100px 24px */
}
Почему 860px, а не 1200px? Узкий контейнер создаёт ощущение интимности и фокуса — важно для ниши психологических услуг. Широкие лендинги ощущаются как коммерция, узкие — как личный разговор.

Вертикальные отступы секций

ЭкранPadding секции
Desktop (> 760px)100px сверху и снизу
Mobile (≤ 760px)60px сверху и снизу

Разделитель между заголовком и контентом

.div {
  width: 40px;
  height: 2px;
  background: #D6A15C; /* золотой акцент */
  margin: 24px 0;
}

Внутренние отступы карточек

Тип карточкиPadding desktopPadding mobile
Большая (cases, prices)28–32px20–22px
Средняя (steps, safety)24–28px18–20px
Малая (sp-item, tags)14–18px12–14px

Зазоры в сетках (gap)

СеткаGap desktopGap mobile
Cases, Steps (3 колонки)18px12px
Safety, Prices (2 колонки)14px10px
SP-grid (2 колонки)13px10px

Border-radius карточек

--r: 12px;  /* карточки */
border-radius: 10px;  /* кнопки, инпуты */
border-radius: 40px;  /* теги/чипы */
border-radius: 16px;  /* квиз-контейнер */
04

Компоненты

Кнопка CTA

Примеры
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cta);        /* #C46A4A */
  color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 17px 30px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, box-shadow 0.2s;
  min-height: 54px;
  letter-spacing: 0.01em;
  white-space: normal;           /* перенос текста */
  line-height: 1.35;
}
.btn:hover { background: var(--ctah); box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.btn:active { transform: scale(0.98); }
/* На мобиле: width: 100%; display: flex; */

Лейбл-заголовок секции

.label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cta);
  margin-bottom: 16px;
}

Карточка

.card {
  background: var(--card);       /* #FFFFFF */
  border-radius: var(--r);       /* 12px */
  padding: 28px 24px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
}
/* Нет border — только тень. Это важно для мягкого стиля. */

Цитата / Выделенный текст

.quote-block {
  padding: 22px 26px;
  background: var(--card);
  border-radius: var(--r);
  box-shadow: 0 6px 16px rgba(0,0,0,0.05);
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.1rem;
  color: var(--head);
  line-height: 1.7;
}

Акцентная плашка (hero-note)

.hero-note {
  padding: 18px 22px;
  background: rgba(196,106,74, 0.07);  /* полупрозрачный CTA */
  border-left: 3px solid var(--cta);
  border-radius: 0 8px 8px 0;
  font-size: 0.9rem;
  line-height: 1.7;
}

SP-item (список с акцентной линией)

.sp-item {
  padding: 18px 22px;
  border-left: 2px solid var(--accent);  /* золото */
  background: rgba(255,255,255,0.4);
  border-radius: 0 8px 8px 0;
}

Тег / чип

.tag {
  padding: 9px 16px;
  background: var(--card);
  border-radius: 40px;
  font-size: 0.82rem;
  font-weight: 500;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

Sticky-кнопка (мобиль)

.sticky {
  display: none;  /* показывать только на мобиле */
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 100;
  padding: 10px 16px 18px;
  background: var(--bg);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
}
@media(max-width: 760px) { .sticky { display: block; } }

FAQ-аккордеон

/* Открытие через JS: item.classList.toggle('open') */
.fq-a { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.fq.open .fq-a { max-height: 300px; }
/* Стрелка */
.fq-arr::after { content:''; display:block; width:7px; height:7px;
  border-right: 2px solid var(--cta); border-bottom: 2px solid var(--cta);
  transform: rotate(45deg); transition: transform 0.3s; }
.fq.open .fq-arr::after { transform: rotate(-135deg); }
05

Структура блоков (11 блоков)

Каждый блок чередует фоны: --bg--bg-alt--bg--bg-dark и т.д. Никогда два подряд одинаковых фона.

1
Hero — главный экранФон: --bg

Сетка: 2 колонки (текст + визуал), gap 60px. На мобиле — 1 колонка.

Левая часть: Лейбл-имя (uppercase, --cta) → H1 → italic-подзаголовок → 3 строки боли → акцентная плашка (hero-note) → CTA-кнопка → микротекст под кнопкой.

Правая часть: Фото эксперта (aspect-ratio 3/4, border-radius 20px) ИЛИ анимированный SVG-визуал.

Нет навигации и хедера — лендинг начинается сразу с hero.

2
Узнавание — боль аудиторииФон: --bg-alt

Структура: Лейбл → H2 → золотой разделитель → 4–5 абзацев текста от первого лица (описание состояния ЦА) → italic-цитата в карточке → CTA.

Ключевое: текст должен вызывать эффект «это про меня». Говорим словами аудитории, не экспертными терминами.

3
Безопасность — снятие страховФон: --bg

Структура: Лейбл → H2 → сетка 2×2 с карточками-обещаниями (иконка + текст) → italic-абзац с главным посылом → CTA.

4 карточки: что эксперт НЕ будет делать. Закрываем страхи из ЦА: «не буду торопить», «не буду ломать», «не скажу как жить», «не приму решение за тебя».

4
Диагностика — процессФон: --bg-alt

Структура: Лейбл → H2 → сетка из 3 шагов (карточки с номером, заголовком, описанием) → микротекст об отсутствии обязательств → CTA.

Шаги: Должны быть конкретными, снимать страх неизвестности. Цифры большие, прозрачные (opacity 0.15).

5
Суперсила — уникальность подходаФон: --bg-dark

Структура: Лейбл → H2 → вводный абзац → сетка 2×2 SP-items (список с золотой линией слева) → блок поддержки → CTA.

Задача: объяснить чем отличается от конкурентов. Конкретно и практично, без абстракций.

6
Кейсы — истории клиентовФон: --bg

Структура: Лейбл → H2 → сетка из 3 карточек (аватар-буква → имя+роль → «Было» → «Стало» → цитата).

Формат кейса: Конкретный человек (имя, возраст, профессия) + контраст до/после + одна короткая цитата в кавычках курсивом.

Аватар: если нет фото — инициал на фоне --bg-dark, шрифт Cormorant, цвет --cta.

7
Доверие — почему яФон: --bg-alt

Структура: Лейбл → H2 → вводный абзац → теги с методологиями → список с галочками → итоговая карточка-обещание.

Теги: border-radius 40px, без фона — только тень. Перечисляем методологии, образование, подходы.

8
Цены — форматыФон: --bg

Структура: Лейбл → H2 → сетка 2 карточки (одна тёмная --head, одна светлая) → микротекст → CTA.

Тёмная карточка = приоритетный тариф (индивидуальный). Цена крупно (Cormorant, 2.2rem). Пометка об ограниченных местах.

Не называть кнопку «Купить» — только «Записаться», «Начать с диагностики».

9
FAQ — частые вопросыФон: --bg-alt

Структура: Лейбл → H2 → список аккордеона (8–10 вопросов).

Вопросы: формулируем от первого лица («А вдруг мне...», «А если я...»). Ответы — спокойные, без давления.

Аккордеон: только один открыт одновременно. Стрелка поворачивается.

10
Квиз — сбор лидовФон: --bg-dark

Структура: Лейбл → H2 → подзаголовок → карточка квиза (прогресс-бар + вопросы + навигация) → микротекст.

Квиз: 4 вопроса с вариантами ответов + 5-й шаг сбора контактов (имя, телефон, чекбокс ПД). Автопереключение после выбора + кнопки Назад/Далее.

Данные летят: в Telegram-бот через fetch API (без сервера).

11
Финальный CTAФон: --bg

Структура: Крупная цитата Cormorant (2rem) по центру → подпись с шагами → CTA-кнопка → микротекст.

Текст: личный, обращение к конкретному состоянию («если ты сейчас в точке...»). Не рекламный, не агрессивный.

06

Анимации и поведение

Fade-in при скролле (основная анимация)

/* CSS */
.fi {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.65s ease-out, transform 0.65s ease-out;
}
.fi.on {
  opacity: 1;
  transform: none;
}

/* JS — IntersectionObserver */
var obs = new IntersectionObserver(function(entries) {
entries.forEach(function(el) {
if (el.isIntersecting) {
el.target.classList.add(‘on’);
obs.unobserve(el.target);
}
});
}, { threshold: 0.08 });

document.querySelectorAll(’.fi’).forEach(function(el) { obs.observe(el); });
Правило анимаций Только fade-in при появлении. Никакого parallax, hover-scale на карточках, loop-анимаций (кроме hero-визуала). Сайт должен ощущаться как тихое, спокойное место — не как шоу.

SVG-визуал в Hero (анимация дыхания)

/* Концентрические кольца с пульсацией */
@keyframes pulse1 {
  0%, 100% { r: var(--r0); opacity: 0.6; }
  50%       { r: var(--r1); opacity: 1; }
}

/* Применяется: */
.cv-r1 { animation: pulse1 4s ease-in-out infinite; }
.cv-r2 { animation: pulse1 4s ease-in-out infinite 0.8s; }
.cv-r3 { animation: pulse1 4s ease-in-out infinite 1.6s; }
/* Каждое кольцо смещено на 0.8s → эффект волны */

Таблица всех переходов

ЭлементTransition
Кнопка (цвет)background 0.2s ease
Кнопка (тень)box-shadow 0.2s ease
Кнопка (клик)transform: scale(0.98)
FAQ стрелкаtransform 0.3s ease
FAQ контентmax-height 0.4s ease
Вариант квизаborder-color 0.2s, background 0.2s
Прогресс-бар квизаwidth 0.4s ease
Fade-in секцийopacity 0.65s, transform 0.65s
SVG кольцаanimation 4s ease-in-out infinite
Инпут (фокус)border-color 0.2s ease
Ссылки topbarcolor 0.2s ease
07

Мобильная адаптация

Брейкпоинты

БрейкпоинтИзменения
≤ 760pxОсновной мобильный брейкпоинт. Все сетки → 1 колонка. Padding секций 60px. Sticky-кнопка внизу.
≤ 480pxH1: 1.9rem, H2: 1.5rem

Ключевые мобильные правила

@media(max-width: 760px) {
  section { padding: 60px 20px; }

/* Грид → 1 колонка */
.steps, .cases, .sp-grid, .safety-grid, .prices {
grid-template-columns: 1fr;
}

/* Все CTA-кнопки — на всю ширину */
section .btn {
display: flex;
width: 100%;
justify-content: center;
box-sizing: border-box;
}

/* Отступ под sticky-кнопку */
body { padding-bottom: 86px; }

/* Показать sticky */
.sticky { display: block; }
}
Sticky-кнопка Всегда показывать на мобиле. Высота кнопки 58px минимум — для удобного нажатия большим пальцем. Снизу 18px отступ (safe area iOS).

Hero на мобиле

/* SVG-визуал идёт ВЫШЕ текста на мобиле */
/* Реализуется через order или порядок в HTML */
.clarity-visual { max-width: 260px; margin: 0 auto; }
.hero-inner { gap: 36px; padding: 60px 20px 72px; }
08

Квиз и Telegram-бот

Структура квиза

ШагСодержание
Шаг 1–4Вопросы с 4 вариантами ответов. Автопереход (340ms) + кнопки Назад/Далее.
Шаг 5Сбор контактов: Имя, Телефон, Чекбокс ПД.
DoneЭкран успеха + кнопка «Написать в Telegram».

Логика навигации

// Кнопка "Далее" появляется только после выбора ответа
// Кнопка "Назад" — со 2-го вопроса
// При возврате — сохранённый ответ подсвечен
// Нельзя пойти вперёд без ответа (показывается подсказка)

document.querySelectorAll(’.qb’).forEach(function(btn) {
btn.addEventListener(‘click’, function() {
qa[‘q’ + q] = this.dataset.v;  // сохраняем ответ
document.getElementById(‘qbtn-next’).style.display = ‘block’;
setTimeout(function() { qStep++; qGo(qStep); }, 340); // автопереход
});
});

Отправка в Telegram-бот

// Не нужен сервер — прямой вызов Telegram Bot API
var BOT = 'ВАШ_ТОКЕН';   // от @BotFather
var CID = 'ВАШ_CHAT_ID'; // от @userinfobot

fetch(‘https://api.telegram.org/bot’ + BOT + ‘/sendMessage’, {
method: ‘POST’,
headers: { ‘Content-Type’: ‘application/json’ },
body: JSON.stringify({
chat_id: CID,
text: msg,
parse_mode: ‘Markdown’
})
});

Как получить токен и Chat ID

Что нужноКак получить
Токен ботаНаписать @BotFather → /newbot → получить токен
Chat IDНаписать @userinfobot → он ответит вашим ID

Формат сообщения в бот

???? *Новая заявка с сайта*

???? *Имя:* Мария Иванова
???? *Телефон:* +79001234567

???? *Ответы:*
1️⃣ Качели: то тепло, то холод
2️⃣ Страх ошибиться и потерять отношения
3️⃣ Очень срочно — я на пределе
4️⃣ Да, если увижу смысл и результат
10

Чеклист запуска

Контент

  • Написаны тексты для всех 11 блоков
  • Подготовлено фото эксперта (вертикальное, 3:4, светлый фон или нейтральный)
  • Написаны 3 кейса в формате «Было → Стало → Цитата»
  • Написано 8–10 FAQ вопросов от первого лица ЦА
  • Определены цены и форматы работы

Технически

  • Создан Telegram-бот через @BotFather
  • Получен Chat ID через @userinfobot
  • Токен и Chat ID вставлены в код квиза
  • Проверена отправка тестовой заявки
  • Все три файла в одной папке: index.html + oferta.html + consent.html

Юридика

  • В оферте заполнены: ФИО, ИНН, статус, email, город
  • В футере заполнены все реквизиты
  • В согласии на ПД актуальный email для отзыва
  • Ссылки на оферту и согласие работают
  • Cookie-баннер показывается при первом открытии

Перед запуском рекламы

  • Сайт открыт на мобиле — всё отображается корректно
  • Квиз пройден полностью — заявка пришла в бот
  • Кнопки на всю ширину на мобиле
  • Sticky-кнопка внизу видна и работает
  • Скорость загрузки < 3 секунд (проверить: PageSpeed Insights)
  • Добавлен счётчик Яндекс.Метрики
  • Настроены цели: клик по CTA-кнопкам + отправка квиза
Made on
Tilda