Files
workbuddy_skills/open-design/design-systems/ibm/DESIGN-ru.md
T

335 lines
32 KiB
Markdown
Raw Normal View History

# Design System Inspired by IBM
> Category: Медиа и потребительский сектор
> Корпоративные технологии. Дизайн-система Carbon, структурированная синяя палитра.
## 1. Визуальная тема и атмосфера
Сайт IBM — это цифровое воплощение корпоративного авторитета, выстроенного на дизайн-системе Carbon: настолько методично структурированном языке дизайна, что он читается как инженерная спецификация, отрендеренная в виде веб-страницы. Страница строится на жёстком дуализме: яркий белый (`#ffffff`) холст с почти чёрным (`#161616`) текстом, пронизанный единственным неизменным акцентом — IBM Blue 60 (`#0f62fe`). Это не игривый минимализм технологического стартапа; это корпоративная точность, дистиллированная в пиксели. Каждый элемент существует внутри жёсткой сетки Carbon 2x, каждый цвет привязан к семантическому токену, каждое значение отступа привязывается к базовой единице 8px.
Шрифтовое семейство IBM Plex — основа системы. IBM Plex Sans с начертанием Light (300) для заголовков создаёт неожиданно лёгкое, почти изысканное качество при больших размерах — намеренный контрапункт корпоративной серьёзности IBM. При размерах основного текста начертание Regular (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 у основных кнопок — подчёркнуто прямоугольные, без смягчения
## 2. Цветовая палитра и роли
### Основные цвета
- **IBM Blue 60** (`#0f62fe`): Единственный интерактивный цвет. Основные кнопки, ссылки, состояния фокуса, активные индикаторы. Это единственный хроматический оттенок в основной UI-палитре.
- **White** (`#ffffff`): Фон страницы, поверхности карточек, текст кнопок на синем фоне, `--cds-background`.
- **Gray 100** (`#161616`): Основной текст, заголовки, тёмные фоны поверхностей, навбар, подвал. `--cds-text-primary`.
### Нейтральная шкала (семейство Gray)
- **Gray 100** (`#161616`): Основной текст, заголовки, тёмный UI-chrome, фон подвала.
- **Gray 90** (`#262626`): Второстепенные тёмные поверхности, состояния hover на тёмных фонах.
- **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`): Состояние hover для поверхностей Gray 10.
### Интерактивные цвета
- **Blue 60** (`#0f62fe`): Основные интерактивные — кнопки, ссылки, фокус. `--cds-link-primary`, `--cds-button-primary`.
- **Blue 70** (`#0043ce`): Состояние hover для ссылок. `--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`
- **Serif** (ограниченное использование): `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 | Второстепенный hero, адаптивный резерв |
| 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 | Декоративный mono в hero-секции |
### Принципы
- **Лёгкое начертание для дисплейных размеров**: Выразительный типовой набор Carbon использует насыщенность 300 (Light) при 42px и выше. Это создаёт характерное напряжение — контент говорит с корпоративным авторитетом, тогда как сами буквы шепчут с типографической лёгкостью.
- **Микроинтервал при малых размерах**: Межбуквенный интервал 0.16px при 14px и 0.32px при 12px. Эти кажущиеся незначительными значения — секретное оружие Carbon для удобочитаемости при компактных размерах: они слегка открывают плотные буквы IBM Plex.
- **Три функциональных насыщенности**: 300 (дисплейный/выразительный), 400 (основной текст/чтение), 600 (акцент/UI-метки). Насыщенность 700 намеренно отсутствует в производственной типографической шкале.
- **Продуктивный vs. Выразительный**: Продуктивные наборы используют более тесные межстрочные интервалы (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)
- Те же padding и radius, что у основной
**Третичная кнопка (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: нет на боках/сверху — `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
- Вспомогательный текст: 12px, Gray 60
- Placeholder: Gray 60 (`#6f6f6f`)
- Border-radius: 0px (сверху) — поля ввода с острыми углами
### Навигация
- Background: `#161616` (Gray 100) — тёмная шапка на всю ширину
- Height: 48px
- Логотип: логотип IBM из 8 полос, белый на тёмном, выровнен по левому краю
- Ссылки: 14px IBM Plex Sans, насыщенность 400, `#c6c6c6` (Gray 30) по умолчанию
- Link hover: `#ffffff` текст
- Активная ссылка: `#ffffff` с индикатором нижней рамки
- Переключатель платформ: горизонтальные вкладки, выровненные по левому краю
- Поиск: поле поиска с выдвижением по клику на иконку
- Мобильный: гамбургер с панелью, выезжающей слева
### Ссылки
- По умолчанию: `#0f62fe` (Blue 60) без подчёркивания
- Hover: `#0043ce` (Blue 70) с подчёркиванием
- Посещённые: остаются Blue 60 (состояние посещённой ссылки не меняется)
- Встроенные ссылки: подчёркнуты по умолчанию в основном тексте
### Характерные компоненты
**Блок контента (Hero/Feature)**
- Чередующиеся полосы фона white/gray-10 на всю ширину
- Заголовок выровнен по левому краю с дисплейным шрифтом 60px или 48px
- CTA как синяя основная кнопка со стрелочной иконкой
- Изображение/иллюстрация выровнены по правому краю или располагаются ниже на мобильных
**Tile (кликабельная карточка)**
- Background: `#f4f4f4` или `#ffffff`
- Нижняя рамка на всю ширину или смена фона при hover
- Иконка стрелки в правом нижнем углу при hover
- Без тени — плоскость и есть идентичность
**Tag / Label**
- 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 (минимально используемый отступ)
- Внутренний padding компонентов: обычно 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` по нижнему краю | Активное поле ввода, индикатор активной вкладки |
**Философия теней**: Carbon намеренно избегает теней. IBM добиваетсяглубины прежде всего через наслоение цветов фона — укладывая поверхности с прогрессивно темнеющими серыми вместо добавления box-shadow. Это создаёт плоскую, вдохновлённую печатью эстетику, где иерархия передаётся значением цвета, а не имитацией света. Тени зарезервированы исключительно для плавающих элементов (выпадающие меню, подсказки, модалки), где элемент действительно перекрывает контент. Такая сдержанность придаёт редкой тени значимый эффект — когда что-то парит в 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 и асимметричный padding для размещения иконки
- Применять 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 квадрат
- Пункты мобильного меню: строки на всю ширину по 48px
### Стратегия сворачивания
- Hero: дисплейный шрифт 60px → 42px → заголовок 32px по мере сужения viewport
- Навигация: полная горизонтальная шапка → гамбургер с выдвигающейся панелью
- Сетка: 4 колонки → 2 колонки → одна колонка
- Тайлы/карточки: горизонтальная сетка → вертикальный стек
- Изображения: сохранение соотношения сторон, max-width 100%
- Подвал: многоколоночные группы ссылок → единый столбец в стеке
- Отступы секций: 48px → 32px → 16px
### Поведение изображений
- Адаптивные изображения с `max-width: 100%`
- Иллюстрации продукта масштабируются пропорционально
- Hero-изображения могут переходить от расположения бок о бок к размещению в стек ниже
- Визуализации данных сохраняют соотношение сторон с горизонтальной прокруткой на мобильных
## 9. Руководство по промптам для агента
### Быстрый справочник цветов
- Основной CTA: IBM Blue 60 (`#0f62fe`)
- Background: White (`#ffffff`)
- Текст заголовков: Gray 100 (`#161616`)
- Основной текст: Gray 100 (`#161616`)
- Второстепенный текст: Gray 70 (`#525252`)
- Поверхность/карточка: Gray 10 (`#f4f4f4`)
- Рамка: Gray 30 (`#c6c6c6`)
- Ссылка: Blue 60 (`#0f62fe`)
- Ссылка hover: Blue 70 (`#0043ce`)
- Кольцо фокуса: Blue 60 (`#0f62fe`)
- Ошибка: Red 60 (`#da1e28`)
- Успех: 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, padding 14px 63px 14px 15px)."
- "Спроектируй карточку-тайл: фон #f4f4f4, border-radius 0px, padding 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, горизонтальный padding 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. Активный: #ffffff с нижней рамкой 2px."
- "Создай компонент тега: фон Blue 10 (#edf5ff), текст Blue 60 (#0f62fe), padding 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 — универсальная высота интерактивных элементов