Design System  /  Components  /  Navigation

Navigation

Восемь паттернов, по которым пользователь перемещается между поверхностями. Маркетинг ведёт за руку. ЛК ставит карту перед глазами. Analyst прячет навигацию, чтобы освободить экран. Один словарь — три голоса.

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

Top bar — маркетинг

aist.tech. Hairline-бордер снизу, никаких теней. Логотип слева, навигация по центру, CTA справа. Inverse-кнопка «Начать» — ровно один акцент на всю шапку.

— default state · наведи на «Продукты» или «Подход»

Когда выпадающее меню

Раздел = одна страницаПросто ссылка. Без меню. «Кейсы», «Блог», «Команда».
2–4 подпунктаПростой dropdown — одна колонка. Иконка + заголовок + описание.
5+ подпунктов или несколько группMega-menu — 2–3 колонки, с футером и «Все … →».
TriggerHover на desktop, click на tablet/mobile. Шеврон вращается на 180°.
СкрытиеНа mouseleave с hover-bridge сверху — чтобы курсор успевал доехать до панели.
КлавиатураTab → открывает (focus-within), Esc закрывает, ↓ идёт по пунктам.

Высота, отступы, поведение

PropertyValue
Height64 px
Padding x32 px (--space-xl)
Bottom border1 px #E0E0E0
Sticky behaviorНе sticky. На маркетинге — скролл свободный.
LogoCommissioner 800/17, точка — primary
Nav linksCommissioner 500/15, opacity 0.85, gap 28
Active linkНа маркетинге не показываем — страницы плоские.

Top bar — продукт (app.aist.tech)

ЛК и Analyst используют один и тот же Top bar. Уже ниже маркетингового, плотнее. Поиск Cmd+K в центре — основной инструмент. Уведомления + аватар справа.

— ЛК topbar, sticky
3
ИП

Поиск Cmd+K — что ищем

Один палитра-поиск на продукт. Ищет по нескольким сущностям — продукты, команда, документы, недавние действия.

КонтекстЧто индексируем
ЛКПродукты, команда, биллинг, настройки, страницы документации.
AnalystЧаты, отчёты, источники, дашборды — через product switcher.
МаркетингНе показываем. Поиск там — через Google.

240 px при default, 56 px при collapsed. Org-switcher сверху, навигация группами, settings/help в футере. Active-state — тонкая полоска primary слева + secondary-фон.

— клик для переключения

Org switcher (multi-tenant)

Сверху sidebar. Клик открывает меню со списком организаций и «Создать новую». Стандарт для multi-tenant SaaS — занимает место только там, где нужно навигация.

Active state — как показываем

СпособКогда
Полоска primary слева + secondary фонDefault sidebar item.
Только полоскаCollapsed sidebar (нет места для фона).
Иконка primaryДополнительный сигнал, идёт вместе с полоской.

Главное окно Analyst — не список разделов в сайдбаре, а диалог с аналитиком. Слева 1/3 — чат: история, ввод, ссылки на данные. Справа 2/3 — то, что этот диалог производит: графики, таблицы, отчёт. Юзер спрашивает слева — и видит результат справа.

Те же шрифты, что и везде (Commissioner + Spectral). Светлый фон. Mono — только для цифр в таблицах и технических идентификаторов. Никакого «терминал-вайба» — это product UI, а не CLI.

— MI Analyst · chat ⅓ + workspace ⅔
Чаты/ Воронка отказов Q1
TODO · widgets
Контент правой части — отдельные виджеты (chart, table, sql, kpi-stat, report-export). Прорабатываем отдельно; ниже — временная заглушка-каркас, чтобы показать пропорции.

Отказы по неделям, Q1 2026

Источник: cc_calls_2026q1 · разбивка по продукту, ISO-недели

Всего звонков
48 291
+12% к Q4
Конверсия
23.8%
+1.4 п.п.
Worst week
W7
−6.2 п.п.
W1W3W5W7W9W11W13
ПродуктЗвонкиКонверсияΔ
Voice Operator18 42128.1%+2.1
MI Analyst9 87022.4%+0.8
Doc Reader12 00519.7%−1.3
Custom LLM7 99525.6%+3.4

Почему именно так

Чат слева, не справаЧтение слева направо — сначала вопрос, потом ответ. Курсор и ввод — на ведущей стороне.
Пропорция 1:2Чат — инструмент, результат — главное. Графику и таблице нужна ширина, чату — нет.
Те же шрифты, что вездеCommissioner + Spectral. Mono только для цифр и идентификаторов источников.
Светлый, не тёмныйТёмный был экспериментом MVP. Analyst — такой же продукт, как ЛК; различие в структуре, не в цвете.
Список разделов — в Top barЧаты, отчёты, источники — через product switcher и Cmd+K. Сайдбар — это сам диалог.

Только в ЛК на страницах глубиной ≥ 3 уровня. Маркетинг — плоский, не нужно. Analyst использует свой путь через query path.

— ЛК / продукты / voice-operator / настройки / интеграции

Truncation для длинных путей

— очень глубокий путь, 6+ уровней

Правила breadcrumbs

Когда показыватьВ ЛК на уровне ≥ 3. На уровне 1–2 sidebar даёт достаточно контекста.
Где разместитьСразу под topbar, до заголовка страницы.
Текущая страницаНе ссылка. Жирный, foreground.
TruncationЕсли путь длиннее 5 элементов — заменить серединку на «…», оставить root и последние 2.
Разделитель«/» в muted 0.5 opacity. Не «›», не «→».

Tabs

Внутри страницы. Когда нужно показать несколько views одного объекта — продукт → обзор / метрики / настройки. Underline-стиль, без background-pills.

— Voice Operator / tabs
Контент активного таба — здесь.

Когда tabs, когда sidebar

Если…Используй
2–6 view-ов одной сущностиTabs
7+ разделов или вложенная навигацияSidebar (или sub-sidebar)
Контекст — разные страницыSidebar / breadcrumbs
Контекст — разные срезы данныхTabs

Pagination

Под таблицей / списком, если элементов больше 50. Слева — meta («1–50 из 1248»), справа — номера страниц.

— таблица с ~1248 строками

Когда нужна, когда нет

≤ 50 элементовНе нужна. Просто список.
50–500Pagination или infinite scroll — по вкусу. Pagination точнее, infinite — проще.
500+Только pagination. Infinite scroll плохо работает на больших объёмах.
AnalystAlways pagination. Аналитики хотят знать сколько строк.

In-page TOC

Только на длинных текстовых страницах — документация, design system, блог. Sticky справа, активный пункт подсвечивается primary при скролле.

— страница документации

Voice Operator — документация

Голосовой агент для колл-центра. В этом разделе — как запустить, настроить и интегрировать.

Начало работы

Зарегистрируйтесь, добавьте номер, привяжите CRM …

Настройка скриптов

Скрипты разговора живут в разделе …

Интеграции

Bitrix24, AmoCRM, кастомные REST …

Когда показывать

Длинная статья (4+ разделов, 1500+ слов)Да, sticky TOC справа.
Документация продуктаДа, обязательно.
Marketing landingНет. Скролл — сам по себе формат.
MobileСнизу или схлопнуть в «Содержание …» сверху.

Общие правила

DO

Active-state виден с первого взгляда: цвет + вес + индикатор.

DON'T

Active помечен только цветом, который еле отличим от default.

DO

Иконка + текст в sidebar. При collapsed — только иконка.

DON'T

Только иконки в default sidebar — требует от юзера запоминать значки.

DO

Один search-инпут на продукт, по Cmd+K. Работает с клавиатуры.

DON'T

Несколько search-инпутов на разных страницах с разной семантикой.

DO

Breadcrumbs только когда нужны (≥ 3 уровня в ЛК).

DON'T

Breadcrumbs на каждой странице «потому что паттерн».

DO

Tabs underline-стиль. Тонко, не давит на контент.

DON'T

Tabs как pill-кнопки с тенями. Это control, не CTA.

Принципы

Tokens reference

ElementPropertyValue
Topbar (mkt)height64 px
Topbar (app)height56 px / --topbar-height
Sidebar (app)width default / collapsed240 / 56 px
MI Analyst layoutchat / workspace1fr / 2fr
Nav itempadding / radius7 × 10 / 8 px
Nav itemactive indicator3 × 14 px primary rule
Tabpadding / underline14 × 16 / 2 px foreground
Pagination buttonmin-w / h32 × 32 px
Breadcrumbfont / sepCommissioner 13/0.5op
Search paletteshortcut⌘K (Cmd / Ctrl)
Связанные: Density ·  Layout ·  Badges (для счётчиков)
Назад: ← Badges ·  К хабу: Design System →