01 / 19 · Титул дизайн-система
Каталог сборки проекта

Rent Service
Дизайн-система

От токенов до экранов — что разработчик подключает как зависимость, а что собирает вручную. Каталог дизайн-компонентов, из которых собираются три продукта.

Цветовых шкал
6
Компонентов
31
Экранов
15+10+12
Поверхностей
3
Микрокопи
43
02 / 19 · ОхватЧто собираем

Три продукта на одной системе токенов
специфика постамата определяет половину компонентов.

Мобильное приложение
Flutter · Android + MAX

15 экранов: вход → карта → карточка → шаги оплаты → подтверждение присутствия (BLE) → ремень → фото возврата.

Material 3 · Material Symbols · светлая+тёмная

Веб-админка
React + shadcn/ui

10 экранов: дашборд, фотоочередь (SLA ≤ 3 мин), карточка стеллажа, операционные инструменты для склада.

Radix · Tailwind · desktop-first · горячие клавиши

Лендинг
Next.js · SSG

12 секций: hero, 5 шагов (включая ремень + фото), объяснение залога и его возврата, юридический блок, FAQ, подвал.

Next 15 · shadcn · lucide · только RU · 300ms FCP

Факты постамата → ограничения дизайна
Полки
16–24 открытых, без дверц
Фиксация
Ремень с пряжкой, не замок
Интерфейс на месте
Нет тачскрина · только QR
BLE
Только подтверждение присутствия, открывать нечего
Возврат
Фото 4 ракурса = единственное доказательство
Сеть
Возврат в любой стеллаж, TTL 45 мин

Эти шесть фактов напрямую порождают ShelfMapView, ShelfStrapInstruction, GuidedPhotoOverlay, CrossReturnBanner, BleSignalIndicator и экраны M-04 / M-12. Без них система не работает физически.

03 / 19 · КартаАтомарный дизайн

Карта системы: от токенов до пользовательских сценариев.

Токены
6 цветовых шкал 8 типографических уровней 17 отступов 5 радиусов 5 длительностей Material Symbols
Базовые элементы
Button Input Badge Icon Checkbox Radio Switch Tag
Составные
DepositChip PriceBreakdown ShelfMapView ShelfStrapInstruction CrossReturnBanner GuidedPhotoOverlay BleSignalIndicator CsbpQrSheet AboutService GranularConsents SupportFab
Шаблоны экранов
Вход Карта Шаг мастера Камера Схема полок Успех Таблица данных Очередь
Экраны
15 мобильных 10 админки 12 лендинга = 37 шаблонов
Сценарии
Онбординг Бронирование Выдача (BLE + ремень) Возврат в любой стеллаж Поддержка 10 путей пользователя

Каждый уровень компонуется только из слоёв выше. Разработчик подключает токены и базовые элементы как библиотеку, составные компоненты и экраны собирает вручную.

04 / 19 · ТокеныЦвет

6 цветовых шкал · ступени 1 / 3 / 9 / 11 / 12.

slateneutral
1
3
9
11
12

Фон · разделители · текст. Основа всех трёх тем.

irisbrand primary
1
3
9
11
12

Главные кнопки · активные состояния · акцент.

return deposit refund
1
3
9
11
12

Залог: списан и возвращён. Смысловая шкала — всегда рядом глиф ↻ возврата. freeze-* — deprecated

jadesuccess
1
3
9
11
12

Возврат успешно · полка свободна · фото OK · платёж подтверждён.

amberwarning
1
3
9
11
12

Лимит превышен · TTL скоро · фото нужно переснять.

rederror · destructive
1
3
9
11
12

Фото отклонено · возврат отменён · ремень не закреплён.

Смысловые роли: --bg: slate-1/warm · --fg: slate-12 · --brand: iris-9 · --deposit-return: return-9 · --success: jade-9 · --warn: amber-9 · --error: red-9. Return — единственная смысловая шкала, привязанная к бизнес-концепту (списание и возврат залога).

05 / 19 · ТокеныТипографика · Отступы · Радиусы

Inter + Onest + JetBrains Mono.

Типографическая шкала · 8 уровней
display/heroПрозрачно
h1 / Onest 700Возьмите инструмент
h2 / Onest 600Подтвердите полку
body-lg / Inter 400Залог 3 000 ₽ вернём после возврата с фото.
body / Inter 400Отстегните ремень и заберите оборудование.
small / Inter 500ОГРН 1234567890123 · ИП Иванов И. И.
caption / Inter 600Рядом · BLE · полка 7
mono / JetBrainsRSV-2026-04-8741 · 1 750 ₽
Отступы · сетка 8-pt (17 токенов)
8
12
16
24
32
48
64
96

База 4 · шаг 8 · внутренние поля 16 / 24 · секции 48 / 64 / 96. Кратность контролируется линтером.

Радиусы · 5 токенов
4
8
12
16
pill

Поля ввода 10 · карточки 14 · модалки 16 · чипы 999px. Никаких произвольных «6px на глаз».

06 / 19 · ТокеныАнимация · Иконки · UX-моции

Анимация — 5 токенов длительности + 7 продуктовых UX-анимаций.

Шкала длительностей
instant / 80ms
fast / 120ms
base / 180ms
smooth / 240ms
deliberate / 400ms

Кривая: cubic-bezier(0.2, 0, 0, 1) — одна кривая для всех состояний.
Reduced motion: всё > 80ms → 0ms. Заложено на уровне токена.

Применение: отклик на касание = instant · шторка = base · морфинг таймлайна = deliberate.

Material Symbols — каталог (ядро ~40 штук)
📍map_pin
🔍search
📷camera
🔗link
📡bluetooth
🎫qr_code
return
🛒cart
check
close
warning
info
timer
👤account
💬support
settings

Вес 400 · размер 20/24/28px. Кастом: ↻ возврат залога (SVG 24×24) — единственный не-Material глиф, всегда цветом return.

7 продуктовых UX-анимаций · с CSS-демо
return-cycle
Возврат залога. ↻ вращается → ✓. Триггер: M-11 успех. deliberate / 400ms · M3 emphasized. Reduced: статичный ✓.
ble-presence
BLE-присутствие. 3 расходящихся круга → ✓. Триггер: BLE < −55 dBm. smooth / 240ms · standard. Reduced: только точка.
shelf-glow
Подсветка целевой полки. Glow + scale 1.0→1.05. Триггер: ShelfMapView выделил полку. smooth / 240ms · loop. Reduced: только цвет.
strap-tighten
Защёлкивание ремня. Язычок въезжает в пряжку. Триггер: статус «затянут». deliberate / 400ms · emphasized. Reduced: статичный закреплённый.
photo-flash
Захват ракурса. Ghost-контур → flash → ✓. Триггер: shutter в GuidedPhotoOverlay. fast / 120ms flash. Reduced: подмена ✓ без вспышки.
push-deposit-back
+3 000 ₽ ↻
Push о возврате залога. Сумма всплывает зелёным. Триггер: refund.completed. smooth / 240ms · ease-out. Reduced: тихая статичная подсказка.
cross-return-badge
↻ Любой из 12 стеллажей
Cross-return badge. Скольжение справа + lift shadow. Триггер: появление CrossReturnBanner. smooth / 240ms. Reduced: появляется без сдвига.
шкала длительностей
instant 80
fast 120
smooth 240
delib 400
Все 7 анимаций используют только эти токены. prefers-reduced-motion отключает движение, оставляет статус.
07 / 19 · Базовые элементыУправление

Базовые элементы: Кнопка · Поле ввода · Бейдж · Иконка.

Кнопка · 5 вариантов × 3 размера × 4 состояния
Главная Второстепенная Прозрачная Опасная Неактивная

Размер: sm 32 · md 40 · lg 48. Состояние: покой / наведение / нажатие / неактивна. Кнопка с суммой — отдельный вариант с моноширинными цифрами.

Оплатить 1 750 ₽
Поле ввода · 4 типа × состояния
Email или телефон
+7 (903) 555-12-34
Неверный формат
••••

Типы: текст · телефон · PIN · поиск. Плавающие подписи. Ошибка встроена, подсказка снизу. Минимум 44pt (mobile).

Бейдж · 7 вариантов
Новое залог Свободно TTL 12 мин Ремень не закреплён Отключено
Иконка · Material Symbols

Вес 400, grade 0. По умолчанию 20px, акцент 24px, герой 28px. Цвет наследуется через currentColor.

Реализация: Flutter — 4 Widget-класса (RsButton, RsInput, RsBadge, RsIcon) · React — 4 shadcn-обёртки с тем же API. Одна библиотека Figma генерирует оба.

08 / 19 · Базовые элементыКонтейнеры

Контейнеры: как раскладываем содержимое.

BentoCard
radius 14 · p 20

Базовый блок содержимого. Радиус 14, внутренний отступ 20. Варианты: обычный / iris / freeze / jade.

PostomatCard
ул. Лесная, 12
600 м · 3 свободно

Карточка стеллажа на карте: адрес, расстояние, N свободных полок.

EquipmentCard
Перфоратор Makita
250 ₽/ч · залог 3 000 ↻

Карточка оборудования: цена, залог (DepositChip), состояние.

BottomSheet

3 состояния прилипания: peek 25% · half 50% · full 90%. Ручка для перетаскивания обязательна.

Диалог

Модальное окно для критических действий: подтвердить отмену аренды, отклонить возврат. Только «да/нет» + пояснение.

Toast

Неблокирующее уведомление: «Полка зафиксирована», «Фото сохранено». Показ 3 с, закрываемо.

SupportFab

Плавающая кнопка — чат с поддержкой. Постоянно в нижнем правом углу на экранах M-04 / M-12 (высокая тревожность).

Боковая панель (админка)

Левая панель 240px · свёрнутая 64px. 8 разделов: дашборд / очередь / стеллажи / аренды / пользователи / операции / отчёты / настройки.

09 / 19 · Составные финансовые

Финансовые компоненты — ядро доверия к сервису.
Главное изменение: не «холд», а явное списание залога с понятным возвратом ↻.

PriceBreakdown
Аренда · 2 ч × 250 ₽500 ₽
Сервисный сбор0 ₽
Залог (вернём)3 000 ₽
К оплате3 500 ₽

Разделение «аренда» и «залог». Залог всегда с ↻, всегда цветом return. Возврат на карту 1–3 дня после возврата с фото.

DepositChip · анатомия
3 000 ₽ · вернём за 1–3 дня
↻ SVG-глиф (return-11)
+ фон return-3 (мягкий зелёный)
+ текст return-11
+ JetBrains Mono · tabular-nums
+ опц. срок «1–3 дня»

5 точек применения → следующий слайд.

Главная кнопка с суммой
Оплатить 500 ₽ + Залог 3 000 ₽ 3 500 ₽

Полная сумма к списанию всегда на кнопке (tabular nums). Залог отделён словом, чтобы пользователь видел: это не плата за услугу. Критерий S02 / S09.

DepositChip × 3 контекста
мобильное · M-07

На экране оплаты рядом с суммой:

Залог 3 000 ₽ (вернём)
админка · карточка аренды

В карточке аренды:

Залог: списано · ожидает возврата
лендинг · секция 5

Таймлайн возврата залога:

Залог 3 000 ₽ возвращён
10 / 19 · СоставныеСпецифика постамата · новое

4 компонента, которых нет ни в одной другой системе —
прямое следствие физики постамата.

ShelfMapView · схема стеллажа 1×8
1
2
3
7
5
6
8
целевая свободна занята ремень не закреплён недоступна

Раскладки: 1×N (стандартная) · 2×N (широкая). 5 состояний полки. Переиспользование: M-04 / M-12 / M-11 / W-04.

ShelfStrapInstruction · наложение
Отстегните ремень

Потяните язычок из пряжки — нет щелчка, просто ослабьте петлю.

Закрепите до щелчка

Заведите язычок в пряжку, проденьте крючок в отверстие. Датчик пряжки → статус «ремень затянут».

Два режима: выдача (язычок выезжает) / возврат (защёлкивается). SVG-анимация на CSS, Lottie для тонких микро-движений. Критерий S11 / S12.

CrossReturnBanner
Верните в любой из 12 стеллажей сети TTL 45:00
Осталось 4 стеллажа в радиусе 3 км TTL 12:47

Бейдж + таймер TTL. Показывает N открытых стеллажей, убывает при приближении дедлайна. Появляется на M-08 / M-12.

GuidedPhotoOverlay · 4 ракурса
1/4
Общий вид
2/4
Серийный номер
3/4 · сейчас
Кейс
4/4
Ремень закреплён

Фото — единственное юридическое доказательство возврата. Без замков, без датчиков нагрузки. Критерий S13.

Без этих четырёх компонентов система не работает физически. Они закрепляют то, что в продукте нельзя заменить экраном «откройте дверцу».

11 / 19 · СоставныеСквозные

Сквозные UX-компоненты — для всех трёх поверхностей.

BleSignalIndicator
BLE · −48 dBm · 2 м

Только подтверждение присутствия, никаких разблокировок — открывать нечего. 3 уровня сигнала: далеко > близко > рядом. Критерий S14.

CsbpQrSheet
СБП · 3 500 ₽

QR для СБП. Опрос статуса каждые 2 с. При успехе — автозакрытие + toast.

DepositCycleViz
↻ списали залог
возврат + фото
✓ вернули на карту

Визуализация таймлайна для секции 5 лендинга «как возвращается залог». 3 шага, 1–3 дня после возврата.

AboutService (юридический блок)

ИП Иванов И.И.
ОГРН 1234567890123
ИНН 771234567890
+7 (800) 555-35-35

Обязательный блок 152-ФЗ / 54-ФЗ. Подвал лендинга, раздел «О сервисе» в мобильном.

GranularConsents
  • Обработка ПД (152-ФЗ) · обязательно
  • Оферта аренды · обязательно
  • Маркетинг · опц.
  • Геолокация · опц.

4 раздельных чекбокса. Никаких объединённых согласий. Критерий T-03.

SupportFab
💬

Плавающий чат на M-04 / M-12 / M-07 — экранах с высоким риском оттока.

Ответ ≤ 3 минут в рабочие часы.

12 / 19 · СборкаМобильное · 15 экранов

Мобильное — из чего собрано.

Код Экран Составные + базовые Ключевой общий
M-01Вход · телефонInput(телефон) · PrimaryCTA · GranularConsents · AboutServiceСогласия
M-02Карта стеллажейMapView · PostomatCard · BottomSheet(peek) · ПоискPostomatCard
M-03Карточка стеллажаBottomSheet(half) · EquipmentCard×N · PriceBreakdown · PrimaryCTAPriceBreakdown
M-07Оплата · СБПBottomSheet · PriceBreakdown · DepositChip · RadioGroup · PrimaryCTA(с залогом) · SupportFabDepositChip
M-04Выдача · подойти к стеллажуBleSignalIndicator · ShelfMapView · ShelfStrapInstruction(выдача) · PrimaryCTA(Подтвердить) · SupportFabShelfMap · Ремень
M-05Активная арендаТаймер · PriceBreakdown · DepositChip · ExtendCTA · CancelDialogDepositChip
M-08Выбор стеллажа возвратаMapView · PostomatCard(фильтр=свободные) · CrossReturnBannerCrossReturn
M-12Возврат · закрепить + фотоCrossReturnBanner · ShelfMapView · ShelfStrapInstruction(возврат) · GuidedPhotoOverlay(4) · PrimaryCTAShelfMap · Ремень · Фото
M-11Успех возвратаSuccessIcon · DepositCycleViz(возврат залога) · mini-таймлайн · ReviewCTADepositCycle
M-13История арендСписок · RentalCard · DepositChip · FilterChipsDepositChip
M-14Профиль / персональные данныеВкладки · Input · GranularConsents · DocumentsList · AboutServiceСогласия · О сервисе
M-15ПоддержкаSupportChat · FAQList · CallButton

ShelfMapView переиспользуется в 4 экранах (M-04 / M-11 / M-12 + превью на M-03) · DepositChip — в 6 экранах. Экономия на переиспользовании — главная причина, почему составные компоненты стоит выделять.

13 / 19 · СборкаВеб-админка · 10 экранов

Админка — из чего собрано.
В админке нет «открыть удалённо» — открывать нечего.

Код Экран Составные + базовые Действия
W-01Вход · 2FASidebar(свёрнут) · Input · TotpInput · PrimaryCTA
W-02ДашбордSidebar · KPICards · Chart · Table(недавние)детализация
W-03Фотоочередь (SLA ≤ 3 мин)Sidebar · DataTable · ImageViewer(4 фото) · SLATimer · горячие клавиши · StatusBadgeпринять · отклонить · эскалировать
W-04Карточка стеллажаSidebar · ShelfMapView(вариант для админки) · LiveFeed · RentalListотключить полку · включить полку · открыть удалённо
W-05Список арендSidebar · DataTable · FilterBar · StatusBadge · DepositChipпросмотр · отмена
W-06Карточка арендыSidebar · Timeline · PriceBreakdown · DepositChip · PhotoSet · SupportThreadвозврат · связь
W-07Список пользователейSidebar · DataTable · RiskBadge · SearchBarбан · верификация
W-08Каталог оборудованияSidebar · DataTable · PriceInput · AvailabilityToggleредактировать · отключить
W-09ОтчётыSidebar · DateRange · Chart · ExportCSVэкспорт
W-10Настройки · SLA / чек-листыSidebar · Form · Toggle · Inputсохранить
ShelfMapView · вариант для админки

Тот же компонент, что в мобильном — но с дополнительными действиями на полку: отключить (ремень неисправен / уборка / обслуживание), включить. Нет действия «открыть» — физически нет замка.

Фотоочередь · операционное ядро

Самый важный экран админки. SLA ≤ 3 минут на приём/отклонение. Клавиатура: A/R/E. Эскалация → ML-разметка + менеджер.

14 / 19 · СборкаЛендинг · 12 секций

Лендинг — из чего собрано.

Секция Составные + базовые Примечание
L-01HeroЗаголовок · пара кнопок · реальное фото (стеллаж · открытые полки · ремни)images.unsplash.com/photo-1530124566582-a618bc2615dc · TrustStrip(СБП · 54-ФЗ · РКН)НЕ «12 000 аренд»
L-02Ценностные тезисыFeatureGrid(3) · Icon · HeadlineS · body90 сек · близко · честно
L-03Каталог оборудованияCategoryTabs · EquipmentCard×N · DepositChip(залог)DepositChip
L-04Как работает (5 шагов)5 шагов: найти → оплатить СБП (аренда + залог) → QR стеллажа → ремень → фотоактуальный сценарий
L-05Как возвращается залогDepositCycleViz · таймлайн из 3 шагов (списали → возврат с фото → вернули) · ссылка на FAQядро доверия
L-06Карта стеллажейMapEmbed · PostomatList · часы работыCrossReturnBanner
L-07Безопасность / фотоPhotoGrid(демо 4 ракурса) · пояснение · SLABadgeпочему фото
L-08ОтзывыReviewCard×N · Rating · VerifiedBadge
L-09Для юрлиц (B2B)FeatureGrid · ContactFormкорпоративное
L-10FAQАккордеон · поиск · TopicTabs9 страхов → 9 ответов
L-11Финальный призывЗаголовок · строка загрузки (App Store · RuStore) · QR для десктопа
L-12Подвал · юридическийAboutService · ссылки · соцсети · уведомление о cookiesОГРН / ИНН обязательно
Стеллаж с инструментами
L-01 hero · стеллаж
Инструменты на полке
L-03 каталог · оборудование
Жилой район — карта стеллажей
L-06 карта · район

Hero и каталог — реальные фото с Unsplash (хот-линк, оптимизация q=70). Никаких стоковых «мобильного банкинга».

15 / 19 · Сквозные метафора

Возврат залога ↻ — не идея, а каталог из 5 точек применения.

1 · Мобильное · M-07
Оплата — объясняет: это залог, вернётся.
2 · Мобильное · M-05
Активная аренда — статус «залог удерживается».
3 · Админка
Карточка аренды — операционный статус залога.
4 · Лендинг · L-05
DepositCycleViz — 3 шага списали → возврат → вернули.
5 · Push / email
«Залог 3 000 ₽ возвращён · ↻ ✓»
Анатомия DepositChip
Залог 3 000 ₽ · вернём за 1–3 дня
  • SVG-глиф ↻ кастомный 24×24, наследует currentColor
  • Фон return-3 (мягкий зелёный, #D1FAE5)
  • Текст return-11 (#047857) — высокий контраст
  • JetBrains Mono · tabular-nums
  • Опциональный срок «1–3 дня» — встроенный small
Антипаттерны
  • ↻ на кнопке «Оплатить» — это про деньги в целом, не про залог
  • ↻ у TTL-таймера или таймера аренды
  • ↻ как декор героя или заставки
  • ↻ в ошибках — путает «возврат» и «отказ»
  • Старая снежинка ❄ — выводится как deprecated, метафора «холд» заменяется на «залог»

Применение только к залогу и его возврату. Никогда к: аренде, оплате, TTL, таймерам. Семантическая чистота.

16 / 19 · СквозныеМикрокопи · 43 фразы

Библиотека микрокопи — фраза → где.

Кнопки (12) · Push (8) · Статус (6)
кнопкаОплатить 500 ₽ + Залог 3 000 ₽M-07 главная · аренда + залог отдельно
кнопкаПодтвердить полкуM-04 после подтверждения присутствия по BLE
кнопкаЗавершить возвратM-12 после 4 фото
pushЗалог 3 000 ₽ возвращён · банк зачислит за 1–3 дняпосле возврата с фото
pushОсталось 15 мин до дедлайна возвратаM-05 live
статусПлатёж подтверждёнtoast на M-07
статусЗалог: списано · ожидает возвратаподробности DepositChip · история
Ремень и полки (7) · новое
ременьОтстегните ременьM-04 выдача
ременьЗакрепите до щелчкаM-12 возврат
полкаПолка 7 — снимите оборудованиеM-04 после указания полки
полкаВыберите любую свободную полкуM-12 возврат в любой стеллаж
возвратВ любой из 12 стеллажей сетиCrossReturnBanner
bleПодойдите ближе к стеллажуBLE > −55 dBm
фотоСфотографируйте закреплённый ременьGuidedPhoto 4/4
Пустые состояния и ошибки (5)
пустоПока ни одной аренды. Найдите инструмент на карте →M-13 пустой
ошибкаНе получилось оплатить. Попробуйте ещё раз или напишите в поддержкусбой СБП
ошибкаФото нужно переснять — не видно серийного номераотклонение в админке
Подсказки-онбординг (5)
подсказкаЭто залог. Списываем явно, вернём на карту 1–3 дня после возврата оборудования с фотопервый раз на M-07
подсказка4 фото — ваша защита при спорах о возвратепервый раз на M-12
подсказкаМожно вернуть в любой стеллаж сетипервый раз на M-08

Итого: 12 кнопок + 8 push + 6 статусов + 5 пустых/ошибок + 5 подсказок + 7 ремень/полки = 43 утверждённые фразы. Тон: честность > дружелюбие > краткость.

17 / 19 · ШаблоныРаскладки

Шаблоны раскладок — скелеты, которые можно заполнить.

mobile · bottom-nav
mobile · map-screen
mobile · wizard-step
mobile · camera (ghost)
mobile · shelf-map
admin · sidebar-shell
admin · data-table
admin · queue-page
landing · hero
landing · timeline

10 готовых раскладок · 5 мобильных · 3 админки · 3 лендинга. Заполняются данными через слоты. Использование: 37 экранов собираются из этих 10 шаблонов + составные компоненты.

18 / 19 · ШаблоныСостояния

4 универсальных состояния — одинаковые на всех поверхностях.

Пусто

Иконка slate-11 · заголовок · короткое пояснение · одна кнопка «найти / добавить».

Пример: M-13 «Пока ни одной аренды»

Загрузка

Скелетон для списков · спиннер для действий < 2 с · прогресс для > 2 с. Никогда пустого экрана.

Пример: опрос СБП (спиннер freeze-9)

!
Ошибка

Иконка red-9 · что пошло не так (человеческим языком) · что сделать (повтор / поддержка) · никакого стек-трейса.

Пример: «Не получилось оплатить»

Успех

Иконка jade-9 · что произошло · что будет дальше · опциональный таймлайн (DepositCycleViz).

Пример: M-11 «Возврат принят · залог вернётся за 1–3 дня»

Каждое состояние привязано к фиксированным компонентам и микрокопи
СостояниеИконкаОсновной текстДействиеГде
пустоглиф slate-11, 40pxh2 + 1 строка поясненияпрозрачная кнопкаM-13, M-15, W-02 (нет данных)
загрузкаспиннер freeze-9короткая подпись (опц.)все асинхронные действия
ошибкаred-9 ⚠человеческая причинаповтор · поддержкаСБП, BLE, сеть, ML
успехjade-9 ✓что произошлоследующий шагM-11, W-03 приём, подтверждения
19 / 19 · Поставка готово к разработке

Что разработчик получает — каталог.

6
цветовых шкал
HEX + смысловые имена
8
уровней типографики
display → caption
17
токенов отступов
4 → 96 · сетка 8-pt
5
длительностей анимации
80 / 120 / 180 / 240 / 400
5
токенов радиуса
4 / 8 / 12 / 16 / pill
31
компонентов
виджеты Flutter + React
в т.ч. 3 специфичных для постамата
43
фраз микрокопи
утверждены, проверен тон
37
шаблонов экранов
15 мобильных + 10 админки + 12 лендинга
10
диаграмм пользовательских сценариев
вкл. возврат в любой стеллаж
62
критериев приёмки
вкл. S11–S15: ремни · полки · BLE-присутствие · ML-фото

Дизайн-система согласована с фактической механикой проекта.

Открытые полки, ремни, подтверждение присутствия по BLE, фото как доказательство — вшиты в каждый компонент. Не надо додумывать при реализации.

docs/design-kit.md · docs/research/design/01–21 · docs/research/design/AUDIT-vs-project-presentation.md