Files
Bridge-and-Join-s/DESIGN.md
T
zuevav da12a9ec1c feat(bj): модуль ЛК на PostgreSQL, обмен с DEPO, боевой ЛК с имитатором НРД, QUIK, НПР
- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk)
- трансферные таблицы FTV_M2M: создание при установке, события, справочник участников
- сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO
- боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК
- онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML)
- модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:41:12 +03:00

5.7 KiB

Design

Визуальная система интерфейсов bj. Продуктовую правду держит PRODUCT.md. Токены и оболочка живут в internal/lkgateway/web/templates/layout.html (админка bj-server) и cmd/bj-lk/templates.go (клиентский ЛК).

THESIS

Пульт управления перемещением ценных бумаг между депозитариями через НРД — приборная панель, а не маркетинговый дашборд. Состояние системы и заявок читается с одного взгляда. Отказ от generic-SaaS-грамматики: эмодзи-иконки, лого-градиентный блоб, градиентный текст, сетка одинаковых карточек как структура страницы — не используются.

OWN-WORLD

«Диспетчерская депозитария». Прохладные нейтрали на свету, терминальный near-black в тёмной теме (настоящее рабочее место оператора). Один уверенный акцент — индиго --accent (интерактив); MOEX-красный --brand зарезервирован строго под знак бренда и критические состояния. Знак — два узла, соединённые мостом (продукт буквально соединяет депозитарии), inline-SVG. Иконки — только тонкие line-иконки (stroke 1.8, inline-SVG), никаких эмодзи.

Color

Стратегия — Restrained (нейтрали + один акцент), корректно для Operate. Токены в :root (light) и [data-theme="dark"]. Обе темы обязательны и переопределяют весь семантический набор (--accent/--ok/--warn/--err и их -weak). Тема запоминается в localStorage; уважать prefers-color-scheme и prefers-reduced-motion. Контраст текста — WCAG AA (body ≥4.5:1); вторичный текст тонируется из нейтрали, не «серым наугад».

Typography

Системный sans для UI. Приборная подпись: все величины — моноширинными табличными цифрами (--mono, font-variant-numeric:tabular-nums): ID, счётчики, время, коды, суммы, значения статов (.num, .stat-value, .clock, code). Заголовки — плотный трекинг (до −0.03em на крупных), явная шкала веса.

Components

  • Оболочка: sticky-топбар (56px) = знак бренда (flex:none) + навигация (flex:1, внутренний горизонтальный скролл, скрытый скроллбар) + правый блок (flex:none): строка системного статуса .sys-status (пульс + «НРД на связи / Эмуляция»), моно-часы, SVG-переключатель темы. На ≤1200px статус сжимается до пульса, часы скрываются. Топбар не создаёт горизонтального скролла страницы.
  • Приборные плитки-статы .stat: цветной торец слева (3px, семантический — .accent/.ok/.warn/.err), моно-значение.
  • Плитки задач .tile: слот .ico под line-SVG (не эмодзи, не градиент), hover — подъём 2px + сдвиг стрелки.
  • Таблицы: плотные, числовые ячейки — .num (табличные цифры), ID — code.
  • Бейджи статусов .badge.<state>: семантические заливка+текст (AA).
  • Тост/алерты: цветной акцент только сверху (border-top), не слева (border-left/right >1px запрещён).

Motion

Один авторский easing --ease (экспоненциальный ease-out). Живой момент — пульс индикатора системного статуса; hover-плитки — подъём + сдвиг стрелки. Всё отключается при prefers-reduced-motion.

Refuse (из craft-floor + тезис)

Эмодзи-иконки; лого-градиентный квадрат; градиентный текст; border-left/right

1px как акцент карточек; моноширинный шрифт как «костюм технологичности» вместо данных/измерений; выбор темы по категории, а не по сцене использования.

Scope / статус

Поднят общий слой layout.html (токены, оболочка, статы, плитки, таблицы, бейджи, тост) — его наследуют все ~20 страниц админки — и флагман admin_home. Клиентский ЛК (cmd/bj-lk) уже несёт совместимую систему (токены, тёмная тема, доступность). Постранично ещё не подняты: admin_setup, admin_help_*, admin_wizard, admin_claim — они наследуют систему, но их частная композиция (плотные формы, help-простыни) ждёт отдельного прохода.