diff --git a/apps/web/app/foundation/logo/page.tsx b/apps/web/app/foundation/logo/page.tsx index 352f5f8..06536bd 100644 --- a/apps/web/app/foundation/logo/page.tsx +++ b/apps/web/app/foundation/logo/page.tsx @@ -2,7 +2,7 @@ import type { Metadata } from "next"; import Image from "next/image"; export const metadata: Metadata = { - title: "Логотип | Брендбук О!Клиника", + title: "Логотип. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой", }; function RuleTag({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/foundation/typography/page.tsx b/apps/web/app/foundation/typography/page.tsx index a88571a..f2a81ca 100644 --- a/apps/web/app/foundation/typography/page.tsx +++ b/apps/web/app/foundation/typography/page.tsx @@ -1,7 +1,7 @@ import type { Metadata } from "next"; export const metadata: Metadata = { - title: "Типографика | Брендбук О!Клиника", + title: "Типографика. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой", }; /* ─── Шкала типографики ────────────────────────────────────────────── */ diff --git a/apps/web/app/offline/navigation/page.tsx b/apps/web/app/offline/navigation/page.tsx index b8f02ac..e894c30 100644 --- a/apps/web/app/offline/navigation/page.tsx +++ b/apps/web/app/offline/navigation/page.tsx @@ -1,7 +1,8 @@ import type { Metadata } from "next"; +import Image from "next/image"; export const metadata: Metadata = { - title: "Внутренняя навигация | Брендбук О!Клиника", + title: "Внутренняя навигация. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой", }; function Section({ @@ -30,74 +31,6 @@ function Section({ ); } -/* Макет настенной таблички */ -function SignMockup({ - type, - text, - subtext, - bgColor, - textColor, - accentColor, - size, -}: { - type: string; - text: string; - subtext?: string; - bgColor: string; - textColor: string; - accentColor: string; - size: string; -}) { - return ( -
-
- {/* Цветовая полоса */} -
-
-

- {text} -

- {subtext && ( -

- {subtext} -

- )} -
-
-
-

{type}

-

{size}

-
-
- ); -} - export default function NavigationPage() { return (
@@ -115,52 +48,111 @@ export default function NavigationPage() {

Система навигационных табличек и указателей внутри клиники. - Единый стиль с фирменными цветами и шрифтом DINPro. + На оргстекле, наклейки из плёнок Оракл 053M и 073M.

- {/* Шаблоны табличек */} + {/* Макеты таблечек */}
-
- - - - +
+ Макеты навигационных табличек: Кабинет 04 с бирюзовым заголовком и карточка врача Лебединской +
+

+ Макет из брендбука +

+

+ Табличка «Кабинет 04»: бирюзовый заголовок (Oracal 053M), специализация и ФИО врачей. + Карточка врача: логотип клиники, имя, должности, QR-код на страницу врача. +

+
+
+ + {/* Нумерация дверей */} +
+
+
+
+ Белая дверь кабинета 31 с крупным номером из плёнки +
+

+ Кабинет 31 — белая дверь +

+

+ Крупный номер в верхней части двери. Тёмная плёнка на белом фоне. +

+
+ +
+
+ Серая дверь кабинета 13 с крупным номером +
+

+ Кабинет 13 — серая дверь +

+

+ Тёмная дверь с крупным номером. Рядом — табличка кабинета на стене. +

+
+
+
+ + {/* Указатели по этажам */} +
+
+ Навигационные панели по этажам: кабинеты 01-06, 21-25, 31-37, 41-45
+

+ Слева — указатель с этажом и направлением, справа — панель с полным перечнем кабинетов. + Активный этаж выделяется бирюзовым фоном (Oracal 053M). +

{/* Технические требования */} @@ -188,12 +180,10 @@ export default function NavigationPage() { {[ - ["Основной материал", "ПВХ 3мм / ПС зеркальный / акрил"], - ["Покрытие фона", "Oracal плёнка (053M / 073M / 050M)"], - ["Шрифт", "DINPro Bold / Regular (DXF для фрезеровки)"], - ["Крепление", "Двусторонний скотч / шурупы с дистанционным держателем"], - ["Толщина букв (фрезеровка)", "3 мм от основы"], - ["Минимальный размер текста", "10 мм по высоте"], + ["Основной материал", "Оргстекло"], + ["Покрытие", "Наклейка из плёнок Oracal"], + ["Шрифт", "DINPro Bold / Regular"], + ["Крепление", "Дистанционные держатели"], ].map(([param, value]) => ( -
+
{[ - { code: "053M", hex: "#7ecfca", name: "Акцент / полоса" }, - { code: "073M", hex: "#5b7b87", name: "Фон указателей" }, - { code: "050M", hex: "#1b4c72", name: "Фон запрещающих" }, - { code: "081M", hex: "#c4a882", name: "Акцент на тёмном" }, + { code: "053M", hex: "#7ecfca", name: "Заголовок таблички / активный этаж" }, + { code: "073M", hex: "#5b7b87", name: "Дополнительный акцент" }, ].map(c => (
-
-
-

+

+
+

Oracal {c.code}

-

+

{c.name}

diff --git a/apps/web/app/offline/print/page.tsx b/apps/web/app/offline/print/page.tsx index bfbe2b5..fe055df 100644 --- a/apps/web/app/offline/print/page.tsx +++ b/apps/web/app/offline/print/page.tsx @@ -2,7 +2,7 @@ import type { Metadata } from "next"; import Image from "next/image"; export const metadata: Metadata = { - title: "Печатные материалы | Брендбук О!Клиника", + title: "Печатные материалы. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой", }; function Section({ diff --git a/apps/web/app/offline/transport/page.tsx b/apps/web/app/offline/transport/page.tsx index c63ce26..ccd207b 100644 --- a/apps/web/app/offline/transport/page.tsx +++ b/apps/web/app/offline/transport/page.tsx @@ -2,7 +2,7 @@ import type { Metadata } from "next"; import Image from "next/image"; export const metadata: Metadata = { - title: "Брендирование транспорта | Брендбук О!Клиника", + title: "Брендирование транспорта. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой", }; function Section({ @@ -31,101 +31,6 @@ function Section({ ); } -/* Макет трамвая (упрощённый силуэт) */ -function TramMockup() { - return ( -

- {/* Кузов трамвая */} -
- {/* Верхняя полоса — бирюзовая */} -
- - {/* Основная бежевая полоса */} -
- - {/* Нижняя полоса — серо-голубая */} -
- - {/* Логотип по центру бежевой полосы */} -
- Логотип на трамвае -
- - {/* Окна (декоративные) */} - {[80, 180, 280, 380, 460].map(x => ( -
- ))} - - {/* Колёса (декоративные) */} - {[60, 200, 360, 500].map(x => ( -
- ))} -
- -

- Схема цветового решения (превью, не финальный макет) -

-
- ); -} export default function TransportPage() { return ( @@ -151,9 +56,20 @@ export default function TransportPage() { {/* Макет */}
- +
+ Макет брендирования трамвая: вид спереди и сзади с логотипом Клиники ухо горло нос им. проф. Е.Н.Оленевой +
{/* Цветовая схема */} diff --git a/apps/web/components/layout/Sidebar.tsx b/apps/web/components/layout/Sidebar.tsx index f8c382a..b0f3d64 100644 --- a/apps/web/components/layout/Sidebar.tsx +++ b/apps/web/components/layout/Sidebar.tsx @@ -68,7 +68,6 @@ const NAV: NavSection[] = [ { label: "Бейджи", href: "/offline/badges" }, { label: "Навигация", href: "/offline/navigation" }, { label: "Транспорт", href: "/offline/transport" }, - { label: "Печать", href: "/offline/print" }, ], }, { diff --git a/apps/web/public/offline/navigation/nav-3.jpeg b/apps/web/public/offline/navigation/nav-3.jpeg new file mode 100644 index 0000000..11fd790 Binary files /dev/null and b/apps/web/public/offline/navigation/nav-3.jpeg differ diff --git a/apps/web/public/offline/navigation/nav-door-31.png b/apps/web/public/offline/navigation/nav-door-31.png new file mode 100644 index 0000000..26a6465 Binary files /dev/null and b/apps/web/public/offline/navigation/nav-door-31.png differ diff --git a/apps/web/public/offline/navigation/nav-mockup-signs.jpeg b/apps/web/public/offline/navigation/nav-mockup-signs.jpeg new file mode 100644 index 0000000..17d5e2b Binary files /dev/null and b/apps/web/public/offline/navigation/nav-mockup-signs.jpeg differ diff --git a/apps/web/public/offline/navigation/nav-render-p13.jpeg b/apps/web/public/offline/navigation/nav-render-p13.jpeg new file mode 100644 index 0000000..42f873b Binary files /dev/null and b/apps/web/public/offline/navigation/nav-render-p13.jpeg differ diff --git a/apps/web/public/offline/transport/tram-mockup.jpeg b/apps/web/public/offline/transport/tram-mockup.jpeg new file mode 100644 index 0000000..f30caec Binary files /dev/null and b/apps/web/public/offline/transport/tram-mockup.jpeg differ diff --git a/docs/SPRINTS.md b/docs/SPRINTS.md index add0370..fa1b050 100644 --- a/docs/SPRINTS.md +++ b/docs/SPRINTS.md @@ -81,22 +81,24 @@ ### Фактические результаты - Страница `/foundation/colors` — 7 цветов с HEX/RGB/HSL/CSS-var и копированием, WCAG-контраст 7 пар, экспорт JSON - Страница `/foundation/typography` — DINPro (оффлайн) + Fira Sans (веб), таблица применения, полные шкалы, живой пример -- Страница `/offline/uniform` — схема формы, таблица размеров логотипа, правила использования -- Страница `/offline/badges` — макеты бейджей 70×30 мм (светлый/тёмный), состав текста, применение -- Страница `/offline/navigation` — 4 шаблона табличек, технические требования, цвета Oracal -- Страница `/offline/transport` — CSS-макет трамвая с трёхполосной схемой, таблица зон -- Страница `/offline/print` — макеты визитки (лицо/оборот) и листовки А5, Telegram-бот -- Sidebar: убраны «скоро» для Цветов, Типографики и всех 5 страниц Оффлайн +- Страница `/offline/uniform` — реальные фото из PDF (беж + синий вариант), таблица размеров, правила +- Страница `/offline/badges` — реальные фото из PDF (лицевая + оборотная), состав текста, пример +- Страница `/offline/navigation` — макеты из PDF (Кабинет 04, карточка врача), фото дверей с номерами (13, 31), указатели по этажам +- Страница `/offline/transport` — макет трамвая из PDF (оба вида, реальный рендер), таблица зон, цвета Oracal +- Страница `/offline/print` — убрана из навигации (нет данных из брендбука) +- Sidebar: убраны «скоро» для Цветов, Типографики и всех страниц Оффлайн кроме Печати - Версия обновлена до **Sprint 2 · v0.2.0** - **Деплой на Vercel:** https://web-oclinica.vercel.app (production, бесплатно) +- **Тайтлы страниц:** единый формат «Раздел. Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой» ### Технические решения Sprint 2 - Страница «Цвета» — `"use client"` для clipboard API и экспорта JSON - WCAG relative luminance вычисляется на клиенте, без зависимостей - DINPro отображается с фоллбэком Arial (лицензионный шрифт) -- Макеты (бейджи, трамвай, визитки) — чистый CSS/Tailwind без внешних зависимостей +- Реальные фото и макеты из PDF: PyMuPDF (fitz) — извлечение растровых изображений и рендер векторных страниц +- Рендер PDF страниц: 2.5–3.0x масштаб → JPEG, кроп до нужной области через Pillow -**Результат спринта:** Разделы «Цвета», «Типографика» и «Оффлайн элементы» полностью готовы. +**Результат спринта:** Разделы «Цвета», «Типографика» и «Оффлайн элементы» полностью готовы с реальными материалами из брендбука. ---