Files
linic-wellness-shadcn/AGENTS.md

79 lines
8.2 KiB
Markdown
Raw Permalink 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
Northline Clinic — planned care clinic template: пациентский маршрут, triage-запись, подготовка к визиту, документы, privacy, специалисты и координатор без медицинских обещаний результата.
## Project Specifics
- Source content lives in `src/entities/site-content.ts`; keep visible copy there or directly in route JSX.
- `src/app` — только route wrappers; композиция каждой страницы живёт в отдельном widget (`src/widgets/<page>-page.tsx`). Header/footer — `src/widgets/site-shell.tsx`. См. File Map.
- Keep cards at 8px radius or less and preserve the selected palette in `src/app/globals.css`.
- This is a static frontend template: do not add real payments, auth, persistence, external API calls, or backend contracts without an explicit product request.
- Keep the domain specific: planned care, triage, preparation, diagnostic route, result review, insurance/privacy and non-emergency boundaries. Do not flatten it into generic wellness cards.
- Never add diagnoses, treatment schemes, dosage advice, guaranteed outcomes, emergency-care replacement, real EHR behavior or patient-data submission.
- After changes run `pnpm lint` and `pnpm build`.
## Визуальные правки
- Кириллица обязательна для видимого текста и выбранных Google Fonts.
- При AI-правках сохраняйте доменные блоки этого шаблона: они отличают проект от generic landing.
## Design System
Источник токенов — `src/app/globals.css` (`@theme inline` + `:root`/`.dark`). Шрифты: заголовки и `.font-display`**Manrope** (`--font-display`), body — **Source Sans 3** (`--font-sans`); mono замаплен на display. Работай через семантические классы Tailwind (`bg-primary`, `text-muted-foreground`, `border-border`, `border-primary/30`), не хардкодь hex/oklch.
Личность: **calm clinical / planned care** — тёплый кремово-бежевый фон (low-chroma), приглушённый сине-зелёный teal `primary` (oklch 0.46 0.07 173) как доверие и навигация, мягкий мятный `secondary`, тёплый терракотовый `accent` (oklch 0.72 0.12 34) для редких сигналов. Текст — тёмный teal-ink, а не чистый чёрный. Никакой «больничной» стерильности и никакого агрессивного маркетинга — спокойная, аккуратная среда.
| Роль | Light | Характер |
|---|---|---|
| `background` | тёплый кремово-бежевый (0.976) | основной фон страниц |
| `foreground` | тёмный teal-ink (0.18) | текст |
| `primary` | приглушённый teal | доверие: иконки, CTA, бейджи (`text-primary`), eyebrow, `border-primary/30` |
| `secondary` | мягкий мятный | вторичные бейджи (теги маршрутов) |
| `accent` | тёплый терракот | редкий сигнал (используется сдержанно) |
| `muted` | тёплый серо-бежевый | чипы, фон-плашки, вторичный текст |
| `card` | почти белый тёплый (0.995) | панели `ClinicalPanel` |
| `border` | мягкий тёплый серый | тонкие границы (`border border-border`) |
Узнаваемые приёмы (держи их, это и есть «лицо» проекта):
- **Мягкие, но не круглые углы:** `--radius` = 0.5rem; почти всё — `rounded-md`. Спокойная гладкость без пузырей.
- **`ClinicalPanel` как базовый блок:** `rounded-md border border-border bg-card shadow-[0_1px_0_rgba(24,74,68,0.05)]` — почти плоская карточка с едва заметной teal-линией снизу. Это основной строительный кирпич контента.
- **Тонкие границы, плоскость:** `border border-border` (1px), без жёстких теней и offset-shadow. Глубина — минимальная.
- **Цветная семантика teal:** иконки, цифры-метрики, eyebrow и активные подписи — `text-primary`; границы-акценты — `border-primary/30`.
- **Типографика:** заголовки — `font-semibold` (не black), `text-5xl`/`text-6xl`, спокойный `leading-tight`/`leading-[1.04]`; eyebrow — `uppercase tracking-[0.16em] text-primary`.
- **Safety-блоки:** предупреждения о неэкстренном характере — `border-amber-200 bg-amber-50 text-amber-900/950` (единственное место с янтарём, намеренно).
- **Фон-фактура:** `.clinic-soft-grid` — мягкая teal/терракотовая сетка под hero с маской снизу; контент в `Container` (`max-w-[1320px]`), фото — `object-cover` БЕЗ grayscale (живые, тёплые снимки).
Do / Don't:
- **Do:** держи спокойную кремово-teal палитру, плоские `ClinicalPanel`, тонкие границы, доменный язык (маршрут, подготовка, координатор, неэкстренный формат), amber только для safety.
- **Don't:** яркие/насыщенные цвета, жёсткие тени, grayscale-фото, `font-black`, агрессивные CTA, медицинские обещания/диагнозы — это ломает доверительную клиническую личность.
## File Map
| Route | Widget |
|---|---|
| `/` | `src/widgets/home-page.tsx` (`HomePage`) |
| `/services` | `src/widgets/services-page.tsx` (`ServicesPage`) |
| `/specialists` | `src/widgets/specialists-page.tsx` (`SpecialistsPage`) |
| `/booking` | `src/widgets/booking-page.tsx` (`BookingPage`) |
| `/patient-info` | `src/widgets/patient-info-page.tsx` (`PatientInfoPage`) |
| `/contacts` | `src/widgets/contacts-page.tsx` (`ContactsPage`) |
Переиспользуемые блоки:
- `src/widgets/site-shell.tsx``SiteHeader` + `SiteFooter` (обёртка всех страниц через `app/layout.tsx`).
- `src/widgets/patient-journey.tsx``PatientJourney` (Home, Booking).
- `src/widgets/featured-grid.tsx``FeaturedGrid` (Home, Services).
- `src/widgets/specialist-schedule.tsx``SpecialistSchedule` (Home, Booking, Specialists).
- `src/widgets/patient-checklist.tsx``PatientChecklist` (Home, Patient info, Booking).
- `src/widgets/facility-board.tsx``FacilityBoard` (Home, Contacts).
- `src/widgets/safety-notes.tsx``SafetyNotes` (Home, Patient info, Booking).
- `src/widgets/clinical-disclaimer.tsx``ClinicalDisclaimer` (Home, Patient info, Booking, Services).
- `src/widgets/metric-strip.tsx``MetricStrip` (переиспользуемый блок-кит, готов к композиции).
- `src/shared/ui/container.tsx``Container` (контентная обёртка `max-w-[1320px]`, база всех секций).
- `src/shared/ui/clinical-panel.tsx``ClinicalPanel` (базовая карточка-панель).
- `src/shared/ui/section-header.tsx``SectionHeader` (eyebrow + заголовок + текст секции).
- `src/shared/ui/inner-hero.tsx``InnerHero` (заголовочная секция внутренних страниц).
- `src/shared/ui/icon-cards.tsx``IconCards` (Contacts, Services).
- `src/shared/ui/info-columns.tsx``InfoColumns`, `src/shared/ui/split-story.tsx``SplitStory` (переиспользуемые presentational-блоки-кит).
Одноразовые блоки колоцированы со своей страницей: `PageHero`/`TestimonialBand` в `home-page.tsx`, `ServiceMatrix`/`PricingTiles` в `services-page.tsx`, `DoctorGrid`/`CtaPanel` в `specialists-page.tsx`, `ReservationForm` в `booking-page.tsx`, `InsurancePanel` в `patient-info-page.tsx`, `ContactForm` в `contacts-page.tsx`.