| 1 | # Режимы интерфейса Cascade IDE (обзор) |
| 2 | |
| 3 | Краткое введение для UX, онбординга и ревью макетов. Полный контракт данных, TOML и загрузчика — в **[ADR 0010: UI modes in TOML](../adr/0010-ui-modes-toml-configuration.md)**. |
| 4 | |
| 5 | ## Что переключает пользователь |
| 6 | |
| 7 | - **Строка режима (`UiMode`)** — id пресета: что показывается в комбо и в бейдже тулбара (`Focus`, `Balanced`, `Power`, `AgentChat`, `Debug`, `Flight`, …). Список пунктов меню задаётся **`UiModes/index.toml`** (шипнутый набор рядом с exe). |
| 8 | - **Семья режима (`UiModeFamily`)** — продуктовая ось для кода и XAML: Focus / Balanced / Power / AgentChat / Debug / **Flight** (полигон раскладки; дефолты как у Balanced, см. `UiModes/Flight.toml`). Нужна, чтобы производный id (например кастомный пресет) вёл себя как «отладка» или «power», не сравнивая строку id по всему приложению. |
| 9 | |
| 10 | ## Где лежат данные |
| 11 | |
| 12 | | Что | Где | |
| 13 | |-----|-----| |
| 14 | | Порядок режимов в меню | `UiModes/index.toml` (`schema_version`, `modes`) | |
| 15 | | Раскладка и capabilities одного режима | `UiModes/<Id>.toml` | |
| 16 | | Общие числа хрома (сплиттеры, базовые ширины чата по правилам семей и т.д.) | `UiModes/workspace.toml` | |
| 17 | | Запасные значения, если файлов нет | код: `UiModeLayoutRegistry`, `UiModeCatalog` | |
| 18 | |
| 19 | Наследование между режимами (`inherits`), мердж capabilities и порядок **`family`** — только в ADR 0010. |
| 20 | |
| 21 | ## Как это попадает в UI |
| 22 | |
| 23 | - **ViewModel:** вычисляемое **`UiModeFamily`** из нормализованного `UiMode` (резолвер + каталог TOML). |
| 24 | - **Тонкие флаги «что показать»** (Quick Actions, гипотезы, trace Power и т.д.) — объект **`Capabilities`** на VM (после мержа TOML и дефолтов по семье). |
| 25 | - **XAML:** вместо старых булевых `Is*Mode` — привязки к **`UiModeFamily`** через конвертеры **`UiModeFamilyEq`** / **`UiModeFamilyNe`** и параметр (`Power`, `Focus`, …). Пример: компактная полоса IDE Health под редактором — когда семья **не** Power (`IdeHealthStripView`). |
| 26 | |
| 27 | ## Связанные UX-документы |
| 28 | |
| 29 | - Макет окна и имена зон: **`cascade-ide-ui-layout-v1.md`** |
| 30 | - Карта «концепт → код»: **`concept-to-implementation-map-v1.md`** |
| 31 | |
| 32 | *Версия: 2026-04.* |
| 33 | |