一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
336 lines
31 KiB
Markdown
336 lines
31 KiB
Markdown
# Design System Inspired by IBM
|
||
|
||
> Category: Медіа та споживачі
|
||
> Корпоративні технології. Дизайн-система Carbon, структурована синя палітра.
|
||
|
||
## 1. Візуальна тема та атмосфера
|
||
|
||
Сайт IBM — це цифрове втілення корпоративного авторитету, побудоване на дизайн-системі Carbon — мові дизайну настільки методично впорядкованої, що вона читається як інженерна специфікація, відтворена у вигляді веб-сторінки. Сторінка функціонує на принципі різкої дуальності: яскраво-біле (`#ffffff`) полотно з майже чорним (`#161616`) текстом, пронизане єдиним незмінним акцентом — IBM Blue 60 (`#0f62fe`). Це не грайливий мінімалізм технологічного стартапу; це корпоративна точність, дистильована у пікселі. Кожен елемент існує в рамках жорсткої сітки 2x Carbon, кожен колір відповідає семантичному токену, кожне значення відступу прив'язується до базового модуля 8px.
|
||
|
||
Сімейство шрифтів IBM Plex є хребтом системи. IBM Plex Sans у світлому накресленні (300) для відображення заголовків створює несподівано повітряну, майже делікатну якість у великих розмірах — навмисний контрапункт корпоративній вазі IBM. У розмірах основного тексту звичайне накреслення (400) з міжсимвольним інтервалом 0.16px у підписах розміром 14px вводить ретельне мікротрекінгування, яке робить текст Carbon відчутно спроектованим, а не просто набраним. IBM Plex Mono призначений для коду, даних і технічних міток, завершуючи тріо сімейства поряд із рідко використовуваним IBM Plex Serif.
|
||
|
||
Те, що визначає візуальну ідентичність IBM поза монохромно-синьою схемою, — це покладання на систему компонентних токенів Carbon. Кожен інтерактивний стан відповідає CSS-змінній з префіксом `--cds-` (Carbon Design System). Кнопки не мають захардкоджених кольорів; вони посилаються на `--cds-button-primary`, `--cds-button-primary-hover`, `--cds-button-primary-active`. Така токенізована архітектура означає, що весь візуальний шар є лише тонкою оболонкою над глибоко систематизованим фундаментом — дизайновим еквівалентом добре типізованого API.
|
||
|
||
**Ключові характеристики:**
|
||
- IBM Plex Sans у накресленні 300 (Light) для відображення — корпоративна вагомість через типографічну стриманість
|
||
- IBM Plex Mono для коду та технічного вмісту зі стабільним міжсимвольним інтервалом 0.16px у малих розмірах
|
||
- Єдиний акцентний колір: IBM Blue 60 (`#0f62fe`) — кожен інтерактивний елемент, кожен CTA, кожне посилання
|
||
- Система токенів Carbon (`--cds-*`), що керує всіма семантичними кольорами та забезпечує перемикання теми на рівні змінних
|
||
- Сітка відступів 8px зі суворим дотриманням — жодних довільних значень, все вирівнюється
|
||
- Пласкі картки без рамок на фоні `#f4f4f4` Gray 10 — глибина через нашарування фонових кольорів, а не тіні
|
||
- Поля введення з нижньою рамкою (не у вигляді прямокутника) — фірмовий патерн форм Carbon
|
||
- 0px border-radius на основних кнопках — без жодного пом'якшення, повністю прямокутні
|
||
|
||
## 2. Кольорова палітра та ролі
|
||
|
||
### Основні
|
||
- **IBM Blue 60** (`#0f62fe`): Єдиний інтерактивний колір. Основні кнопки, посилання, стани фокусу, активні індикатори. Це єдиний хроматичний відтінок у ключовій палітрі UI.
|
||
- **White** (`#ffffff`): Фон сторінки, поверхні карток, текст кнопки на синьому фоні, `--cds-background`.
|
||
- **Gray 100** (`#161616`): Основний текст, заголовки, темний фон поверхонь, навігаційна панель, підвал. `--cds-text-primary`.
|
||
|
||
### Нейтральна шкала (сімейство сірих)
|
||
- **Gray 100** (`#161616`): Основний текст, заголовки, темне оздоблення UI, фон підвалу.
|
||
- **Gray 90** (`#262626`): Вторинні темні поверхні, стани наведення на темному тлі.
|
||
- **Gray 80** (`#393939`): Третинне темне, активні стани.
|
||
- **Gray 70** (`#525252`): Вторинний текст, допоміжний текст, описи. `--cds-text-secondary`.
|
||
- **Gray 60** (`#6f6f6f`): Текст-заповнювач, відключений текст.
|
||
- **Gray 50** (`#8d8d8d`): Відключені іконки, приглушені мітки.
|
||
- **Gray 30** (`#c6c6c6`): Рамки, розділові лінії, нижні рамки полів введення. `--cds-border-subtle`.
|
||
- **Gray 20** (`#e0e0e0`): Ледь помітні рамки, контури карток.
|
||
- **Gray 10** (`#f4f4f4`): Вторинний фон поверхні, заливка карток, рядки, що чергуються. `--cds-layer-01`.
|
||
- **Gray 10 Hover** (`#e8e8e8`): Стан наведення для поверхонь Gray 10.
|
||
|
||
### Інтерактивні
|
||
- **Blue 60** (`#0f62fe`): Основний інтерактивний — кнопки, посилання, фокус. `--cds-link-primary`, `--cds-button-primary`.
|
||
- **Blue 70** (`#0043ce`): Стан наведення на посилання. `--cds-link-primary-hover`.
|
||
- **Blue 80** (`#002d9c`): Активний/натиснутий стан для синіх елементів.
|
||
- **Blue 10** (`#edf5ff`): Поверхня з синім відтінком, фон виділеного рядка.
|
||
- **Focus Blue** (`#0f62fe`): `--cds-focus` — рамка 2px inset на сфокусованих елементах.
|
||
- **Focus Inset** (`#ffffff`): `--cds-focus-inset` — біле внутрішнє кільце для фокусу на темному тлі.
|
||
|
||
### Службові та статусні
|
||
- **Red 60** (`#da1e28`): Помилка, небезпека. `--cds-support-error`.
|
||
- **Green 50** (`#24a148`): Успіх. `--cds-support-success`.
|
||
- **Yellow 30** (`#f1c21b`): Попередження. `--cds-support-warning`.
|
||
- **Blue 60** (`#0f62fe`): Інформаційний. `--cds-support-info`.
|
||
|
||
### Темна тема (тема Gray 100)
|
||
- **Background**: Gray 100 (`#161616`). `--cds-background`.
|
||
- **Layer 01**: Gray 90 (`#262626`). Поверхні карток і контейнерів.
|
||
- **Layer 02**: Gray 80 (`#393939`). Підняті поверхні.
|
||
- **Text Primary**: Gray 10 (`#f4f4f4`). `--cds-text-primary`.
|
||
- **Text Secondary**: Gray 30 (`#c6c6c6`). `--cds-text-secondary`.
|
||
- **Border Subtle**: Gray 80 (`#393939`). `--cds-border-subtle`.
|
||
- **Interactive**: Blue 40 (`#78a9ff`). Посилання та інтерактивні елементи стають світлішими для забезпечення контрастності.
|
||
|
||
## 3. Правила типографіки
|
||
|
||
### Сімейство шрифтів
|
||
- **Основний**: `IBM Plex Sans`, з запасними варіантами: `Helvetica Neue, Arial, sans-serif`
|
||
- **Моноширинний**: `IBM Plex Mono`, з запасними варіантами: `Menlo, Courier, monospace`
|
||
- **Серифний** (обмежене використання): `IBM Plex Serif`, для редакційних/виразних контекстів
|
||
- **Іконковий шрифт**: `ibm_icons` — фірмові іконкові гліфи розміром 20px
|
||
|
||
### Ієрархія
|
||
|
||
| Роль | Шрифт | Розмір | Насиченість | Висота рядка | Міжсимвольний інтервал | Примітки |
|
||
|------|------|------|--------|-------------|----------------|-------|
|
||
| Display 01 | IBM Plex Sans | 60px (3.75rem) | 300 (Light) | 1.17 (70px) | 0 | Максимальний вплив, світле накреслення для елегантності |
|
||
| Display 02 | IBM Plex Sans | 48px (3.00rem) | 300 (Light) | 1.17 (56px) | 0 | Вторинний герой, адаптивний запасний варіант |
|
||
| Heading 01 | IBM Plex Sans | 42px (2.63rem) | 300 (Light) | 1.19 (50px) | 0 | Виразний заголовок |
|
||
| Heading 02 | IBM Plex Sans | 32px (2.00rem) | 400 (Regular) | 1.25 (40px) | 0 | Заголовки розділів |
|
||
| Heading 03 | IBM Plex Sans | 24px (1.50rem) | 400 (Regular) | 1.33 (32px) | 0 | Назви підрозділів |
|
||
| Heading 04 | IBM Plex Sans | 20px (1.25rem) | 600 (Semibold) | 1.40 (28px) | 0 | Назви карток, заголовки функцій |
|
||
| Heading 05 | IBM Plex Sans | 20px (1.25rem) | 400 (Regular) | 1.40 (28px) | 0 | Більш легкі заголовки карток |
|
||
| Body Long 01 | IBM Plex Sans | 16px (1.00rem) | 400 (Regular) | 1.50 (24px) | 0 | Стандартний текст для читання |
|
||
| Body Long 02 | IBM Plex Sans | 16px (1.00rem) | 600 (Semibold) | 1.50 (24px) | 0 | Виділений основний текст, мітки |
|
||
| Body Short 01 | IBM Plex Sans | 14px (0.88rem) | 400 (Regular) | 1.29 (18px) | 0.16px | Компактний основний текст, підписи |
|
||
| Body Short 02 | IBM Plex Sans | 14px (0.88rem) | 600 (Semibold) | 1.29 (18px) | 0.16px | Жирні підписи, елементи навігації |
|
||
| Caption 01 | IBM Plex Sans | 12px (0.75rem) | 400 (Regular) | 1.33 (16px) | 0.32px | Метадані, позначки часу |
|
||
| Code 01 | IBM Plex Mono | 14px (0.88rem) | 400 (Regular) | 1.43 (20px) | 0.16px | Вбудований код, термінал |
|
||
| Code 02 | IBM Plex Mono | 16px (1.00rem) | 400 (Regular) | 1.50 (24px) | 0 | Блоки коду |
|
||
| Mono Display | IBM Plex Mono | 42px (2.63rem) | 400 (Regular) | 1.19 (50px) | 0 | Декоративний моно-заголовок для hero-секції |
|
||
|
||
### Принципи
|
||
- **Світле накреслення у великих розмірах**: виразний набір шрифтів Carbon використовує накреслення 300 (Light) при розмірі 42px і більше. Це створює характерну напругу — вміст говорить з корпоративним авторитетом, тоді як літери шепочуть із типографічною легкістю.
|
||
- **Мікротрекінгування у малих розмірах**: міжсимвольний інтервал 0.16px при розмірі 14px і 0.32px при 12px. Ці на перший погляд незначні значення є секретною зброєю Carbon для читабельності в компактних розмірах — вони злегка розкривають тісні літери IBM Plex.
|
||
- **Три функціональні насиченості**: 300 (відображення/виразний), 400 (основний текст/читання), 600 (акцент/мітки UI). Накреслення 700 навмисно відсутнє у виробничій типографічній шкалі.
|
||
- **Продуктивний проти виразного**: продуктивні набори використовують щільніші міжрядкові інтервали (1.29) для насиченого UI. Виразні набори дихають більше (1.40-1.50) для маркетингового та редакційного контенту.
|
||
|
||
## 4. Стилізація компонентів
|
||
|
||
### Кнопки
|
||
|
||
**Основна кнопка (синя)**
|
||
- Background: `#0f62fe` (Blue 60) → `--cds-button-primary`
|
||
- Text: `#ffffff` (White)
|
||
- Padding: 14px 63px 14px 15px (асиметричний — місце для кінцевої іконки)
|
||
- Border: 1px solid transparent
|
||
- Border-radius: 0px (гострий прямокутник — фірмовий знак Carbon)
|
||
- Height: 48px (стандарт), 40px (компактний), 64px (виразний)
|
||
- Hover: `#0353e9` (Blue 60 Hover) → `--cds-button-primary-hover`
|
||
- Active: `#002d9c` (Blue 80) → `--cds-button-primary-active`
|
||
- Focus: `2px solid #0f62fe` inset + `1px solid #ffffff` inner
|
||
|
||
**Вторинна кнопка (сіра)**
|
||
- Background: `#393939` (Gray 80)
|
||
- Text: `#ffffff`
|
||
- Hover: `#4c4c4c` (Gray 70)
|
||
- Active: `#6f6f6f` (Gray 60)
|
||
- Такі самі відступи та радіус, як у основної
|
||
|
||
**Третинна кнопка (Ghost Blue)**
|
||
- Background: transparent
|
||
- Text: `#0f62fe` (Blue 60)
|
||
- Border: 1px solid `#0f62fe`
|
||
- Hover: текст `#0353e9` + відтінок Blue 10 на фоні
|
||
- Border-radius: 0px
|
||
|
||
**Ghost-кнопка**
|
||
- Background: transparent
|
||
- Text: `#0f62fe` (Blue 60)
|
||
- Padding: 14px 16px
|
||
- Border: none
|
||
- Hover: відтінок фону `#e8e8e8`
|
||
|
||
**Кнопка небезпеки**
|
||
- Background: `#da1e28` (Red 60)
|
||
- Text: `#ffffff`
|
||
- Hover: `#b81921` (Red 70)
|
||
|
||
### Картки та контейнери
|
||
- Background: `#ffffff` на білій темі, `#f4f4f4` (Gray 10) для підвищених карток
|
||
- Border: none (плаский дизайн — більшість карток без рамки або тіні)
|
||
- Border-radius: 0px (відповідає прямокутній естетиці кнопок)
|
||
- Hover: фон зміщується до `#e8e8e8` (Gray 10 Hover) для клікабельних карток
|
||
- Content padding: 16px
|
||
- Розмежування: нашарування фонових кольорів (white → gray 10 → white) замість тіней
|
||
|
||
### Поля введення та форми
|
||
- Background: `#f4f4f4` (Gray 10) — `--cds-field`
|
||
- Text: `#161616` (Gray 100)
|
||
- Padding: 0px 16px (лише горизонтальний)
|
||
- Height: 40px (стандарт), 48px (великий)
|
||
- Border: none з боків/зверху — `2px solid transparent` знизу
|
||
- Bottom-border active: `2px solid #161616` (Gray 100)
|
||
- Focus: `2px solid #0f62fe` (Blue 60) нижня рамка — `--cds-focus`
|
||
- Error: `2px solid #da1e28` (Red 60) нижня рамка
|
||
- Label: 12px IBM Plex Sans, міжсимвольний інтервал 0.32px, Gray 70
|
||
- Helper text: 12px, Gray 60
|
||
- Placeholder: Gray 60 (`#6f6f6f`)
|
||
- Border-radius: 0px (зверху) — поля введення мають гострі кути
|
||
|
||
### Навігація
|
||
- Background: `#161616` (Gray 100) — темна шапка на всю ширину
|
||
- Height: 48px
|
||
- Логотип: логотип IBM з 8 смужок, білий на темному тлі, вирівняний по лівому краю
|
||
- Links: 14px IBM Plex Sans, накреслення 400, `#c6c6c6` (Gray 30) за замовчуванням
|
||
- Link hover: текст `#ffffff`
|
||
- Active link: `#ffffff` з індикатором у вигляді нижньої рамки
|
||
- Перемикач платформ: горизонтальні вкладки, вирівняні ліворуч
|
||
- Пошук: поле пошуку, що висувається після кліку на іконку
|
||
- Мобільний: гамбургер-меню з панеллю, що висувається ліворуч
|
||
|
||
### Посилання
|
||
- Default: `#0f62fe` (Blue 60) без підкреслення
|
||
- Hover: `#0043ce` (Blue 70) з підкресленням
|
||
- Visited: залишається Blue 60 (стан відвіданого не змінюється)
|
||
- Вбудовані посилання: підкреслені за замовчуванням в основному тексті
|
||
|
||
### Характерні компоненти
|
||
|
||
**Контентний блок (Hero/Feature)**
|
||
- Фонові смуги на всю ширину, що чергуються: white/gray-10
|
||
- Заголовок вирівняний ліворуч, відображуваний шрифт 60px або 48px
|
||
- CTA у вигляді синьої основної кнопки зі стрілкою
|
||
- Зображення/ілюстрація вирівняна праворуч або знизу на мобільних
|
||
|
||
**Tile (клікабельна картка)**
|
||
- Background: `#f4f4f4` або `#ffffff`
|
||
- Нижня рамка на всю ширину або зміна фону при наведенні
|
||
- Іконка зі стрілкою в правому нижньому куті при наведенні
|
||
- Без тіні — пласкість і є ідентичністю
|
||
|
||
**Тег / Мітка**
|
||
- Background: контекстний колір з прозорістю 10% (наприклад, Blue 10, Red 10)
|
||
- Text: відповідний колір 60-го ступеня
|
||
- Padding: 4px 8px
|
||
- Border-radius: 24px (таблетка — виняток із правила 0px)
|
||
- Font: 12px, накреслення 400
|
||
|
||
**Сповіщальний банер**
|
||
- Смуга на всю ширину, як правило, на фоні Blue 60 або Gray 100
|
||
- Білий текст, 14px
|
||
- Іконка закриття/приховування, вирівняна праворуч
|
||
|
||
## 5. Принципи компонування
|
||
|
||
### Система відступів
|
||
- Базовий модуль: 8px (сітка Carbon 2x)
|
||
- Шкала відступів компонентів: 2px, 4px, 8px, 12px, 16px, 24px, 32px, 40px, 48px
|
||
- Шкала відступів компонування: 16px, 24px, 32px, 48px, 64px, 80px, 96px, 160px
|
||
- Мінімальний модуль: 8px (найменший придатний для використання відступ)
|
||
- Внутрішні відступи компонентів: як правило, 16px
|
||
- Проміжок між картками/тайлами: 1px (найтонший) або 16px (стандарт)
|
||
|
||
### Сітка та контейнер
|
||
- 16-колонкова сітка (система сіток Carbon 2x)
|
||
- Максимальна ширина контенту: 1584px (максимальна контрольна точка)
|
||
- Проміжки між колонками: 32px (16px на мобільних)
|
||
- Поля: 16px (мобільний), 32px (планшет і більше)
|
||
- Контент зазвичай займає 8-12 колонок для читабельної довжини рядка
|
||
- Секції на повну ширину чергуються з обмеженим контентом
|
||
|
||
### Філософія пустого простору
|
||
- **Функціональна щільність**: Carbon надає перевагу продуктивній щільності над великим пустим простором. Секції щільніші порівняно зі споживчими дизайн-системами — це відображає корпоративну ДНК IBM.
|
||
- **Зонування за фоновим кольором**: замість великих відступів між секціями IBM використовує кольори фону, що чергуються (white → gray 10 → white), для створення візуального розмежування з мінімальним вертикальним простором.
|
||
- **Стабільний ритм 48px**: основні переходи між секціями використовують вертикальний відступ 48px. Hero-секції можуть використовувати 80px–96px.
|
||
|
||
### Шкала радіусів рамок
|
||
- **0px**: Основні кнопки, поля введення, тайли, картки — домінуюче рішення. Carbon є принципово прямокутним.
|
||
- **2px**: Зрідка для невеликих інтерактивних елементів (теги)
|
||
- **24px**: Теги/мітки (форма таблетки — єдиний округлений виняток)
|
||
- **50%**: Кола аватарів, контейнери іконок
|
||
|
||
## 6. Глибина та підйом
|
||
|
||
| Рівень | Рішення | Використання |
|
||
|-------|-----------|-----|
|
||
| Flat (Level 0) | Без тіні, фон `#ffffff` | Стандартна поверхня сторінки |
|
||
| Layer 01 | Без тіні, фон `#f4f4f4` | Картки, тайли, секції, що чергуються |
|
||
| Layer 02 | Без тіні, фон `#e0e0e0` | Підняті панелі всередині Layer 01 |
|
||
| Raised | `0 2px 6px rgba(0,0,0,0.3)` | Спадні меню, підказки, меню переповнення |
|
||
| Overlay | `0 2px 6px rgba(0,0,0,0.3)` + темна накладка | Модальні вікна, бічні панелі |
|
||
| Focus | `2px solid #0f62fe` inset + `1px solid #ffffff` | Кільце клавіатурного фокусу |
|
||
| Bottom-border | `2px solid #161616` on bottom edge | Активне поле введення, індикатор активної вкладки |
|
||
|
||
**Філософія тіней**: Carbon навмисно уникає тіней. IBM досягає глибини насамперед через нашарування фонових кольорів — накладання поверхонь з дедалі темнішими відтінками сірого замість додавання box-shadows. Це створює пласку, натхненну друком естетику, де ієрархія передається через значення кольору, а не імітованим світлом. Тіні зарезервовані виключно для плаваючих елементів (спадних меню, підказок, модальних вікон), де елемент справді перекриває вміст. Ця стриманість надає рідкісним тіням значущого ефекту — коли щось «плаває» у Carbon, це важливо.
|
||
|
||
## 7. Що робити і чого уникати
|
||
|
||
### Робіть
|
||
- Використовуйте IBM Plex Sans накреслення 300 для відображуваних розмірів (42px+) — легкість є навмисною
|
||
- Застосовуйте міжсимвольний інтервал 0.16px для основного тексту 14px і 0.32px для підписів 12px
|
||
- Використовуйте border-radius 0px для кнопок, полів введення, карток і тайлів — прямокутники є системою
|
||
- Посилайтеся на назви токенів `--cds-*` під час реалізації (наприклад, `--cds-button-primary`, `--cds-text-primary`)
|
||
- Використовуйте нашарування фонових кольорів (white → gray 10 → gray 20) для глибини замість тіней
|
||
- Використовуйте нижню рамку (не повну рамку) для індикаторів полів введення
|
||
- Зберігайте стандартну висоту кнопки 48px і асиметричні відступи для розміщення іконок
|
||
- Застосовуйте Blue 60 (`#0f62fe`) як єдиний акцент — один синій, щоб керувати всіма
|
||
|
||
### Не робіть
|
||
- Не округляйте кути кнопок — радіус 0px є ідентичністю Carbon
|
||
- Не використовуйте тіні на картках або тайлах — пласкість і є сутністю
|
||
- Не вводьте додаткові акцентні кольори — система IBM є монохромною + синьою
|
||
- Не використовуйте накреслення 700 (Bold) — шкала зупиняється на 600 (Semibold)
|
||
- Не додавайте міжсимвольний інтервал для відображуваних текстів — трекінгування застосовується лише для 14px і нижче
|
||
- Не обрамляйте поля введення повними рамками — поля Carbon використовують лише нижню рамку
|
||
- Не використовуйте градієнтні фони — поверхні IBM є пласкими, однотонними кольорами
|
||
- Не відхиляйтеся від сітки відступів 8px — кожне значення повинно ділитися на 8 (з 2px і 4px для мікроналаштувань)
|
||
|
||
## 8. Адаптивна поведінка
|
||
|
||
### Контрольні точки
|
||
| Назва | Ширина | Ключові зміни |
|
||
|------|-------|-------------|
|
||
| Small (sm) | 320px | Одна колонка, гамбургер-навігація, поля 16px |
|
||
| Medium (md) | 672px | Починаються двоколонкові сітки, розширений контент |
|
||
| Large (lg) | 1056px | Повна навігація видима, сітки 3-4 колонки |
|
||
| X-Large (xlg) | 1312px | Максимальна щільність контенту, широкі компонування |
|
||
| Max | 1584px | Максимальна ширина контенту, по центру з полями |
|
||
|
||
### Цілі для торкання
|
||
- Висота кнопки: 48px стандарт, мінімум 40px (компактний)
|
||
- Посилання навігації: висота рядка 48px для торкання
|
||
- Висота поля введення: 40px стандарт, 48px великий
|
||
- Кнопки-іконки: область торкання 48px x 48px
|
||
- Елементи мобільного меню: рядки 48px на повну ширину
|
||
|
||
### Стратегія стиснення
|
||
- Hero: відображення 60px → 42px → заголовок 32px при звуженні вікна перегляду
|
||
- Навігація: повна горизонтальна шапка → гамбургер з панеллю, що висувається
|
||
- Сітка: 4 колонки → 2 колонки → одна колонка
|
||
- Тайли/картки: горизонтальна сітка → вертикальне складання
|
||
- Зображення: зберігати пропорції, max-width 100%
|
||
- Підвал: групи посилань у кількох колонках → складання в одну колонку
|
||
- Відступи секцій: 48px → 32px → 16px
|
||
|
||
### Поведінка зображень
|
||
- Адаптивні зображення з `max-width: 100%`
|
||
- Ілюстрації продуктів масштабуються пропорційно
|
||
- Hero-зображення можуть перейти від розміщення поруч до складання знизу
|
||
- Візуалізації даних зберігають пропорції з горизонтальним прокручуванням на мобільних
|
||
|
||
## 9. Посібник з підказок для агента
|
||
|
||
### Швидкий довідник кольорів
|
||
- Primary CTA: IBM Blue 60 (`#0f62fe`)
|
||
- Background: White (`#ffffff`)
|
||
- Heading text: Gray 100 (`#161616`)
|
||
- Body text: Gray 100 (`#161616`)
|
||
- Secondary text: Gray 70 (`#525252`)
|
||
- Surface/Card: Gray 10 (`#f4f4f4`)
|
||
- Border: Gray 30 (`#c6c6c6`)
|
||
- Link: Blue 60 (`#0f62fe`)
|
||
- Link hover: Blue 70 (`#0043ce`)
|
||
- Focus ring: Blue 60 (`#0f62fe`)
|
||
- Error: Red 60 (`#da1e28`)
|
||
- Success: Green 50 (`#24a148`)
|
||
|
||
### Приклади підказок для компонентів
|
||
- "Створи hero-секцію на білому фоні. Заголовок 60px IBM Plex Sans накреслення 300, line-height 1.17, колір #161616. Підзаголовок 16px накреслення 400, line-height 1.50, колір #525252, max-width 640px. Синя CTA-кнопка (фон #0f62fe, текст #ffffff, border-radius 0px, висота 48px, відступи 14px 63px 14px 15px)."
|
||
- "Спроектуй тайл-картку: фон #f4f4f4, border-radius 0px, відступ 16px. Назва 20px IBM Plex Sans накреслення 600, line-height 1.40, колір #161616. Основний текст 14px накреслення 400, letter-spacing 0.16px, line-height 1.29, колір #525252. Hover: фон змінюється на #e8e8e8."
|
||
- "Побудуй поле форми: фон #f4f4f4, border-radius 0px, висота 40px, горизонтальний відступ 16px. Мітка зверху 12px накреслення 400, letter-spacing 0.32px, колір #525252. Нижня рамка: 2px solid transparent за замовчуванням, 2px solid #0f62fe при фокусі. Placeholder: #6f6f6f."
|
||
- "Створи темну навігаційну панель: фон #161616, висота 48px. Логотип IBM білий, вирівняний ліворуч. Посилання 14px IBM Plex Sans накреслення 400, колір #c6c6c6. Hover: текст #ffffff. Active: #ffffff з нижньою рамкою 2px."
|
||
- "Побудуй компонент тегу: фон Blue 10 (#edf5ff), текст Blue 60 (#0f62fe), відступ 4px 8px, border-radius 24px, 12px IBM Plex Sans накреслення 400."
|
||
|
||
### Посібник з ітерацій
|
||
1. Завжди використовуй border-radius 0px для кнопок, полів введення та карток — це обов'язкова вимога Carbon
|
||
2. Міжсимвольний інтервал лише у малих розмірах: 0.16px при 14px, 0.32px при 12px — ніколи для відображуваного тексту
|
||
3. Три насиченості: 300 (відображення), 400 (основний текст), 600 (акцент) — без жирного
|
||
4. Blue 60 — єдиний акцентний колір — не вводь вторинних акцентних відтінків
|
||
5. Глибина досягається нашаруванням фонових кольорів (white → #f4f4f4 → #e0e0e0), а не тінями
|
||
6. Поля введення мають лише нижню рамку, ніколи повну
|
||
7. Використовуй префікс `--cds-` для іменування токенів для сумісності з Carbon
|
||
8. 48px — стандартна висота інтерактивного елементу
|