> Статус: MVP
> Дата: 2025-01-24
Референс
Стилистика: Game Dev Tycoon, упрощённая изометрия. Ключевые характеристики:- Чистые линии, минимум деталей
- Плоские цвета без градиентов
- Читаемость важнее реализма
Изометрическая проекция
Принцип
Стандартная изометрия 2:1 — каждый пиксель по горизонтали соответствует 0.5 пикселя по вертикали.Базовый тайл
Ромб 64×32 px — основа для построения всех элементов.Структура офиса
Динамическая компоновка
Офис строится автоматически на основе данных из БД:- Агенты группируются по
parent_module(отделы) - Каждый отдел — визуальная зона с подписью
- Столы внутри отдела: сетка 4 в ряд с переносом
- Отделы располагаются вертикально
Слои (z-index)
| Слой | Содержимое | z-index |
|---|---|---|
| Floor | Цветовые зоны отделов | 0 |
| Labels | Подписи отделов | 5 |
| Furniture | Столы, стулья | 10 |
| Characters | Аватары (GIF) | 20 |
| Effects | Подсветка, иконки | 30 |
| UI | Модальные окна | 100 |
Элементы
Отдел (Department)
Визуальная группа:- Цветовая зона (фон)
- Подпись модуля (заголовок)
- Сетка столов агентов
Рабочее место
Состав:- Стол (поверхность + ножки) — SVG
- Стул — SVG
- Подпись агента — текст
- Аватар — GIF
Аватар сотрудника (GIF)
Универсальный аватар для всех агентов. Различимость через позицию стола + подпись. Файлы:| Файл | Состояние | Описание |
|---|---|---|
working.gif | ok + задача | Сидит, печатает |
idle.gif | ok + ожидание | Сидит, смотрит |
tired.gif | warning | Сидит устало |
error.gif | error | Лежит на столе |
- Размер: 64×64 px
- Цикл анимации: 1-2 секунды
- Формат: GIF (прозрачный фон)
- Количество кадров: 4-8
Индикаторы
Иконки над рабочим местом:- Размер: 16×16 px
- Позиция: над головой аватара
- Стиль: emoji или простые SVG-иконки
Цветовая палитра
Статусы (подсветка стола)
| Статус | Подсветка | HEX |
|---|---|---|
| ok | Зелёный | #4CAF50 |
| warning | Жёлтый | #FFC107 |
| error | Красный | #F44336 |
Цветовые зоны отделов
| Модуль | Цвет зоны | HEX |
|---|---|---|
| watcher | Светло-фиолетовый | #F3E5F5 |
| reputation | Светло-оранжевый | #FFF3E0 |
| content_factory | Светло-зелёный | #E8F5E9 |
| marketing | Светло-красный | #FFEBEE |
| scout | Светло-бирюзовый | #E0F7FA |
| knowledge | Светло-синий | #E3F2FD |
| cfo | Светло-коричневый | #EFEBE9 |
| lex | Светло-индиго | #E8EAF6 |
Общие элементы
| Элемент | Цвет | HEX |
|---|---|---|
| Стол | Дерево | #8D6E63 |
| Стул | Тёмно-серый | #616161 |
| Разделитель | Серый | #BDBDBD |
| Подпись отдела | Тёмно-серый | #424242 |
| Подпись агента | Серый | #757575 |
Алгоритм компоновки
Состояния аватаров
Маппинг статус → GIF
| status | current_task | GIF-файл |
|---|---|---|
| ok | есть | working.gif |
| ok | пусто/null | idle.gif |
| warning | любой | tired.gif |
| error | любой | error.gif |
Анимации подсветки (CSS)
| Статус | Анимация стола |
|---|---|
| ok | Статичная подсветка |
| warning | Мягкий pulse (2s) |
| error | Интенсивный pulse (1s) |
Принцип реализации
SVG + GIF структура
CSS
JavaScript: динамическое построение
Адаптивность
| Viewport | Поведение |
|---|---|
| Desktop (>1024px) | Полный размер |
| Tablet (768-1024px) | Scale 0.8, вертикальный скролл |
| Mobile (<768px) | Не поддерживается в MVP |
Файловая структура
Ограничения MVP
- Порядок отделов по алфавиту (без кастомизации)
- Фиксированная сетка 4 стола в ряд
- Без drag-and-drop
- Только вертикальный скролл при большом количестве агентов
- Только desktop