Files
orbit-academy-shadcn/AGENTS.md

60 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENTS.md
Orbit Academy — cohort-based education шаблон: сохраняй neo-brutalist cream/ink/acid стиль, weekly artifacts, critique board, менторов, расписание потоков, admissions flow и alumni community.
## Project Specifics
- Программы, модули, расписание, outcomes, student work, mentors, admissions и community лежат в `src/entities/site-content.ts`.
- `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`).