feat(sprint-5): document all blocks from perm.oclinica.ru/lor

Created 8 pages from real site (screenshot source):
- /components/navigation — header: top-bar, logo, nav menu (8 items)
- /blocks/hero         — hero banner: #b8e6ed bg, 3 checkmarks, CTA button
- /blocks/ceo          — intro text: clinic description + Q&A stimuli
- /blocks/doctors      — doctors: 3 stats (#dff0fa) + 6 card grid
- /blocks/reviews      — reviews carousel: #eef4d1 bg, decorative quote
- /blocks/contact-forms — 2 forms: "Будьте здоровы!" (#b8e6ed) + "Стоимость"
- /blocks/news         — 4 news cards row + "Все новости" button
- /blocks/contact      — footer: 4 link columns + logo + address + hours

globals.css: added .bb-nav-link:hover (#0089c3)
Sidebar: all blocks/navigation unlocked (removed soon), v0.5.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
AR 15 M4
2026-03-23 00:05:10 +05:00
parent 5b1ace962a
commit d4d86e6343
10 changed files with 2020 additions and 10 deletions
+257
View File
@@ -0,0 +1,257 @@
import type { Metadata } from "next";
import { LlmBlock, LlmSection, LlmTable, LlmRules } from "@/components/llm/LlmBlock";
export const metadata: Metadata = {
title: "Подвал (Footer). Цифровой брендбук Клиники ухо, горло, нос им. проф. Е.Н.Оленевой",
};
const FOOTER_COLUMNS = [
{
title: "О клинике",
links: ["Лицензия", "Миссия", "Врачи", "Вакансии", "История", "Образовательная деятельность", "При инфо"],
},
{
title: "Заболевания",
links: ["Ринит", "Отит", "Гайморит", "Тонзиллит", "Полипы носа", "Искривление перегородки"],
},
{
title: "Вопрос-ответ",
links: [
"Что нужно знать до операции на ухо",
"Что нужно знать до операции на нос",
"Отзывы до и после лечения у детей",
"Что нужно знать при лечении у детей",
],
},
{
title: "Операции",
links: ["Септопластика", "Турбинопластика", "Тонзиллэктомия", "Аденотомия", "Тимпанопластика", "Мирингопластика"],
},
];
const LLM_FOOTER_TEXT = `
БЛОК: Подвал сайта (Footer)
Источник: perm.oclinica.ru/lor — нижняя часть страницы
Версия: v1.0
СТРУКТУРА ПОДВАЛА:
1. ОСНОВНАЯ ЧАСТЬ — 4 колонки ссылок:
Колонка 1 «О клинике»: Лицензия, Миссия, Врачи, Вакансии, История, Образовательная деятельность
Колонка 2 «Заболевания»: Ринит, Отит, Гайморит, Тонзиллит, Полипы носа, Искривление перегородки
Колонка 3 «Вопрос-ответ»: 4 вопроса об операциях и лечении
Колонка 4 «Операции»: Септопластика, Турбинопластика, Тонзиллэктомия, Аденотомия и др.
2. НИЖНЯЯ ПОЛОСА:
Левая: Логотип «КЛИНИКА УХО ГОРЛО НОС ИМ. ПРОФ. Е.Н.ОЛЕНЕВОЙ»
Центр:
— «Мы находимся по адресу: Пермь, ул. Г. Звезда...»
— Иконки соцсетей: VK, OK, YouTube, Telegram и другие
Правая: Часы работы:
— Пн-пт: 9:0021:00
— Сб: 9:0018:00
— Вс: выходной
— Вторая клиника часы отдельно
ЦВЕТА:
Фон подвала: #fff или светло-серый (#f8f9fa)
Заголовки колонок: #111827, font-weight 600
Ссылки: #53514e (--brand-073m), hover: #0089c3
Разделитель: border-top 1px solid #e5e7eb
Часы работы: #374151
ПРАВИЛА:
✓ 4 колонки ссылок в основной части
✓ Логотип в нижней полосе слева
✓ Адрес + соцсети в центре нижней полосы
✓ Часы работы справа
✕ Не менять структуру 4 колонок
`.trim();
export default function ContactFooterPage() {
return (
<div className="p-8 max-w-5xl mx-auto space-y-10">
{/* Заголовок страницы */}
<div>
<p
className="text-xs font-semibold uppercase tracking-widest mb-1"
style={{ color: "var(--brand-053m)" }}
>
Блоки
</p>
<h1 className="text-2xl font-bold mb-2" style={{ color: "var(--bb-text)" }}>
Подвал (Footer)
</h1>
<p className="text-sm" style={{ color: "var(--bb-text-muted)" }}>
Подвал сайта с perm.oclinica.ru 4 колонки ссылок, логотип, адрес, часы работы, соцсети.
</p>
</div>
{/* Живой пример */}
<section className="space-y-3">
<h2 className="font-semibold text-base" style={{ color: "var(--bb-text)" }}>
Живой пример
</h2>
<div
className="rounded-xl overflow-hidden"
style={{ border: "1px solid var(--bb-border)" }}
>
{/* 4 колонки ссылок */}
<div
className="grid grid-cols-4 gap-6 p-8"
style={{ background: "#f8f9fa", borderBottom: "1px solid #e5e7eb" }}
>
{FOOTER_COLUMNS.map((col) => (
<div key={col.title}>
<p className="font-semibold text-sm mb-3" style={{ color: "#111827" }}>
{col.title}
</p>
<ul className="space-y-1.5">
{col.links.map((link) => (
<li key={link}>
<a
href="#"
className="text-xs bb-nav-link"
style={{ color: "#53514e", textDecoration: "none" }}
>
{link}
</a>
</li>
))}
</ul>
</div>
))}
</div>
{/* Нижняя полоса */}
<div
className="flex items-start justify-between gap-6 px-8 py-5"
style={{ background: "#fff" }}
>
{/* Логотип */}
<div className="flex items-center gap-2 shrink-0">
<div
className="w-10 h-10 rounded-full flex items-center justify-center text-white font-bold"
style={{ background: "#0089c3" }}
>
</div>
<div>
<div
className="text-[10px] font-bold uppercase leading-tight"
style={{ color: "#53514e" }}
>
Клиника<br />ухо, горло, нос
</div>
<div className="text-[8px] leading-tight" style={{ color: "#9ca3af" }}>
им. проф. Е.Н.Оленевой
</div>
</div>
</div>
{/* Адрес и соцсети */}
<div className="text-center space-y-2">
<p className="text-xs" style={{ color: "#374151" }}>
Мы находимся по адресу: Пермь, ул. Г. Звезда, 31а
</p>
<div className="flex items-center justify-center gap-2">
{["VK", "OK", "YT", "TG"].map((s) => (
<a
key={s}
href="#"
className="text-[11px] px-2 py-1 rounded"
style={{
background: "var(--bb-sidebar-bg)",
border: "1px solid var(--bb-border)",
color: "var(--bb-text-muted)",
}}
>
{s}
</a>
))}
</div>
</div>
{/* Часы работы */}
<div className="text-right text-xs space-y-1" style={{ color: "#374151" }}>
<p className="font-semibold text-xs mb-1" style={{ color: "#111827" }}>
Часы работы:
</p>
<p>Пнпт: 9:0021:00</p>
<p>Сб: 9:0018:00</p>
<p>Вс: выходной</p>
</div>
</div>
</div>
</section>
{/* Колонки */}
<section className="space-y-3">
<h2 className="font-semibold text-base" style={{ color: "var(--bb-text)" }}>
Четыре колонки ссылок
</h2>
<div className="grid grid-cols-4 gap-3">
{FOOTER_COLUMNS.map((col) => (
<div
key={col.title}
className="rounded-xl p-3 space-y-1"
style={{ background: "var(--bb-sidebar-bg)", border: "1px solid var(--bb-border)" }}
>
<p className="font-semibold text-xs" style={{ color: "var(--bb-text)" }}>
{col.title}
</p>
<p className="text-[10px]" style={{ color: "var(--bb-text-muted)" }}>
{col.links.length} ссылок
</p>
</div>
))}
</div>
</section>
{/* LLM блок */}
<LlmBlock path="/blocks/contact" version="v1.0" specText={LLM_FOOTER_TEXT}>
<LlmSection title="Структура подвала" />
<LlmTable
headers={["Зона", "Содержимое", "Фон"]}
rows={[
["4 колонки ссылок", "О клинике / Заболевания / Вопрос-ответ / Операции", "#f8f9fa"],
["Нижняя полоса — лево", "Логотип клиники (иконка + текст)", "#fff"],
["Нижняя полоса — центр", "Адрес + иконки соцсетей (VK, OK, YT, TG)", "#fff"],
["Нижняя полоса — право", "Часы работы Пн–пт / Сб / Вс", "#fff"],
]}
/>
<LlmSection title="Часы работы" />
<LlmTable
headers={["День", "Часы"]}
rows={[
["Пн–пт", "9:0021:00"],
["Сб", "9:0018:00"],
["Вс", "выходной"],
]}
/>
<LlmSection title="Цвета" />
<LlmTable
headers={["Элемент", "Цвет", "Токен"]}
rows={[
["Заголовки колонок", "#111827, font-weight 600", "—"],
["Ссылки (default)", "#53514e", "--brand-073m"],
["Ссылки (hover)", "#0089c3", "--brand-053m"],
["Фон основной части", "#f8f9fa", "—"],
["Фон нижней полосы", "#ffffff", "—"],
["Разделитель", "1px solid #e5e7eb", "—"],
]}
/>
<LlmSection title="Правила" />
<LlmRules
rules={[
{ ok: true, text: "4 колонки: О клинике / Заболевания / Вопрос-ответ / Операции" },
{ ok: true, text: "Логотип в нижней полосе слева" },
{ ok: true, text: "Адрес и соцсети в центре" },
{ ok: true, text: "Часы работы справа" },
{ ok: false, text: "Не менять структуру и порядок 4 колонок" },
]}
/>
</LlmBlock>
</div>
);
}