BlockMetaBar now falls back to localStorage for preview toggle when
NestJS API is unavailable. PreviewClient reads localStorage state
and listens for bb-preview-change events to stay in sync.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
NavigationBlock extracted from navigation/page.tsx into reusable component.
Preview now shows real header (ready: true) as first block — 3 of 8 ready.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The header is the first block on the real site — added it to the
preview BLOCKS array so it shows as placeholder before Hero.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New route /pages/preview with empty state ("Создать") and assembled preview
- Preview assembles real site blocks in order (Hero + Doctors ready, rest placeholders)
- localStorage persists created state; "Пересобрать" resets it
- Extracted HeroBlock and DoctorsBlock as reusable components
- Refactored hero and doctors pages to import from components/blocks/
- Sidebar: added "Просмотр страницы" link, bumped to Sprint 5.5 · v0.5.5
- SPRINTS.md: added Sprint 5.5 plan with summary table row
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Sprint 5: ALL site blocks in one sprint (header, hero, CEO text, doctors,
reviews, contact forms, news, footer) — taken from real perm.oclinica.ru/lor
- Sprint 6: Page assemblies (home, disease, doctors)
- Sprint 7: Duplicate/variant system for components and blocks
- Sprint 8: Duplicate/variant system for pages (templates per section)
- Sprint 9: Remaining pages (prices, contacts, doctor profile)
- Sprint 10: Final polish and deploy
Sidebar: added Variants section, reordered Blocks to match real page flow,
removed Experiments section.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add 27 offline photos (navigation + transport) that were missing from git
but referenced by Sprint 2 pages
- SPRINTS.md: mark Sprint 3 as ЗАВЕРШЁН with actual results documented
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Создан компонент components/llm/LlmBlock.tsx (use client):
LlmBlock, LlmSection, LlmTable, LlmRules — переиспользуемый
паттерн для LLM-спецификаций на всех страницах брендбука
- /foundation/colors: добавлен раздел «LLM-спецификация» (v2.1)
· таблица фирменных цветов Oracal (7 шт.)
· таблица цветов сайта oclinica.ru (11 шт., +3 новых: коралловый,
светло-жёлтый, светло-зелёный)
· таблица контрастности WCAG 2.1
· правила применения ✓/✕
· кнопка «Скопировать» — plain text для LLM
- /foundation/typography: добавлен раздел «LLM-спецификация» (v2.0)
· таблица шрифтов DINPro vs Fira Sans
· шкала DINPro (6 стилей)
· шкала Fira Sans (11 стилей, включая letter-spacing)
· применение по носителям + правила ✓/✕
- docs/LLM_CONTEXT.md: создан сводный машиночитаемый файл бренда
Версия 2.1: все цвета, типографика, логотип, оффлайн, CSS-vars,
правила — единый контекст для AI при работе с брендом клиники
- docs/TZ.md: добавлено требование ФТ-03-LLM
- docs/SPRINTS.md: задачи LLM-блоков в Sprint 3–8
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Визуальное сравнение фирменной палитры с реальными цветами сайта:
- 4 пары с соответствием (053M↔#63bac3, 073M↔#60959c, 066M↔#52b4bd, 081M↔#bf9975)
- 2 Oracal-цвета без аналога на сайте (050M, 080M)
- 3 цвета только сайта без Oracal-кода (текст #464646, серый #949290, крем #e9e4d4)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Добавлен массив WEB_COLORS (8 цветов из CSS темы oclinica.ru)
- Добавлен компонент WebColorCard с группой, счётчиком применений, HEX/RGB/HSL
- Новый раздел «Цвета с сайта» со ссылкой на CSS-источник в интерфейсе
- TZ.md: ОВ-07 — зафиксирован URL темы clinic_bootstrap_mobile и метод извлечения
Источник CSS: perm.oclinica.ru/sites/all/themes/clinic_bootstrap_mobile/css/style.css
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Навигация: макет Кабинет 04 + карточка врача из PDF, фото дверей 13 и 31, указатели по этажам
- Транспорт: рендер макета трамвая из PDF вместо CSS-заглушки
- Тайтлы: единый формат «Раздел. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой» на всех страницах
- Сайдбар: убран пункт «Печать» (нет данных из брендбука)
- SPRINTS.md: обновлены фактические результаты Sprint 2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Извлечены 2 фото (стр.11 PDF): бежевый и синий варианты
- Убран CSS-макет, добавлены реальные фото с подписями и цветовыми чипами
- Обновлено описание: два варианта формы
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- colors/page.tsx: Record<string, unknown> вместо Record<string, string>
- next.config.ts: turbopack.root только в development (Vercel conflict fix)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- PNG логотипа извлечён из PDF (PyMuPDF + Pillow), прозрачный фон (numpy)
- Инвертированный логотип: CSS filter brightness(0) invert(1) на прозрачном PNG
- Исправлено название: «Клиника ухо, горло, нос им. проф. Е.Н.Оленевой»
- PostgreSQL переведён на порт 5433 (5432 занят на хосте)
- next.config.ts: turbopack.root для монорепо
- docs/SPRINTS.md: Sprint 1 помечен ✅ ЗАВЕРШЁН
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>