Skip to content

ТЗ: перевод шаблонов страниц на строгий деловой стиль ​

Заказчик: рынок-фирм.рф · Объект: https://xn----ptbekbgmf8a6d.xn--p1ai/Редакция: 1.0 от 13.10.2026 · Основание: «необходимо оформить сайт в строгом деловом официальном стиле»

1. Задача ​

Перевести все шаблоны страниц действующего сайта на строгий деловой официальный стиль.

В объёме работ — только три вещи:

  1. Шрифты — семейства, начертания, кегли, трекинг, начертание цифр.
  2. Цвета — палитра, фоны, границы, состояния, статусные цвета.
  3. Формы компонентов — радиусы, рамки, тени, заливки, обводки фокуса.

Вне объёма — всё остальное. Пользовательские сценарии, логика, порядок и расположение компонентов сохраняются без изменений.

2. Что такое «строгий деловой официальный» в терминах этого ТЗ ​

ПризнакЧто делаем
ОфициальностьОдна сдержанная гарнитура для интерфейса, документная антиква для читальных страниц
СтрогостьПрямые углы и микрорадиусы вместо текущих 14–16 px
ДеловитостьТонкая линия вместо тени, отсутствие градиентов и «парящих» карточек
СпокойствиеОдин фирменный акцент, нейтральный холодный фон, никаких декоративных цветов
ДокументностьТабличные цифры во всех числах, выравненные суммы, ИНН, номера заявок

3. Исходное состояние ​

Данные сняты с боевого бандла assets/styles-j_AatC_s.css.

3.1. Текущие цветовые токены ​

ТокенЗначениеПриближённый HEX
--backgroundoklch(100% 0 0)#FFFFFF
--foregroundoklch(22% .02 155)#131D17
--cardoklch(100% 0 0)#FFFFFF
--primaryoklch(62% .16 148)#2B9F4A
--primary-foregroundoklch(99% 0 0)#FCFCFC
--primary-softoklch(96% .03 148)#E5F8E7
--secondaryoklch(97.5% .003 155)#F5F7F6
--mutedoklch(97% .003 155)#F4F6F4
--muted-foregroundoklch(42% .015 155)#475049
--accentoklch(96% .03 148)#E5F8E7
--accent-foregroundoklch(35% .08 148)#174521
--destructiveoklch(60% .22 27)#E62C2C
--borderoklch(93% .005 155)#E5E9E6
--inputoklch(95% .005 155)#ECEFED
--ringoklch(62% .16 148)#2B9F4A
--radius.875rem14 px

Тёмной темы нет: в бандле присутствует только утилита .dark\:…, корневой тёмной палитры не существует.

3.2. Текущие шрифты ​

Подключено 5 семейств Google Fonts, ~19 начертаний:

ПеременнаяСемейство
--font-sansManrope, Inter
--font-displayManrope, Inter
--font-editorialInstrument Serif
--font-accentFraunces (курсив)
--font-monoсистемный

3.3. Текущие формы ​

Замеры по HTML главной страницы:

ПризнакКоличество вхождений на главной
rounded-full40
rounded-xl36
rounded-lg13
rounded-2xl10
rounded-md4
shadow-sm3
Градиенты (linear-gradient)есть, в т.ч. на кнопках и бейджах

3.4. Проблемы, которые устраняет ТЗ ​

  1. Основной цвет не совпадает с логотипом. Знак — #0D7A5F (сине-зелёный), акцент интерфейса — #2B9F4A (травяной). Два разных зелёных в одной шапке.
  2. Радиус 14 px и rounded-full в 40 местах дают мягкий «стартапный» вид вместо официального.
  3. Три декоративных семейства (Instrument Serif, Fraunces, Manrope) не несут функции.
  4. Кнопка и статус «успех» — один и тот же зелёный, поэтому успех неотличим от действия.
  5. --input: #ECEFED даёт контраст 1,1:1 к белому — граница поля ввода практически не видна (WCAG 1.4.11 требует ≥ 3:1).

4. Целевые токены ​

4.1. Цвет ​

Палитра не утверждена

Ниже предложение, вариант 02 «Нотариальный». Всего собрано пять направлений оформления главной страницы. Значения разделов 4.1 и 4.3 фиксируются после выбора направления.

Гамма сохранена фирменная зелёная: новый --primary выведен из цвета логотипа #0D7A5F, а не заменён на чужой синий. Меняется насыщенность и глубина: вместо травяного #2B9F4A берётся глубокий бутылочный #0B5A43.

ТокенНовое значениеНазначение
--background#F4F6F5Фон страницы (нейтральная бумага, не чистый белый)
--foreground#101614Основной текст
--card#FFFFFFПоверхности: карточки, панели, поля
--primary#0B5A43Действие, ссылка, активное состояние
--primary-hover#084534Наведение
--primary-active#063327Нажатие
--primary-foreground#FFFFFFТекст на заливке
--primary-soft#E7EFEBПлашка выбранного пункта, мягкий бейдж
--secondary#ECF0EEВторостепенная кнопка, подложка
--secondary-foreground#1B241FТекст на ней
--muted#F0F3F1Скелетон, заголовок таблицы
--muted-foreground#5A6B63Второстепенный текст, подписи
--border#DCE3DFРазделители (декоративные)
--input#7E8C86Граница полей ввода
--ring#0B5A43Обводка фокуса
--destructive#B3261EОшибка, удаление
--destructive-soft#FBEAE8Плашка ошибки
--success#1A6E47Статус «завершено»
--success-soft#E6F1EBПлашка успеха
--warning#8A5A0B«Ожидает решения», «к выплате»
--warning-soft#F8EFDFПлашка предупреждения
--info#1F5A78Справочные пометки
--info-soft#E6EFF4Плашка информации

Проверенные коэффициенты контраста (WCAG 2.1):

ПараКонтрастНормаИтог
Текст на фоне страницы16,87:14,5OK
Текст на карточке18,31:14,5OK
Второстепенный текст на карточке5,65:14,5OK
Второстепенный текст на подложке5,06:14,5OK
Белый текст на primary-кнопке8,21:14,5OK
Ссылка primary на белом8,21:14,5OK
Primary-текст на soft-плашке7,02:14,5OK
Ошибка на soft-плашке5,61:14,5OK
Успех на soft-плашке5,39:14,5OK
Предупреждение на soft-плашке5,19:14,5OK
Инфо на soft-плашке6,45:14,5OK
Граница поля ввода к белому3,51:13,0OK
Обводка фокуса к белому8,21:13,0OK

Правила использования цвета

  • Заливка --primary — только у одного главного действия на экран. Всё остальное — --secondary с рамкой --border.
  • Градиенты запрещены полностью, включая градиентные заливки кнопок и текст с градиентом.
  • Статусные цвета применяются только в бейджах и плашках статусов, никогда — как заливка кнопки действия.
  • Фон страницы --background, фон всех поверхностей --card. Цветные фоны секций не вводятся.

4.2. Типографика ​

Два семейства вместо пяти.

ПеременнаяЗначение
--font-sans"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif
--font-display"Source Serif 4", "PT Serif", Georgia, "Times New Roman", serif
--font-monoui-monospace, SFMono-Regular, Menlo, Consolas, monospace

Кириллица проверена у всех кандидатов. Lato из типовой «юридической» пары использовать нельзя — в нём нет кириллицы.

Где что применяется

ПоверхностьГарнитура
H1 публичных страниц, H2 и H3 статей и новостей, юридические страницы, суммы в первом экране--font-display
Весь остальной интерфейс: навигация, кнопки, формы, карточки, таблицы, бейджи, кабинет, админка--font-sans
Номера заявок, ИНН, ОГРН, реф-коды, идентификаторы--font-mono

В кабинете партнёра и админке антиква не используется вообще — это рабочие поверхности, там только Inter.

Загружаемые начертания

СемействоНачертания
Inter400, 500, 600
Source Serif 4400, 600 (+ курсив 400 для статей)

Итого 6 начертаний против текущих ~19.

Шкала

РольКегльИнтерлиньяжНасыщенность
H1 первого экранаclamp(38px, 4.2vw, 56px)1.08600
H1 страницы38px1.15600
H228px1.22600
H321px1.30600
Подзаголовок17px1.40600
Основной текст16px1.60400
Мелкий текст14px1.50400
Подпись, метка13px1.35500
Служебная12px1.35500
Юридический текст15px1.70400

Правила

  • Трекинг: заголовки -0.01em, служебные метки +0.02em.
  • font-variant-numeric: tabular-nums обязательно для всех чисел: суммы, проценты, даты, ИНН, номера заявок, метрики дашборда.
  • КАПС: не использовать в заголовках. Допускается только в надзаголовках-метках над H2 одного экрана, не более одного на секцию, 12 px, --muted-foreground, +0.06em.
  • Курсив — только внутри текста статей и новостей. В интерфейсе курсива нет.
  • Многоточия, кавычки и тире — типографские: «ёлочки», длинное тире, неразрывный пробел перед единицами измерения.

4.3. Формы, тени, радиусы ​

ТокенБылоСтало
--radius-sm—0
--radius14px2px
--radius-lg—3px
--shadow-noneshadow-smнет тени, рамка 1px --border
--shadow-overlay—0 8px 24px rgb(16 22 20 / 0.10) — только для модалок, дропдаунов, тостов

Правила

  • Радиус 2px — у кнопок, полей, карточек, бейджей, таблиц, модалок, тостов, пагинации.
  • Заливные круги (rounded-full) запрещены, кроме аватаров пользователей. Текущие 40 вхождений на главной сводятся к нулю.
  • Тень разрешена только у всплывающих слоёв поверх затемнения. У карточек, кнопок, шапки, выпадающего меню тени нет — только рамка.
  • Границы: 1px, цвет --border. Толстые и цветные рамки не вводятся, кроме левой полосы 2px --primary у активного пункта сайдбара.
  • Обводка фокуса: outline: 2px solid var(--ring); outline-offset: 2px. Свечения и box-shadow-кольца не используются.
  • Градиентные заливки и стеклянные подложки (backdrop-blur) убираются.

5. Компоненты ​

Для каждого компонента меняются только радиус, цвет, рамка, тень, обводка и шрифт. Высота, паддинги, ширина и позиция сохраняются.

КомпонентБылоСтало
Кнопка основная#2B9F4A, радиус 14px или круг, градиент--primary, радиус 2px, без градиента
Кнопка второстепеннаязаливка --secondaryбелая, рамка 1px --input, текст --foreground
Кнопка-ссылкацвет --primaryбез изменений, подчёркивание при наведении
Поле вводарамка #ECEFED, радиус 14pxрамка 1px --input, фокус 2px --primary, радиус 2px
Поле с ошибкой—рамка --destructive, текст ошибки 13px --destructive под полем
Чекбокс / радиоскруглениечекбокс — 2px, радио — круг (не меняется), галочка --primary
Карточкаrounded-2xl, shadow-smрадиус 2px, рамка 1px --border, тени нет
Наведение карточкитень усиливаетсятень не появляется, меняется цвет рамки на --primary 40%
Бейдж, чип, статусrounded-full, яркая заливкарадиус 2px, *-soft фон, затемнённый текст
Счётчик непрочитанныхкруградиус 2px, фон --warning, белый текст
Заголовок таблицы--foreground12px, 500, --muted-foreground, нижняя рамка
Строка таблицыразделители1px --border, без зебры, наведение --secondary 60%
Шапка сайтатень или блюрбелый фон, нижняя рамка 1px --border
Активный пункт менюзаливка-«таблетка»--primary-soft, текст --primary, радиус 2px
Сайдбар кабинета—белый фон, рамка справа 1px, активный пункт + левая полоса 2px --primary
Модалка, дроверrounded-2xlрадиус 2px, рамка 1px, тень --shadow-overlay
Тостскруглённыйрадиус 2px, левая полоса 3px по типу
Аккордеон (FAQ)скруглённые блокиразделители 1px --border, радиус 0, иконка плюс/минус
Пагинациякруглые кнопкирадиус 2px
Хлебные крошки—13px, --muted-foreground, разделитель «/»
Скелетон—фон --muted, радиус 2px, анимация pulse, отключается при prefers-reduced-motion
Cookie-баннерплавающий скруглённыйнижняя полоса во всю ширину, рамка сверху
Загрузка файласкруглённая зонапунктирная рамка 1px, радиус 2px
Графики админкипалитра Recharts по умолчанию--primary, --muted-foreground, --info, --warning, --destructive, без градиентов
Иконки (Lucide)—цвет наследуется через currentColor, толщина штриха единая 1.75
Аватаркругостаётся круглым, рамка 1px --border

Состояния, обязательные для каждого интерактивного элемента

СостояниеОформление
Наведениесмена фона на --primary-hover или рамки, 150 мс
Нажатие--primary-active
Фокус с клавиатурыoutline: 2px solid var(--ring); outline-offset: 2px — видим всегда
Отключеноopacity: .45, cursor: not-allowed
Загрузкаспиннер на месте подписи, ширина кнопки не меняется
Ошибкарамка --destructive + текст ошибки
Пустотекст --muted-foreground, без иллюстраций

6. Шаблоны ​

Все 15 шаблонов. Меняются только шрифт, цвет и форма входящих компонентов — состав, порядок и расположение блоков сохраняются.

№ШаблонМаршрутыЧто меняется
T1Главная/H1 с 78px на 56px, кнопки первого экрана, карточки витрины и новостей, аккордеон FAQ, форма партнёра
T2Витринасекция на /, /gotovye-firmyКарточки компаний: рамка вместо тени, фильтры и сортировка, пагинация
T3Гео-лендинг/kupit-biznes/$city (11), /prodat-ooo/$city (8), /prodazha/$industry (9)H1, сетка городов и отраслей, хлебные крошки, форма заявки
T4Услуга/prodat-ooo, /prodat-kompaniyu, /kupit-ooo, /kupit-ooo-s-nds, /prodat-ooo-s-* (8)H1, блоки преимуществ, таблицы условий, форма расчёта
T5Статьи/articles, /articles/$slug (11)Антиква для заголовков и текста, оглавление, блок перелинковки
T6Новости/news, /news/$slug (23)Антиква, карточки в списке, дата, пагинация
T7Заявки покупателей/kuplyu-firmu, /kuplyu-firmu/$number (40)Карточки заявок, бейджи региона и режима, карточка заявки
T8Юридические/privacy, /consent, /cookies, /termsАнтиква 15/1.7, нумерованные разделы, якоря
T9О компании, филиалы/about, /filialyРеквизиты моноширинным, сетка филиалов, кнопки регионов
T10Заявка принята/spasiboИконка, кнопки возврата
T11Вход/auth, /auth?mode=signup, ?region=Форма, поля, чекбокс согласия, переключатель вход/регистрация
T12Реферальная/p/$codeКарточка партнёра, кнопка
T13Ошибки404, «Объявление не найдено», «Партнёр не найден»Антиква в заголовке, кнопка возврата
T14Кабинет партнёра/partner + 7 разделовСайдбар без антиквы, метрики, таблицы, бейджи статусов, графики
T15Админка/admin + 12 разделовТо же плюс счётчик алертов, плотные таблицы, модалки, панель уведомлений

6.1. Пояснения по группам ​

T1–T4, T9, T12 — убеждающие поверхности. Заголовки антиквой, фон страницы --background, секции белыми карточками с рамкой. Главное действие экрана — единственная заливная кнопка --primary; вторичные действия — контурные.

T5, T6, T8 — читальные поверхности. Максимальная длина строки 72 знака, антиква 15/1.7 для юридических текстов и 16/1.6 для статей, ссылки в тексте --primary с подчёркиванием. Цитаты и врезки — левая полоса 2px --border, без заливки.

T7 — смешанная поверхность. Список заявок и карточка заявки оформляются как деловые бланки: моноширинные номера, табличные цифры, бейджи регионов и налоговых режимов в soft-цветах.

T11 — единственная форма с антиквой в заголовке. Поля ввода по правилам раздела 5, чекбокс согласия 2px, ссылки на /privacy и /consent подчёркнуты.

T14, T15 — рабочие поверхности. Антиква не используется. Таблицы — разделители вместо зебры, заголовки столбцов 12px --muted-foreground. Метрики дашборда — табличные цифры. Статусы: успех, предупреждение, ошибка, инфо — только в бейджах.

T13 — страницы ошибок. Заголовок антиквой, пояснение обычным текстом, одна контурная кнопка возврата.

7. Доступность ​

ТребованиеЗначение
Контраст текста≥ 4,5:1, для крупного ≥ 3:1
Контраст границ элементов управления≥ 3:1
Обводка фокусавидима на всех интерактивных элементах, не удаляется через outline: none
Размер цели нажатия≥ 44×44 px (существующие размеры сохраняются)
prefers-reduced-motionотключает pulse скелетонов, вращение спиннеров и переходы
Информация цветомдублируется текстом или иконкой
Тёмная темане вводится: сейчас её нет, в объём работ не входит

8. Что запрещено ​

Нарушением ТЗ считается любое из перечисленного:

  1. Изменение порядка, вложенности, состава и расположения блоков и секций.
  2. Изменение сетки, брейкпоинтов и количества колонок.
  3. Изменение текстов, названий пунктов меню, подписей кнопок, состава полей формы.
  4. Изменение маршрутов, редиректов, правил доступа и ролей.
  5. Изменение серверной логики, валидации, запросов и серверных функций.
  6. Добавление, удаление или замена блоков и страниц.
  7. Изменение высоты, паддингов и ширины компонентов. Допустимое отклонение — не более 2 px, если иначе не встаёт новая гарнитура.
  8. Изменение отступов между секциями и внутреннего вертикального ритма страницы.
  9. Замена фотографий и иллюстраций. Перекраска SVG-иконок через currentColor разрешена.
  10. Введение градиентов, теней у плоских элементов, стеклянных подложек и декоративных цветов.

9. Приёмка ​

Работа принимается, если выполнено всё перечисленное.

10. Порядок внедрения ​

  1. Токены. Заменить переменные в :root и подключение Google Fonts. Проверить, что ни одна страница не разъехалась.
  2. Примитивы. Кнопки, поля, чекбоксы, бейджи, карточки, таблицы, модалки, тосты.
  3. Навигация. Шапка, мобильное меню, подвал, сайдбары кабинета и админки.
  4. Публичные шаблоны. T1–T13.
  5. Рабочие шаблоны. T14, T15.
  6. Сверка и приёмка. По чек-листу раздела 9.

Шаги 2–5 выполняются на уже применяемых токенах: если на этапе 1 палитра и шрифт зафиксированы, дальше меняются только формы компонентов.