diff --git a/apps/web/app/foundation/colors/page.tsx b/apps/web/app/foundation/colors/page.tsx
index ac89a99..131b755 100644
--- a/apps/web/app/foundation/colors/page.tsx
+++ b/apps/web/app/foundation/colors/page.tsx
@@ -102,6 +102,20 @@ const BRAND_COLORS = [
},
];
+/* ─── Цвета с сайта ────────────────────────────────────────────────── */
+// Источник: https://perm.oclinica.ru/sites/all/themes/clinic_bootstrap_mobile/css/style.css
+// Извлечены парсингом CSS: grep + python Counter по property/value, 2026-03-22
+const WEB_COLORS = [
+ { name: "Бежевый", hex: "#bf9975", usage: "Основной тёплый акцент, фоны, рамки, текст", count: 12, group: "Акценты" },
+ { name: "Серо-бирюзовый", hex: "#60959c", usage: "Основной холодный акцент, ссылки", count: 7, group: "Акценты" },
+ { name: "Бирюзовый", hex: "#63bac3", usage: "Фоны акцентных блоков, иконки", count: 4, group: "Акценты" },
+ { 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: "Фоны" },
+];
+
const CONTRAST_PAIRS = [
{ fg: "#ffffff", bg: "#5b7b87", label: "Белый на тёмном серо-голубом" },
{ fg: "#ffffff", bg: "#1b4c72", label: "Белый на тёмно-синем" },
@@ -245,6 +259,56 @@ function ContrastRow({ pair }: { pair: typeof CONTRAST_PAIRS[0] }) {
);
}
+function WebColorCard({ color }: { color: typeof WEB_COLORS[0] }) {
+ const { r, g, b } = hexToRgb(color.hex);
+ const { h, s, l } = rgbToHsl(r, g, b);
+ const isLight = l > 60;
+
+ return (
+
+
+
+ {color.group}
+
+
+ ×{color.count}
+
+
+
+
+ {color.name}
+
+
+ {color.usage}
+
+
+
+
+
+
+
+
+ );
+}
+
/* ─── Экспорт токенов ──────────────────────────────────────────────── */
function exportTokens() {
const tokens: Record> = { colors: {} };
@@ -348,7 +412,32 @@ export default function ColorsPage() {
- {/* 3. Применение */}
+ {/* 3. Цвета с сайта */}
+
+
+
+ Цвета с сайта
+
+
+ Реальные цвета, используемые на сайте oclinica.ru. Извлечены из CSS темы сайта.
+ Число применений показано в правом углу карточки.
+
+
+ CSS
+ perm.oclinica.ru/sites/all/themes/clinic_bootstrap_mobile/css/style.css
+
+
+
+ {WEB_COLORS.map(c => (
+
+ ))}
+
+
+
+ {/* 4. Применение */}
diff --git a/docs/TZ.md b/docs/TZ.md
index 88229d1..cd1f26b 100644
--- a/docs/TZ.md
+++ b/docs/TZ.md
@@ -530,7 +530,8 @@ vercel --prod --yes
| ОВ-03 | Нужна ли страница «Заболевание» как отдельный тип, или это подвид страницы «Услуга»? | Клиника | Sprint 9 |
| ОВ-04 | Список иконок — какую стороннюю библиотеку утвердить? (Lucide, Heroicons, и др.) | Совместно | Sprint 2 |
| ОВ-05 | ~~Нужен ли раздел «Логотип» в v1.0 или ждём вектор?~~ **Закрыт:** страница логотипа реализуется в Sprint 1 с PNG-версией; вектор будет добавлен позже | — | Закрыт |
-| ОВ-06 | ~~HEX-эквиваленты цветов Oracal~~ **Закрыт:** приблизительные HEX зафиксированы в Sprint 2 и подтверждены как рабочие (053M=#7ecfca, 073M=#5b7b87, 066M=#5bb5ad, 050M=#1b4c72, 081M=#c4a882, 080M=#5c2e0e). Точная калибровка — при получении физических образцов. | — | Закрыт |
+| ОВ-06 | ~~HEX-эквиваленты цветов Oracal~~ **Закрыт:** приблизительные HEX зафиксированы в Sprint 2 (053M=#7ecfca, 073M=#5b7b87, 066M=#5bb5ad, 050M=#1b4c72, 081M=#c4a882, 080M=#5c2e0e). Дополнительно — реальные цвета сайта извлечены из CSS (см. ОВ-07). Точная калибровка Oracal — при получении физических образцов. | — | Закрыт |
+| ОВ-07 | **Цвета сайта oclinica.ru** — CSS тема Drupal доступна по адресу: `https://perm.oclinica.ru/sites/all/themes/clinic_bootstrap_mobile/css/style.css`. Тема: `clinic_bootstrap_mobile`. Ключевые цвета извлечены парсингом (python + regex + Counter), 2026-03-22. Добавлены в раздел «Цвета с сайта» в брендбуке (`/foundation/colors`). Расхождение с Oracal-палитрой ожидаемо — цифровые адаптации под экран. | — | Закрыт |
---