feat: split big file and update agents.md

This commit is contained in:
2026-06-18 23:15:19 +03:00
parent 2578e79cf5
commit b5e7cbd572
20 changed files with 536 additions and 465 deletions

View File

@@ -5,8 +5,55 @@ Orbit Academy — cohort-based education шаблон: сохраняй neo-brut
## Project Specifics
- Программы, модули, расписание, outcomes, student work, mentors, admissions и community лежат в `src/entities/site-content.ts`.
- `src/app` — только route wrappers; композиция страниц находится в `src/widgets/template-ui.tsx`.
- `src/app` — только route wrappers; композиция каждой страницы живёт в отдельном widget (`src/widgets/<page>-page.tsx`). См. File Map.
- Mock-интеракции поступления держи в `src/features/*/ui`; не добавляй реальные формы, auth, LMS или платежи без запроса.
- Не превращай страницы в обычный SaaS-лендинг или курс с лекциями: каждая страница должна показывать образовательный процесс, артефакт, поток, critique или результат.
- Громкий brutalist стиль должен поддерживать доверие: добавляй proof, менторов, работы студентов и конкретные deliverables, а не декоративный шум.
- Проверка после правок: `pnpm lint` и `pnpm build`.
## Design System
Источник токенов — `src/app/globals.css` (`@theme` + `:root`/`.dark`). Шрифт — Inter (`--font-orbit`), один гарнитур на sans и mono. Работай через семантические классы Tailwind (`bg-primary`, `text-foreground`, `border-foreground`), не хардкодь hex/oklch.
Личность: **neo-brutalist «cream / ink / acid»** — тёплый кремовый фон, near-black «ink» как граница и текст, кислотно-зелёный secondary как сигнальный акцент, глубокий indigo primary, оранжевый accent для редких всплесков.
| Роль | Light | Характер |
|---|---|---|
| `background` | тёплый кремовый | основной фон страниц |
| `foreground` | near-black ink | текст + **границы** (`border-2 border-foreground`) |
| `primary` | глубокий indigo | заголовочные плашки, активные строки |
| `secondary` | кислотный лайм | бейджи, сигнальные акценты, hover |
| `accent` | оранжевый | редкие точечные всплески |
| `card` | почти белый | карточки на кремовом фоне |
Узнаваемые приёмы (держи их, это и есть «лицо» проекта):
- **Жёсткие углы:** `--radius` = 0.125rem; большинство элементов — `rounded-none`.
- **Толстые границы:** `border-2 border-foreground` повсюду; это структура, а не декор.
- **Hard offset shadow:** `shadow-[8px_8px_0_var(--foreground)]` (карточки, hover усиливает до `12px`).
- **Громкая типографика:** `font-black uppercase`, очень плотный `leading` (`leading-none`/`leading-[0.9]`), крупные размеры (до `text-8xl`).
- **Утилитарные классы:** `.orbit-board` — сетка-миллиметровка для «board»-секций; `.marker-highlight` — маркерное подчёркивание лаймом.
Do / Don't:
- **Do:** расширяй существующий язык — сетки, плашки, board-эстетику; держи контент-first (артефакт, proof, метрика).
- **Don't:** мягкие тени, скруглённые карточки, пастель, generic-SaaS hero с градиентом — это ломает личность шаблона.
## File Map
| Route | Widget |
|---|---|
| `/` | `src/widgets/home-page.tsx` (`HomePage`) |
| `/programs` | `src/widgets/programs-page.tsx` (`ProgramsPage`) |
| `/programs/product-management` | `src/widgets/program-detail-page.tsx` (`ProgramDetailPage`) |
| `/schedule` | `src/widgets/schedule-page.tsx` (`SchedulePage`) |
| `/outcomes` | `src/widgets/outcomes-page.tsx` (`OutcomesPage`) |
| `/admissions` | `src/widgets/admissions-page.tsx` (`AdmissionsPage`) |
| `/community` | `src/widgets/community-page.tsx` (`CommunityPage`) |
Переиспользуемые блоки:
- `src/widgets/site-shell.tsx``SiteShell` (header + nav + footer, обёртка всех страниц).
- `src/widgets/program-card.tsx``ProgramCard` (Home, Programs).
- `src/widgets/student-work-card.tsx``StudentWorkCard` (Home, Outcomes).
- `src/shared/ui/loud-title.tsx``LoudTitle` (заголовочная секция внутренних страниц).
- `src/features/admission-board/ui/admission-board.tsx` — mock admissions board.
Одноразовые блоки колоцированы со своей страницей (напр. `HeroStudio`/`OutcomeStrip` в `home-page.tsx`, `MentorRoster` в `programs-page.tsx`).