diff --git a/apps/web/app/blocks/doctors/page.tsx b/apps/web/app/blocks/doctors/page.tsx index c6447c0..beb7de8 100644 --- a/apps/web/app/blocks/doctors/page.tsx +++ b/apps/web/app/blocks/doctors/page.tsx @@ -11,13 +11,37 @@ const STATS = [ { num: "12 000+", label: "успешно проведённых операций", prefix: "Свыше" }, ]; -const MOCK_DOCTORS = [ - { name: "Макарова Людмила Тимофеевна", spec: "ЛОР врач, сурдолог" }, - { name: "Тимофеева Наталья Александровна", spec: "ЛОР врач, мед. Завед. центром сурдологии и а..." }, - { name: "Воронникова Наталья Валентиновна", spec: "Отоларинголог, ЛОР-хирург" }, - { name: "Лобанова Ирина Юрьевна", spec: "ЛОР врач, сурдолог" }, - { name: "Тарасова Наталья Сергеевна", spec: "Специалист по сурдопротезированию (Сурдолог)" }, - { name: "Сильянова Светлана Викторовна", spec: "ЛОР врач, сурдолог" }, +const DOCTORS = [ + { + name: "Макарова Людмила Германовна", + spec: "ЛОР врач, сурдолог", + photo: "/doctors/makarova.jpg", + }, + { + name: "Семерикова Наталия Александровна", + spec: "ЛОР врач, сурдолог, хирург. К.М.Н. Завед. Центром сурдологии", + photo: "/doctors/semerikova.png", + }, + { + name: "Ворончихина Наталия Валерьевна", + spec: "Отоневролог, хирург. К.М.Н., доцент кафедры ПГМУ", + photo: "/doctors/voronchikhina.png", + }, + { + name: "Лобанова Ирина Юрьевна", + spec: "ЛОР врач, сурдолог", + photo: "/doctors/lobanova.jpg", + }, + { + name: "Торсунова Наталья Сергеевна", + spec: "Специалист по слухопротезированию (сурдоакустик)", + photo: "/doctors/torsunova.jpg", + }, + { + name: "Суворова Светлана Викторовна", + spec: "ЛОР врач, сурдолог", + photo: "/doctors/suvorova.jpg", + }, ]; const LLM_DOCTORS_TEXT = ` @@ -30,24 +54,24 @@ const LLM_DOCTORS_TEXT = ` Подзаголовок: описание принципа работы врачей клиники 2. БЛОК СТАТИСТИКИ (3 показателя в ряд): - — «Ежедневно 27 ЛОР врачей работает в клинике» + — «Ежедневно 27 ЛОР врачей работают в клинике» — «В том числе 6 кандидатов медицинских наук» — «Свыше 12 000 успешно проведённых операций» - Стиль: число крупное (20px+, bold), текст мелкий (#6b7280), фон #dff0fa + Стиль: весь текст #60959c, bold, ~18px. Фона НЕТ. Снизу border-bottom 3px solid #60959c -3. СЕТКА КАРТОЧЕК ВРАЧЕЙ (6 штук, 3 в ряд): +3. СЕТКА КАРТОЧЕК ВРАЧЕЙ (6 штук, 6 в ряд): Каждая карточка: - — Фото врача (110×160px или больше, object-fit: cover) - — Имя (14px, font-weight 500) - — Специализация (12px, #6b7280) - Карточки без рамки, простой вертикальный стек + — Фото врача 110×150px, object-fit: cover, object-position: center top, border-radius 4px + — Имя (12px, font-weight 500, цвет #60959c) + — Специализация (11px, #374151) + Карточки без рамки, gap минимальный ЦВЕТА: - Заголовок H2: #111827 - Блок статистики фон: #dff0fa (светло-синий) - Число в статистике: #0089c3 (--brand-053m) - Имя врача: #111827 - Специализация: #6b7280 + Заголовок H2: #111827, ~30px (text-3xl) + Статистика текст: #60959c (серо-бирюзовый) + Статистика черта: border-bottom 3px solid #60959c + Имя врача: #60959c + Специализация: #374151 ПРАВИЛА: ✓ Заголовок H2 + описание обязательны @@ -87,63 +111,53 @@ export default function DoctorsBlockPage() { > {/* Заголовок */}
-

+

Приём ведут опытные ЛОР врачи

Фундаментальная теоретическая подготовка и большой практический опыт в сочетании - с внимательным индивидуальным подходом является причиной лечения тысяч наших пациентов. + с внимательным индивидуальным подходом являются причиной успеха лечения тысяч наших пациентов

- {/* Статистика */} -
+ {/* Статистика — текст тёмно-бирюзовым, без фоновых блоков */} +
{STATS.map((s) => ( -
-

- {s.prefix} -

-

- {s.num} -

-

- {s.label} +

+

+ {s.prefix} {s.num} {s.label}

))}
- {/* Сетка врачей */} -
- {MOCK_DOCTORS.map((doc) => ( -
- {/* Фото-заглушка */} -
+ {DOCTORS.map((doc) => ( +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + {doc.name} - 👩‍⚕️ -
+ />

{doc.name}

{doc.spec}

@@ -159,24 +173,18 @@ export default function DoctorsBlockPage() {

Блок статистики

-
+
{STATS.map((s) => (
-

- {s.prefix} -

-

- {s.num} -

-

- {s.label} +

+ {s.prefix} {s.num} {s.label}

- фон: #dff0fa · число: #0089c3 + цвет текста: #60959c · черта: 3px solid #60959c

))} @@ -184,15 +192,15 @@ export default function DoctorsBlockPage() { {/* LLM блок */} - + @@ -200,6 +208,11 @@ export default function DoctorsBlockPage() { headers={["Число", "Описание"]} rows={STATS.map((s) => [`${s.prefix} ${s.num}`, s.label])} /> + + [d.name, d.spec])} + />

- Главный баннер страницы раздела ЛОР — perm.oclinica.ru/lor. Двухколоночный блок с фоном #b8e6ed. + Главный баннер страницы раздела ЛОР — perm.oclinica.ru/lor. Двухколоночный блок, единый светло-кремовый фон #f9f4e7.

@@ -95,15 +96,15 @@ export default function HeroPage() { ЛОР Клиника ухо, горло, нос – медицинский центр лечения ЛОР заболеваний у детей и взрослых - {/* Баннер */} + {/* Баннер — единый светло-кремовый фон */}
- {/* Левая часть — белый блок */} + {/* Левая часть — контент на кремовом фоне */}

@@ -130,31 +131,30 @@ export default function HeroPage() { ))}

-
- {/* Правая часть — фото-заглушка */} + {/* Правая часть — фото врача */}
-
-
- 👨‍⚕️ -
-

- Фото врача с пациентом -

-

- Фон: #b8e6ed -

-
+ {/* eslint-disable-next-line @next/next/no-img-element */} + Врач на приёме с пациентом
@@ -187,45 +187,26 @@ export default function HeroPage() {

Анатомия баннера

-
- {[ - { - zone: "Левый блок (белый)", - bg: "#f8fafc", - items: [ - "Заголовок uppercase bold", - "3 пункта с галочками ✓", - "Кнопка bb-btn-primary", - ], - }, - { - zone: "Правый блок (#b8e6ed)", - bg: "#f0fdfa", - items: [ - "Фото врача с пациентом", - "Фон: #b8e6ed (светло-бирюзовый)", - "Занимает всю высоту блока", - ], - }, - ].map((z) => ( -
-

- {z.zone} -

-
    - {z.items.map((item) => ( -
  • - · - {item} -
  • - ))} -
-
- ))} +
+

+ Весь баннер — единый фон #f9f4e7 +

+
    + {[ + "Фон: #f9f4e7 (светло-кремовый) — одинаковый для всего блока", + "Левая половина (~50%): заголовок uppercase bold + 3 галочки + кнопка outline", + "Правая половина (~50%): фото врача с пациентом", + "Минимальная высота: ~280px", + ].map((item) => ( +
  • + · + {item} +
  • + ))} +
@@ -261,13 +242,14 @@ export default function HeroPage() { {/* LLM блок */} - + @@ -280,21 +262,21 @@ export default function HeroPage() { diff --git a/apps/web/app/foundation/colors/page.tsx b/apps/web/app/foundation/colors/page.tsx index 229d0d0..9c838b2 100644 --- a/apps/web/app/foundation/colors/page.tsx +++ b/apps/web/app/foundation/colors/page.tsx @@ -145,10 +145,15 @@ const COLOR_MAPPING = [ web: { name: "Второстепенный текст", hex: "#949290", count: 4 }, note: "Только на сайте — нет Oracal-аналога", }, + { + brand: null, + web: { name: "Светло-кремовый фон (Hero)", hex: "#f9f4e7", count: 1 }, + note: "Только на сайте — фон Hero-баннера страниц разделов. Нет Oracal-аналога", + }, { brand: null, web: { name: "Кремовый фон", hex: "#e9e4d4", count: 1 }, - note: "Только на сайте — нет Oracal-аналога", + note: "Только на сайте — тёплые фоны кнопок-пилюль, вторичные секции. Нет Oracal-аналога", }, { brand: null, @@ -177,8 +182,9 @@ const WEB_COLORS = [ { name: "Бирюзовый средний", hex: "#52b4bd", usage: "Вторичные цветовые акценты", count: 4, group: "Акценты" }, { name: "Основной текст", hex: "#464646", usage: "Цвет основного текста на сайте", count: 3, group: "Текст" }, { name: "Второстепенный текст", hex: "#949290", usage: "Подписи, второстепенный контент", count: 4, group: "Текст" }, - { name: "Светло-бирюзовый фон", hex: "#b8e6ed", usage: "Фоны светлых секций с акцентом", count: 1, group: "Фоны" }, - { name: "Кремовый фон", hex: "#e9e4d4", usage: "Тёплые фоны секций", count: 1, group: "Фоны" }, + { name: "Светло-бирюзовый фон", hex: "#b8e6ed", usage: "Фон формы записи («Будьте здоровы!»)", count: 1, group: "Фоны" }, + { name: "Светло-кремовый фон (Hero)", hex: "#f9f4e7", usage: "Фон Hero-баннера страниц разделов", count: 1, group: "Фоны" }, + { name: "Кремовый фон", hex: "#e9e4d4", usage: "Тёплые фоны кнопок-пилюль, вторичные секции", count: 1, group: "Фоны" }, { name: "Коралловый", hex: "#ffa39c", usage: "CTA-кнопки («Запишите меня!»), акцентные призывы к действию", count: 2, group: "Акценты" }, { name: "Светло-жёлтый фон", hex: "#eef4d1", usage: "Фон карточек отзывов (секция «Отзывы о нас»)", count: 1, group: "Фоны" }, { name: "Светло-зелёный фон", hex: "#f2fee6", usage: "Фон секции новостей", count: 1, group: "Фоны" }, @@ -424,8 +430,9 @@ Oracal | Название | HEX | RGB | CSS-пер Коралловый | #FFA39C | Акценты | 2 | CTA-кнопки («Запишите меня!») Основной текст | #464646 | Текст | 3 | Цвет основного текста сайта Второстепенный текст | #949290 | Текст | 4 | Подписи, второстепенный контент -Светло-бирюзовый фон | #B8E6ED | Фоны | 1 | Фоны светлых секций -Кремовый фон | #E9E4D4 | Фоны | 1 | Тёплые фоны секций +Светло-кремовый Hero | #F9F4E7 | Фоны | 1 | Фон Hero-баннера страниц разделов +Светло-бирюзовый фон | #B8E6ED | Фоны | 1 | Фон формы записи («Будьте здоровы!») +Кремовый фон | #E9E4D4 | Фоны | 1 | Тёплые фоны кнопок-пилюль, вторичные секции Светло-жёлтый фон | #EEF4D1 | Фоны | 1 | Фон карточек отзывов Светло-зелёный фон | #F2FEE6 | Фоны | 1 | Фон секции новостей diff --git a/apps/web/app/foundation/typography/page.tsx b/apps/web/app/foundation/typography/page.tsx index 5c7afcc..3cae4d4 100644 --- a/apps/web/app/foundation/typography/page.tsx +++ b/apps/web/app/foundation/typography/page.tsx @@ -399,6 +399,58 @@ export default function TypographyPage() {
+ {/* Типографика сайта — фактическое состояние 23.03.2026 */} +
+
+ + + + {["Элемент / блок", "Шрифт", "Размер", "Weight", "Цвет", "Пример"].map(h => ( + + ))} + + + + {[ + ["H1 страницы (над Hero)", "Fira Sans", "~28–30px", "700", "#bf9975", "ЛОР Клиника ухо, горло, нос…"], + ["H2 секции", "Fira Sans", "~30px", "700", "#111827", "Приём ведут опытные ЛОР врачи"], + ["Заголовок Hero-баннера", "Fira Sans", "~18px", "700", "#111827", "ЭНДОСКОПИЧЕСКОЕ ХИРУРГИЧЕСКОЕ…"], + ["Статистика (цифра+текст)", "Fira Sans", "~18px", "700", "#60959c", "Ежедневно 27 ЛОР врачей…"], + ["Подзаголовок секции", "Fira Sans", "~14px", "400", "#374151", "Фундаментальная теоретическая…"], + ["Пункт checklist (ключ)", "Fira Sans", "13px", "700", "#111827", "БЕЗОПАСНО"], + ["Пункт checklist (описание)", "Fira Sans", "13px", "400", "#374151", "оперируют хирурги с 15-летним…"], + ["Имя врача в карточке", "Fira Sans", "12px", "500", "#60959c", "Макарова Людмила Германовна"], + ["Специализация врача", "Fira Sans", "11px", "400", "#374151", "ЛОР врач, сурдолог"], + ].map(([el, font, size, w, color, example]) => ( + + + + + + + + + ))} + +
+ {h} +
{el}{font}{size}{w} + + + {color} + + {example}
+
+
+ {/* LLM-спецификация */}
diff --git a/apps/web/public/doctors/lobanova.jpg b/apps/web/public/doctors/lobanova.jpg new file mode 100644 index 0000000..c5dcc3e Binary files /dev/null and b/apps/web/public/doctors/lobanova.jpg differ diff --git a/apps/web/public/doctors/makarova.jpg b/apps/web/public/doctors/makarova.jpg new file mode 100644 index 0000000..7f7b5bf Binary files /dev/null and b/apps/web/public/doctors/makarova.jpg differ diff --git a/apps/web/public/doctors/semerikova.png b/apps/web/public/doctors/semerikova.png new file mode 100644 index 0000000..ff6e79f Binary files /dev/null and b/apps/web/public/doctors/semerikova.png differ diff --git a/apps/web/public/doctors/suvorova.jpg b/apps/web/public/doctors/suvorova.jpg new file mode 100644 index 0000000..f7c5029 Binary files /dev/null and b/apps/web/public/doctors/suvorova.jpg differ diff --git a/apps/web/public/doctors/torsunova.jpg b/apps/web/public/doctors/torsunova.jpg new file mode 100644 index 0000000..c782c3a Binary files /dev/null and b/apps/web/public/doctors/torsunova.jpg differ diff --git a/apps/web/public/doctors/voronchikhina.png b/apps/web/public/doctors/voronchikhina.png new file mode 100644 index 0000000..d40b5c5 Binary files /dev/null and b/apps/web/public/doctors/voronchikhina.png differ diff --git a/apps/web/public/hero-doctor.jpg b/apps/web/public/hero-doctor.jpg new file mode 100644 index 0000000..4dc6ed8 Binary files /dev/null and b/apps/web/public/hero-doctor.jpg differ diff --git a/docs/LLM_CONTEXT.md b/docs/LLM_CONTEXT.md index 8fb4085..1962719 100644 --- a/docs/LLM_CONTEXT.md +++ b/docs/LLM_CONTEXT.md @@ -2,8 +2,8 @@ ## Клиника ухо, горло, нос им. проф. Е.Н.Оленевой -**Версия контекста:** 4.1 -**Дата обновления:** 2026-03-22 +**Версия контекста:** 4.2 +**Дата обновления:** 2026-03-23 **Актуальный спринт:** Sprint 5 **Сайт клиники:** https://oclinica.ru **Брендбук (локально):** http://localhost:3001 @@ -67,8 +67,9 @@ | Коралловый | `#ffa39c` | rgb(255,163,156) | Акценты | 2 | CTA-кнопки («Запишите меня!») | | Основной текст | `#464646` | rgb(70,70,70) | Текст | 3 | Цвет основного текста на сайте | | Второстепенный текст | `#949290` | rgb(148,146,144) | Текст | 4 | Подписи, второстепенный контент | -| Светло-бирюзовый фон | `#b8e6ed` | rgb(184,230,237) | Фоны | 1 | Фоны светлых секций с акцентом | -| Кремовый фон | `#e9e4d4` | rgb(233,228,212) | Фоны | 1 | Тёплые фоны секций | +| Светло-кремовый Hero | `#f9f4e7` | rgb(249,244,231) | Фоны | 1 | Фон Hero-баннера страниц разделов | +| Светло-бирюзовый фон | `#b8e6ed` | rgb(184,230,237) | Фоны | 1 | Фон формы записи («Будьте здоровы!») | +| Кремовый фон | `#e9e4d4` | rgb(233,228,212) | Фоны | 1 | Тёплые фоны кнопок-пилюль, вторичные секции | | Светло-жёлтый фон | `#eef4d1` | rgb(238,244,209) | Фоны | 1 | Фон карточек отзывов | | Светло-зелёный фон | `#f2fee6` | rgb(242,254,230) | Фоны | 1 | Фон секции новостей | @@ -287,9 +288,11 @@ SVG-версия ожидается (не получена от клиники). | `/offline/transport` | ✅ Готова | Брендирование транспорта | | `/components/buttons` | ✅ Готова | Кнопки — 4 варианта с реального сайта, размеры, состояния | | `/components/forms` | ✅ Готова | Форм-контролы — Input/Textarea/Select/Checkbox/Radio/Toggle | -| `/components/cards` | 🚧 Sprint 4 | Карточки — врач, услуга, новость, отзыв, цена + бейджи/теги/алерты | +| `/components/cards` | ✅ Sprint 4 | Карточки — врач, услуга, новость, отзыв, цена + бейджи/теги/алерты | | `/components/*` | 🔜 Sprint 4–5 | Модалки, таблицы, навигация | -| `/blocks/*` | 🔜 Sprint 5–8 | Hero, врачи, отзывы, новости, формы | +| `/blocks/hero` | ✅ Sprint 5 v1.1 | Hero-баннер: фон #f9f4e7, реальное фото врача, галочки #bf9975, кнопка outline | +| `/blocks/doctors` | ✅ Sprint 5 v1.1 | Врачи: H2 30px, статистика #60959c без фона, 6 реальных фото | +| `/blocks/*` | 🔜 Sprint 5 | Отзывы, формы, новости, footer | | `/pages/*` | 🔜 Sprint 9–11 | Главная, заболевание, врачи, цены, контакты | --- diff --git a/docs/SPRINTS.md b/docs/SPRINTS.md index 6105d3f..c3f351f 100644 --- a/docs/SPRINTS.md +++ b/docs/SPRINTS.md @@ -191,14 +191,18 @@ - [ ] FE: Главное меню: Клиника / ЛОР врачи / Заболевания / Вопрос-ответ / ЛОР-операции / Сурдология / Цены / Контакты **Hero-баннер** → `/blocks/hero` -- [ ] FE: Левая часть: белый блок, заголовок «ЭНДОСКОПИЧЕСКОЕ...», 3 пункта с галочками, кнопка «Узнать стоимость операции» -- [ ] FE: Правая часть: фото врача, фон #b8e6ed +- [x] FE: Баннер — единый фон #f9f4e7 (светло-кремовый, замерян пикселем), галочки #bf9975 +- [x] FE: Правая часть: реальное фото врача с пациентом (спарсено с сайта → public/hero-doctor.jpg) +- [x] LLM: v1.1 — исправлен цвет фона, кнопка outline, галочки бежевые **Вводный текст (CEO-блок)** → `/blocks/ceo` - [ ] FE: Текст специализации клиники, Q&A вопросы-стимулы **Блок врачей** → `/blocks/doctors` -- [ ] FE: Заголовок «Приём ведут опытные ЛОР врачи» + 3 стат-блока + сетка карточек (mock) +- [x] FE: Заголовок text-3xl + 3 стат-блока (без фона, #60959c + border-bottom) + сетка 6 карточек +- [x] FE: Реальные фото 6 врачей (спарсены с сайта → public/doctors/) +- [x] FE: Реальные имена и специализации врачей из слайдера /lor +- [x] LLM: v1.1 **Блок отзывов** → `/blocks/reviews` - [ ] FE: Карусель: кавычка, текст отзыва, «Читать полностью», стрелки @@ -214,11 +218,14 @@ - [ ] FE: 4 колонки ссылок, логотип, адрес, соцсети, часы работы ### Общее к Sprint 5 -- [ ] FE: LLM-блоки v1.0 на каждую страницу блоков -- [ ] FE: Убрать `soon` у всех заполненных блоков в Sidebar -- [ ] Docs: Обновить `docs/LLM_CONTEXT.md` - -**Результат спринта:** Все блоки текущего сайта задокументированы с mock-данными. +- [x] FE: LLM-блоки на hero v1.1 и doctors v1.1 +- [x] Docs: Типографика сайта — реальные стили на 23.03.2026 (новый раздел в /foundation/typography) +- [x] Docs: Цвета — исправлен #f9f4e7 (Hero), #b8e6ed (форма), #e9e4d4 (пилюли) +- [ ] FE: Убрать `soon` у Hero и Doctors в Sidebar +- [ ] FE: CEO-блок, отзывы, формы, новости, footer +- [ ] Docs: Финальное обновление `docs/LLM_CONTEXT.md` по итогам Sprint 5 + +**Результат спринта (в работе):** Hero + Doctors задокументированы с реальными фото и точными цветами. ---