---
name: project_dashboard_rebuild
description: План пересборки главной dashboard.html по скриншоту (hero-карточки + синхрон питомца); редизайн был утерян
metadata: 
  node_type: memory
  type: project
  originSessionId: 4eebe34f-0200-4613-bc0c-e884c7496721
---

Боевой редизайн `frontend/dashboard.html` (питомец Квантик, «Начать чтение», «Лаборатория дня», колонки Задания/Тесты/Активность) был **некоммичен** и перезаписан коммитом flashcards `1dcc4cb`. В git/stash/dangling/VSCode Local History его НЕТ — восстановить нельзя, пересобираем по скриншоту пользователя (2026-05-31).

**Базис — живой `frontend/dashboard.html`** (НЕ мокап `dashboard-redesign.html` — там чужой Linear-дизайн, филин «Архивариус», игнорировать). Дизайн-система: `/css/ls.css`, шрифты Unbounded+Manrope, тёмная тема, палитра #9B5DE5/#06D6E0/#F9C74F.

**Правки от пользователя:**
- Убрать блок «Теория — в процессе» (`loadTheoryWidget` / `w-theory-progress`).
- Рейтинг уже перенесён в профиль — на дашборде не показывать (lb-section).
- Питомец на дашборде синхронизирован с модулем через `window.PetSprite.render(level, mood, accessories, color, streak)` + GET `/api/pet`.

**Что уже есть в живом файле (loaders готовы):** loadAssignments (~2015), loadContinueWidget (3108, `/api/courses/continue`), loadActivityWidget (3174), loadFlashcardWidget (3937, `/api/flashcards/random`, СОХРАНИТЬ виджет #w-flashcard / «Повтори карточку»), loadGamification (1721), loadSubjects (1980, → блок «Тесты»). Markup: hero-зона = `.action-zone` (1380), 3 колонки = `.main-grid` (1465): #w-assignments / #w-tests / #w-progress-col.

**Hero-карточки со скрина (3 шт, заменяют .action-cards):**
1. «Начать чтение» Химия 9 класс, прогресс % → `/api/courses/continue` (есть loadContinueWidget).
2. «Лаборатория дня» Газовые законы → SVG из `window.LabPreviews` (frontend/js/lab-previews.js: keys opticsbench/circuit/pendulum/waves/isoprocess/stereo).
3. «Питомец» Квантик, уровень/стрик/настроение → `/api/pet` + PetSprite.

**Ассеты уцелели (untracked, НЕ трогать):** `frontend/js/pet-sprite.js` (window.PetSprite), `frontend/js/lab-previews.js` (window.LabPreviews). Их надо подключить `<script src>` в dashboard.html.

**Pet API** (`/api/pet`, petController.js): возвращает petName('Квантик'), petLevel, mood (ecstatic/happy/neutral/sad/hungry/sleeping), accessories[], petColor, streakCurrent, level. PetSprite.moodLabel(mood) → рус. ярлык.

**Порядок (фазами, коммит после каждой):** Ф1 — hero-карточки (чтение+лаба+питомец) + подключить 2 скрипта; Ф2 — синхрон питомца с live-данными; Ф3 — почистить Теорию/Рейтинг. См. [[project_concurrent_sessions_branch]] (fetch перед работой, add поимённо), [[feedback_verify_edits_applied]].
