7 Commits

Author SHA1 Message Date
AR 15 M4 c1731615ab fix(buttons): переделаны кнопки под реальный сайт oclinica.ru
Анализ CSS сайта (style.css темы clinic_bootstrap_mobile) выявил
4 реальных типа кнопок — заменены ранее придуманные варианты:

- primary  → коралловый #FFA39C + shadow (форм-сабмит «Запишите меня!»)
- outline  → белый + бежевая рамка #BF9975 («Записаться на прием»)
- teal     → бирюзовый #60959c («Позвонить»)
- pill     → кремовый #e9e4d4 + radius 25px («Заказать звонок»)

Удалены: secondary, ghost, danger (не существуют на реальном сайте)
Добавлен раздел «CSS с сайта» с точными значениями
Добавлена таблица «Где применяется» с реальными CSS-классами сайта
LLM-блок обновлён до v2.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:41:27 +05:00
AR 15 M4 0855892643 feat(sprint3): кнопки, форм-контролы, LLM-блоки — Sprint 3 v0.3.0
- components/ui/Button.tsx — компонент Button (primary/secondary/ghost/danger, sm/md/lg, loading/disabled)
- components/ui/CodeCopy.tsx — компонент копирования кода (clipboard API)
- components/ui/Toggle.tsx — тумблер (client component, bb-toggle-track/thumb)
- globals.css — CSS-классы: bb-btn, bb-input/textarea/select, bb-checkbox/radio, bb-toggle, @keyframes bb-spin
- app/components/buttons/page.tsx — страница «Кнопки» (варианты, размеры, состояния, code copy, LLM-блок)
- app/components/forms/page.tsx — страница «Форм-контролы» (Input/Textarea/Select/Checkbox/Radio/Toggle, LLM-блок)
- foundation/logo/page.tsx — добавлен LLM-блок v1.0
- Sidebar: убраны «скоро» с Кнопок и Форм-контролов, версия Sprint 3 · v0.3.0
- docs/LLM_CONTEXT.md → версия 3.0, добавлена секция 9a с компонентами

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:20:41 +05:00
AR 15 M4 0198947c4e feat: LLM-блоки на страницах цветов и типографики + docs/LLM_CONTEXT.md
- Создан компонент 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>
2026-03-22 19:59:58 +05:00
AR 15 M4 52acdc98e2 feat(sprint2): реальные фото из PDF, тайтлы страниц, убрана Печать
- Навигация: макет Кабинет 04 + карточка врача из PDF, фото дверей 13 и 31, указатели по этажам
- Транспорт: рендер макета трамвая из PDF вместо CSS-заглушки
- Тайтлы: единый формат «Раздел. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой» на всех страницах
- Сайдбар: убран пункт «Печать» (нет данных из брендбука)
- SPRINTS.md: обновлены фактические результаты Sprint 2

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 19:14:17 +05:00
AR 15 M4 02f561fcd3 feat(sprint-2): цвета, типографика, оффлайн элементы
Страницы фундамента:
- /foundation/colors — палитра 7 цветов, HEX/RGB/HSL/CSS-var с копированием,
  WCAG-контраст 7 пар, экспорт JSON-токенов
- /foundation/typography — DINPro (оффлайн) + Fira Sans (веб), шкалы,
  таблица применения, живой пример

Оффлайн элементы (5 страниц):
- /offline/uniform — схема формы, таблица размеров логотипа
- /offline/badges — макеты бейджей 70×30 мм (светлый/тёмный)
- /offline/navigation — 4 шаблона табличек, цвета Oracal
- /offline/transport — CSS-макет трамвая, трёхполосная схема
- /offline/print — макеты визитки и листовки А5, Telegram-бот

Sidebar: убраны «скоро» для Цветов, Типографики, всех Оффлайн
Версия: Sprint 2 · v0.2.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:52:02 +05:00
AR 15 M4 03cceea13d feat(sprint-1): финальные правки — логотип, название клиники, порты
- 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>
2026-03-22 17:39:18 +05:00
AR 15 M4 5105310c92 feat(sprint-1): инициализация monorepo, Next.js, NestJS, страница логотипа
Инфраструктура:
- pnpm workspaces monorepo (apps/web, apps/api, packages/)
- docker-compose.yml: PostgreSQL 16
- .env.example: DATABASE_URL, API_PORT, NEXT_PUBLIC_API_URL

Backend (apps/api — NestJS 11):
- Инициализирован NestJS с pnpm
- Prisma 7 + prisma.config.ts подключен к PostgreSQL
- Схема: User (role: viewer/editor), ExperimentalComponent (status: draft/review/approved)

Frontend (apps/web — Next.js 16):
- App Router, TypeScript, Tailwind CSS 4, Fira Sans (Google Fonts)
- globals.css: CSS-токены бренда (цвета 053M–080M, шрифты)
- layout.tsx: корневой layout с боковой навигацией
- Sidebar.tsx: навигация по всем разделам (Фундамент, Компоненты, Блоки, Страницы, Оффлайн, Эксперименты)
- page.tsx: редирект → /foundation/logo
- /foundation/logo: полная страница «Логотип»
  - Иерархия и версии (Основной / Общий)
  - Цветовые варианты (основной, инвертированный, на форме)
  - Охранная зона с визуализацией
  - Таблица минимальных размеров (форма сотрудников)
  - Недопустимые варианты (6 правил)
  - Блок скачивания (placeholder до получения вектора)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:13:42 +05:00