From f05dac5acd94b4e67f59e34ac93d182bfd8fd763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=A8=D0=BA=D0=B0=D0=B1?= =?UTF-8?q?=D0=B0=D1=82=D1=83=D1=80?= Date: Wed, 11 Feb 2026 12:28:14 +0300 Subject: [PATCH] docs: update PLAN.md progress and LESSONS.md with learnings - Mark all Phase 1-3 tasks as complete - Update Phase 4 status (dark mode, responsive done) - Add progress table with all commit hashes - Document technical lessons: Vite ESM, Tailwind 4, React Router 7 Co-authored-by: Cursor --- LESSONS.md | 12 ++++++++++++ PLAN.md | 34 ++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/LESSONS.md b/LESSONS.md index 39858ab..08feb3a 100644 --- a/LESSONS.md +++ b/LESSONS.md @@ -14,3 +14,15 @@ ### Решения по архитектуре - Данные хранятся как TS-модули (не JSON) — это даёт типизацию на уровне данных. - localStorage для пользовательских настроек (тема, закладки) — достаточно для статического приложения. +- `as const` объекты вместо enum — лучше tree-shaking и удобнее в использовании с типами. + +### Проблемы и решения +- **Vite create cancelled**: `npm create vite@latest .` отказывается работать в непустой директории. Решение: ручная инициализация проекта. +- **`__dirname` в ESM**: В `vite.config.ts` нельзя использовать `__dirname` (CommonJS). Решение: `fileURLToPath(new URL("./src", import.meta.url))`. +- **Tailwind CSS 4**: Использует `@import "tailwindcss"` вместо `@tailwind` директив. Кастомные цвета через `@theme {}`. +- **React Router 7**: `NavLink` с `end` пропом для exact matching. Без `end` на `/` он будет активен на всех роутах. + +### UX решения +- Тема: 3 режима (light/dark/system) — system слушает `prefers-color-scheme` и реагирует на изменения. +- Мобильное меню закрывается при навигации — `onClick={() => setMobileOpen(false)}`. +- `ScrollToTop` компонент обязателен для SPA — без него при навигации страница остаётся на том же скролле. diff --git a/PLAN.md b/PLAN.md index f04ef9b..1d6a234 100644 --- a/PLAN.md +++ b/PLAN.md @@ -31,27 +31,27 @@ src/ ### Phase 1 — Фундамент - [x] Инициализация проекта (Vite + React + TS + Tailwind) -- [ ] Базовая структура приложения и роутинг -- [ ] Layout: header, footer, навигация -- [ ] Главная страница с обзором +- [x] Базовая структура приложения и роутинг +- [x] Layout: header, footer, навигация +- [x] Главная страница с обзором ### Phase 2 — Контент -- [ ] Модель данных для методик -- [ ] Данные: минимум 15 методик по категориям -- [ ] Страница списка методик с фильтрами -- [ ] Страница детальной информации о методике +- [x] Модель данных для методик +- [x] Данные: 16 методик по 5 категориям +- [x] Страница списка методик с фильтрами +- [x] Страница детальной информации о методике ### Phase 3 — Интерактивность -- [ ] Поиск по методикам (instant search) -- [ ] Фильтрация по категориям, сложности, эффективности -- [ ] BMI-калькулятор -- [ ] Закладки (favorites) через localStorage -- [ ] Сравнение методик (до 3 шт) +- [x] Поиск по методикам (instant search) +- [x] Фильтрация по категориям, сложности, эффективности +- [x] BMI-калькулятор +- [x] Закладки (favorites) через localStorage +- [x] Сравнение методик (до 3 шт) ### Phase 4 — Полировка -- [ ] Тёмная / светлая тема -- [ ] Адаптивный дизайн (mobile-first) -- [ ] Анимации переходов +- [x] Тёмная / светлая тема (light/dark/system) +- [x] Адаптивный дизайн (mobile-first) + мобильное меню +- [x] ScrollToTop при навигации - [ ] SEO мета-теги - [ ] Деплой на GitHub Pages / Vercel @@ -59,7 +59,9 @@ src/ | Дата | Что сделано | Коммит | |------|-------------|--------| -| 2026-02-11 | Создан план, cursor rules, инициализация проекта | — | +| 2026-02-11 | Создан план, cursor rules, инициализация проекта | 673760f | +| 2026-02-11 | Каталог методик, детальные страницы, BMI калькулятор | b8dd591 | +| 2026-02-11 | Тёмная тема, мобильное меню, сравнение, ScrollToTop | 15133ec | ## Принципы разработки