Темы
Темы относятся к терминальному интерфейсу: их выбор лежит в cli.json, а не
в opencode.json.
Выбор темы
Заголовок раздела «Выбор темы»В TUI: Ctrl+P → Open settings → Theme; быстрее — /themes.
То же задаётся в глобальном cli.json:
{ "theme": { "name": "tokyonight", "mode": "system" }}| Значение | Поведение |
|---|---|
system |
следовать светлому или тёмному режиму терминала |
dark |
всегда тёмная тема |
light |
всегда светлая тема |
Если своя тема описывает только один режим, при запросе второго используется он.
Встроенные темы
Заголовок раздела «Встроенные темы»Встроенных тем больше двух десятков — catppuccin, dracula, github,
gruvbox, kanagawa, nord, rosepine, solarized, tokyonight,
zenburn и другие; полный список — в /themes. Тема system появляется,
когда ZubrCode умеет читать палитру вашего терминала, и берёт цвета из его
переднего плана, фона и ANSI-палитры.
Свои темы
Заголовок раздела «Свои темы»Файл темы кладётся в глобальный каталог тем или в проектный:
| Область | Каталог |
|---|---|
| Глобально | ~/.config/zubrcode/themes/ |
| Проект | .opencode/themes/ |
Читаются только .json; имя файла без расширения становится именем темы
(ocean.json → тема ocean). Тема, лежащая ближе к текущей папке,
перекрывает глобальную или родительскую с тем же именем. После добавления
файла перезапустите ZubrCode и выберите тему в /themes.
Формат темы
Заголовок раздела «Формат темы»Тема описывает общее дерево токенов base и хотя бы одну палитру light или
dark. Режимы наследуются только от base этого же файла. Фрагмент:
{ "base": { "text": { "base": "#16324f", "muted": "$hue.neutral.400" }, "background": { "base": "transparent" } }, "light": { "hue": {} }, "dark": { "hue": {}, "text": { "base": "#d8f3ff" } }}Цвет — hex (3, 4, 6 или 8 цифр), transparent или ссылка $…; ссылки на
оттенки — в форме $hue.<имя>.<шаг>.
Оттенки
Заголовок раздела «Оттенки»Переопределение псевдонима оттенка меняет целую семью цветов:
| Вид | Значения |
|---|---|
| Базовые | gray, red, orange, yellow, green, cyan, blue, purple |
| Псевдонимы | accent, interactive, neutral |
| Шаги | 100…900 |
Шаги идут по контрасту режима: в светлой теме 100 — тёмный, 900 —
светлый; в тёмной наоборот. categorical задаёт упорядоченные оттенки для
агентов и других повторяющихся элементов.
Группы base: text (базовый, приглушённый, действия, формы, обратная
связь), background, border, scrollbar, diff (добавленное, удалённое,
контекст, подсветка, номера строк), syntax (подсветка кода) и markdown.
Состояния кнопок и полей — $hovered, $focused, $pressed, $selected,
$disabled.
Панели, диалоги и меню берут глубину из background.raised; у диалогов есть
контекстная поверхность @dialog с теми же группами токенов.