Files
lineform-architecture-shadcn/AGENTS.md

60 lines
5.7 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
Lineform Studio — архитектурный шаблон с жесткой Swiss/brutalist эстетикой: сохраняй черно-белую сетку, крупную индексную типографику, реальные архитектурные кейсы и форму брифа как главный conversion path.
## Project Specifics
- Доменный контент лежит в `src/entities/site-content.ts`; не размазывай списки проектов и услуг по компонентам.
- `src/app` содержит только route wrappers; композиция каждой страницы живёт в отдельном widget (`src/widgets/<page>-page.tsx`). См. File Map.
- Feature-формы и узкие mock-интеракции размещай в `src/features/*/ui`.
- Не добавляй CMS, реальные заявки, карты, платежи или backend API без отдельного запроса.
- Проверка после правок: `pnpm lint` и `pnpm build`.
## Design System
Источник токенов — `src/app/globals.css` (`@theme` + `:root`/`.dark`). Шрифт — Roboto Flex (`--font-lineform`), один гарнитур на sans и mono, с включёнными `ss01`/`cv01`. Работай через семантические классы Tailwind (`bg-background`, `text-foreground`, `border-foreground`), не хардкодь hex/oklch.
Личность: **Swiss/brutalist «бумага и тушь»** — почти белый бумажный фон, near-black «ink» как граница и текст, и единственный тёплый янтарный accent как редкий сигнал. Цвета намеренно нейтральные (нулевая хрома у фона/текста/secondary) — драматизм создаёт не палитра, а сетка, масштаб типографики и толстые границы.
| Роль | Light | Характер |
|---|---|---|
| `background` | почти белый (oklch 0.985) | бумажный фон страниц |
| `foreground` | near-black ink (oklch 0.13) | текст + **границы** (`border-2 border-foreground`) |
| `primary` | near-black ink | заливка кнопок/инверсия |
| `secondary` | светло-серый | нейтральные плашки |
| `muted` / `muted-foreground` | серый | вторичный текст, фон фото |
| `accent` | тёплый янтарь (oklch 0.78 0.16 75) | единственный цветной сигнал (бейдж города) |
| `card` | чистый белый | поверхности на бумажном фоне |
Узнаваемые приёмы (держи их, это и есть «лицо» проекта):
- **Жёсткие углы:** `--radius` = 0.125rem; всё `rounded-none` (кнопки, бейджи, карточки).
- **Толстые границы и divider-ы:** `border-2 border-foreground`, `divide-y-2 divide-foreground`, `border-y-2` — структура страницы строится границами, а не тенями.
- **Никаких теней:** объём даёт инверсия `hover:bg-foreground hover:text-background`, а не drop-shadow.
- **Чертёжная типографика:** `font-black uppercase`, очень плотный `leading` (`leading-none`/`leading-[0.78]`/`leading-[0.88]`), гигантские viewport-размеры (`text-[18vw]`/`md:text-[10vw]`, до `text-9xl`), индексы вида `Index / 01`.
- **Утилитарные классы:** `.lineform-grid` — миллиметровая сетка-подложка для hero/секций; `.arch-photo``grayscale(1) contrast(1.08)` на всех фото (ч/б архив).
- **Широкий каркас:** контейнер `max-w-[1500px]`, многоколоночные `md:grid-cols-[...]` раскладки с фиксированными колонками-индексами.
Do / Don't:
- **Do:** держи ч/б палитру, толстые границы, индексную нумерацию, grayscale-фото и крупную uppercase-типографику; accent — только точечно.
- **Don't:** мягкие тени, скруглённые углы, цветные градиенты, цветные фото, generic-SaaS hero — это ломает «чертёжную» личность шаблона.
## File Map
| Route | Widget |
|---|---|
| `/` | `src/widgets/home-page.tsx` (`HomePage`) |
| `/work` | `src/widgets/work-page.tsx` (`WorkPage`) |
| `/work/courtyard-house` | `src/widgets/project-detail-page.tsx` (`ProjectDetailPage`) |
| `/services` | `src/widgets/services-page.tsx` (`ServicesPage`) |
| `/process` | `src/widgets/process-page.tsx` (`ProcessPage`) |
| `/studio` | `src/widgets/studio-page.tsx` (`StudioPage`) |
| `/contact` | `src/widgets/contact-page.tsx` (`ContactPage`) |
Переиспользуемые блоки:
- `src/widgets/site-shell.tsx``SiteShell` (sticky header + nav, обёртка всех страниц).
- `src/widgets/project-image.tsx``ProjectImage` (grayscale-фото проекта с индексом; Home + Project Detail).
- `src/shared/ui/page-title.tsx``PageTitle` (заголовочная секция `code / title / text` внутренних страниц: Work, Services, Process, Studio, Contact).
- `src/features/project-brief/ui/project-brief-form.tsx` — mock-форма брифа.
Одноразовые блоки колоцированы со своей страницей (напр. featured-секция и сетка проектов в `home-page.tsx`, список фактов студии в `studio-page.tsx`).