8.2 KiB
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 lintandpnpm 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.