Пресет связывает все три. Поля, оставленные пустыми, откатываются к значениям по умолчанию.
| Слой | Решает | Как это менять |
|---|---|---|
Theme |
Цвета, размеры, масштаб текста и форму всего, что рисует движок, — панелей кнопок, полей ввода, вкладок, графики переключателей | Напишите .tres вручную или создайте его через tools/make_theme.py |
GoSkin |
Форму всего, что рисует код, — стика, лицевых панелей быстрых слотов, кольца обучающей подсказки, чипов, скелетонов, разделителей, заголовков секций | Наследуйте его и переопределяйте только нужные методы |
GoIconSet |
Иконки по имени — 84 рисунка по умолчанию либо 16 гравированных рисунков средневекового набора поверх них. Текстурный пак или иконочный шрифт; вызывающий код в обоих случаях одинаков | Подайте свой набор или переопределите лишь несколько имён |
StyleBoxFlat угол бывает только скруглённым:
поставьте радиус в ноль — получите прямой угол; промежуточного нет. Диагонально срезанные углы,
одна утолщённая грань, внешнее свечение — движок не рисует ничего из этого. А стик и обучающая подсказка
рисуются в _draw(), куда тема не дотягивается вовсе.
Как выбрать
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
Эта одна строка меняет тему, скин и иконки. Из редактора это делается через
Project Settings → Gohud → Theme → Preset, из ресурса настроек — через GoConfig.preset.
Оставить одно поле своим
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons # ваши иконки, всё остальное — из пресета
Явно заданные theme, skin или icons берут верх над пресетом.
Четырнадцать встроенных пресетов
| Пресет | Панели | Скин · иконки |
|---|---|---|
default_dark · default_light | Скруглённые панели StyleBoxFlat на градуированной шкале теней; основные кнопки поднимаются и проседают при нажатии | GoSkin · 84 иконки по умолчанию |
scifi_dark · scifi_light | Панели GoStyleBoxCut со срезанными углами, неоновой гранью и свечением; фокусные метки GoStyleBoxBracket | GoSkinSciFi — шестиугольный стик · иконки по умолчанию |
medieval_dark · medieval_light | Кованые рамки GoStyleBoxMedieval — железо и кожа либо пергамент — с заклёпками и угловыми орнаментами на меню | GoSkinMedieval · 16 гравированных иконок поверх стандартных |
material_light · material_dark Новое | Material 3 Expressive для экранов приложений — кнопки-пилюли 40dp внутри области касания 48dp, диалоги 28dp, заливные карточки, поля с контуром, ползунок Expressive; компоненты приложений (панель навигации, верхняя панель, FAB, строка поиска, чипы, прогресс, выбор даты) следуют токенам компонентов M3 | GoSkinMaterial · стандартные иконки |
kids_light · kids_dark Новое | Для детей — коробка с игрушками: толстые контуры и плотный бортик под каждой клавишей, которая проседает при нажатии; утопленные поля ввода, вкладки-пузыри, желейные полосы; у каждого вида элементов свой цвет мелка, слоты-конфеты, значки-наклейки, радужный джойстик и разноцветные диаграммы. Размеры и шрифт проекта не меняются. | GoSkinKids · стандартные иконки |
arcade_light · arcade_dark Новое | Игровой автомат, нарисованный GoStyleBoxArcade: каждая клавиша раскрашена градиентом сверху вниз, белым бликом и бортиком, который проседает при нажатии, всё в тёмно-синем чернильном контуре, а подпись белая с чернильным контуром — зелёный основной цвет, синие клавиши, красная опасность, лавандовые маленькие клавиши. Толстые панели с цветной рамкой вокруг светлой середины; золотая лента заголовка и круглая красная клавиша закрытия у окон. | GoSkinArcade · стандартные иконки |
comic_light · comic_dark Новое | Кадры комикса, которые рисует GoStyleBoxComic: жирный чернильный контур и жёсткая тень на каждой панели, которая исчезает при нажатии; обведённые чернилами переключатели, флажки и ручки ползунков, жёлтая плашка заголовка у окон. Толщина контура, размер тени и то, видны ли тени вообще, — настройки GoConfig. | GoSkinComic · стандартные иконки |
Все четырнадцать рядом
Один и тот же экран галереи, где поменялось только имя пресета, — код виджетов не отличается ни на строку. Каждый снимок — телефон в книжной ориентации, 390×844.

default_dark
default_light
scifi_dark
scifi_light
medieval_dark
medieval_light
material_light
material_dark
kids_light
kids_dark
comic_light
comic_dark
arcade_light
arcade_darkСредневековье: железо, кожа и пергамент
medieval_dark соединяет тёмное железо и кожу со старым золотом. medieval_light
берёт пергамент и чернила. Оба используют GoSkinMedieval, те же виджеты и 16 оригинальных
иконок с гравировкой; иконки навигации откатываются к исходному набору.
GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# Или: GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)
Выбирайте пресет до создания интерфейса. Явные переопределения GoConfig.theme,
skin или icons по-прежнему имеют приоритет. Откройте
res://addons/gohud/examples/medieval/medieval.tscn и нажмите F6 — увидите рабочий
лист персонажа, сумку и журнал заданий. Его кнопки переключают варианты и открывают описание предмета.


У рамок меню есть заклёпка и небольшой угловой орнамент; всегда видимый HUD сохраняет сдержанную грань.
Здоровье, мана и выносливость заливаются красным, синим и оливковым. Cinzel ограничен заголовками и подзаголовками;
основной текст сохраняет шрифт проекта или шрифт по умолчанию. Лицензия встроенного шрифта лежит в
assets/fonts/cinzel/OFL.txt.
Гравированный набор перерисовывает bag, book, box, coin, crown,
flag, heart, key, map, potion, shield,
star, sword и user, а также добавляет scroll и seal.
Любое другое имя откатывается к набору по умолчанию, поэтому close и settings сохраняют свои
стандартные рисунки в любом пресете. Cinzel покрывает латиницу; для локализованных заголовков задайте собственный шрифт
через shape.fonts.
DPITexture; что настоящий быстрый слот использует скин;
что изменение регуляторов у копии скина доходит до слота, не трогая пресет; и что обратное переключение
восстанавливает геометрию стандартного и sci-fi вариантов.
Сделайте собственное королевство
python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# Отредактируйте themes/palettes/kingdom.json, затем:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# В GDScript, до создания виджетов:
GoUi.use_preset(&"kingdom")
JSON-темы могут наследовать другие JSON-темы. Пропущенные значения сохраняют настройки родителя; циклическое наследование отвергается. Сгенерированный пресет сохраняет набор иконок родителя.
| Настройка | Действие |
|---|---|
shape.material | 0: железо · 1: кожа · 2: пергамент. Управляет фактурой поверхности. |
shape.grain_alpha | Непрозрачность фактуры. Поставьте 0 для чистой поверхности. |
shape.ornament_scale · shape.bevel_strength | Размер углового орнамента меню и сила фасочного блика. |
shape.fonts | Сопоставляет роли title, subtitle, caption, body и button со шрифтами res:// внутри аддона. Пропущенные роли сохраняют унаследованный шрифт. |
skin.dials | Радиус быстрого слота, видимость заклёпок, фактура и блик. Полная таблица ниже перечисляет каждый регулятор. |
Material 3: облик для экранов приложений Новое
material_light и material_dark приносят в gohud Material 3 Expressive — формы, размеры и
типографику компонентов M3, где каждое число взято из официального набора токенов M3 (material-web,
tokens/versions/latest). Берите их там, где экран должен ощущаться как приложение, а не как игровое меню:
магазины, почта, страницы аккаунта и настроек, таблицы лидеров, приложение-компаньон.
GoUi.use_preset(GoThemePresets.MATERIAL_LIGHT)
# Или: GoUi.use_preset(GoThemePresets.MATERIAL_DARK)

material_light
material_dark
GoDialogs · material_light
GoDialogs · material_darkЧто меняется
| Часть | В Material 3 |
|---|---|
| Кнопки | Пилюли (полное скругление углов). Плашка высотой 40dp стоит по центру области касания 48dp, поэтому область нажатия не уменьшается; у компактной кнопки плашка 32dp. Подписи набраны Roboto с насыщенностью 500. |
| Диалоги и листы | Углы 28dp (extra-large), отступы 24dp и заголовок 24sp — GoDialogs, GoSurface, GoSheet и все всплывающие окна, построенные на них. |
| Карточки | Заливные карточки с углами 12dp и отступами 16dp. |
| Поля и ползунки | Текстовые поля с контуром; ползунок Expressive с высокой ручкой. |
| Чипы и сегменты | Углы 8dp (small). |
| Компоненты приложений | GoNavBar, GoAppBar, GoFab, GoSearchBar, чипы, GoProgress и GoDatePicker следуют токенам компонентов M3. |
| Шрифт | Встроенный Roboto — для заголовков, подзаголовков, подписей и кнопок. Основной текст сохраняет шрифт вашего проекта, поэтому корейский, японский, китайский или арабский текст по-прежнему отображается. |
| Непрозрачность | Все панели непрозрачны — поверхности M3 сплошные. (Панели обычного, sci-fi и средневекового обликов непрозрачны на 80%, так что игра просвечивает.) |
| Скин | GoSkinMaterial: боковая панель — модальный боковой лист M3, лицевая панель консоли — плавающая панель инструментов M3, баннеры лежат на surface_container_low. |
tools/check_contrast.py измеряет оба облика, как и все остальные.
Roboto распространяется по SIL Open Font License 1.1 (assets/fonts/roboto/OFL.txt) и используется только
пресетами Material.
Детский облик: коробка с игрушками Новое
kids_light (кремовый и персиковый с виноградным основным цветом) и kids_dark (черничный фон,
солнечно-жёлтый основной цвет, мятные пилюли) — облик для детских игр и обучающих приложений: пухлый, яркий и мягкий,
из тех, что маленькому пальцу так и хочется нажать.
GoUi.use_preset(&"kids_light")
# Или: GoUi.use_preset(&"kids_dark")

kids_light
kids_dark
GoDialogs · kids_light
GoDialogs · kids_darkЧто меняется
| Часть | В детских обликах |
|---|---|
| Каждая лицевая панель | Желейная конфета, которую рисует GoStyleBoxJelly: толстый контур, плотный бортик под всем, что нажимается, тело светлее сверху и темнее снизу и белый блик слева вверху. Её носят клавиши, строки списков, сворачиваемые заголовки, поля, полосы, ползунки и панели. |
| Нажатие | Бортик исчезает, и лицевая панель опускается на его место, затем желейное сплющивание — на миг широкое и плоское, потом упругий отскок назад. Работает на каждой кнопке, которую создаёт gohud; reduce_motion его выключает. |
| Поля, вкладки, полосы | Текстовое поле — то же желе, вывернутое внутрь: утопленная лунка. Вкладки — пузыри, у полос желейный блик. |
| Цвет | У каждого вида элементов свой цвет мелка, подобранный тем же генератором, что и в любом облике, поэтому все пороги контраста по-прежнему соблюдаются. |
| Окна | Солнечная лента (ночью мятная) за заголовком окна — заголовок уменьшается, вплоть до 15, чтобы остаться в одну строку, — и круглая кнопка закрытия-конфета «опасного» цвета мелка с белым крестиком. |
| Части скина | GoSkinKids: быстрые слоты — конфетные кубики, которые проседают во время перезарядки, значки — наклейки, чипы и пилюля навигации — маленькие желейки, аватары — круглые конфеты, стик — радуга, диаграммы раскрашены мелками, оповещения и уведомления — записки-наклейки с плотным ободком. |
| Непрозрачность | Панели, карточки, уведомления и всплывающие окна непрозрачны. |

Сделайте собственную коробку с игрушками
python3 addons/gohud/tools/new_theme.py candy --from kids_light
# Отредактируйте themes/palettes/candy.json, затем:
python3 addons/gohud/tools/make_theme.py candy
GoUi.use_preset(&"candy")
Комикс: жирные чернила Новое
comic_light (белые панели на странице цвета кремовой бумаги, кобальтовый основной цвет) и comic_dark (сланцевые панели
на ночной странице, кремовые контуры, жёлтый основной цвет) рисуют каждую панель как кадр комикса — жирный чернильный контур
с жёсткой тенью позади.
GoUi.use_preset(&"comic_light")
# Или: GoUi.use_preset(&"comic_dark")

comic_light
comic_dark
GoDialogs · comic_light
GoDialogs · comic_darkЧто меняется
| Часть | В обликах комикса |
|---|---|
| Каждая лицевая панель | Её рисует GoStyleBoxComic: цвет поверхности внутри жирного контура цвета чернил и жёсткая тень вниз и вправо. Её носят клавиши, строки списков, поля, вкладки, полосы, ползунки, панели и всплывающие окна. |
| Нажатие | Тень исчезает, и лицевая панель опускается на её место. |
| Элементы управления | Переключатели, флажки, радиокнопки и ручки ползунков тоже обведены чернилами, и у каждого своя маленькая тень. |
| Окна | Жёлтая плашка за заголовком окна и круглая кнопка закрытия, обведённая чернилами. |
| Части скина | GoSkinComic: быстрые слоты, чипы, значки, аватары, уведомления, панель навигации, FAB и ячейки дат обведены чернилами; ручка стика отбрасывает тень; диаграммы раскрашены яркими основными цветами. |
| Непрозрачность | Панели, карточки, уведомления и всплывающие окна непрозрачны; карточки HUD непрозрачны на 92%. |
Настройки чернил и тени
Три настройки GoConfig меняют все панели комикса разом. Ничего не перестраивается — экран перерисовывается, как только вы их задаёте.
GoUi.config.comic_border_width = 2.0 # контур (dp) — по умолчанию 3
GoUi.config.comic_shadow_size = 6.0 # тень (dp) — по умолчанию 4
GoUi.config.comic_shadow = false # нигде никаких теней
Отдельный виджет может пойти своим путём, что бы ни говорила настройка:
GoStyle.comic_shadow(skip_button, false) # эта кнопка лежит плоско
GoStyle.comic_shadow(card, true, true) # эта карточка и всё в ней сохраняют тень
GoStyle.comic_border(title, 5.0) # у этого элемента контур толще

Сделайте собственный комикс
python3 addons/gohud/tools/new_theme.py inked --from comic_light
# Отредактируйте themes/palettes/inked.json, затем:
python3 addons/gohud/tools/make_theme.py inked
GoUi.use_preset(&"inked")
Аркада: раскрашенные клавиши и толстые панели Новое
arcade_light (белые панели на небесно-голубой странице) и arcade_dark (тёмно-синие панели на ночной странице)
одевают каждый экран как игровой автомат: каждая клавиша раскрашена — градиент от светлого верха к более насыщенному низу,
белый штрих блика и бортик, который проседает при нажатии, внутри тёмно-синего чернильного контура, — а каждая панель толстая:
цветная рамка вокруг светлой середины.
GoUi.use_preset(&"arcade_light")
# Или: GoUi.use_preset(&"arcade_dark")

arcade_light
arcade_dark
GoDialogs · arcade_light
GoDialogs · arcade_darkЧто меняется
| Часть | В аркадных обликах |
|---|---|
| Клавиши | Их рисует GoStyleBoxArcade: тело с градиентом, белый блик у левого верхнего угла, более тёмный бортик и тёмно-синий чернильный контур. Основная клавиша зелёная, обычные клавиши и выбранная вкладка синие, опасные — коралловые и красные, маленькие клавиши и остальные вкладки лавандовые. |
| Подписи | Белые с чернильным контуром на каждой раскрашенной клавише. Каждая краска сдвигается, пока эта подпись не станет читаемой на любой высоте её градиента — 4,6:1 или больше, причём контур, как и в WCAG, считается частью буквы. |
| Нажатие | Бортик исчезает, клавиша опускается на своё место и выпрыгивает обратно. |
| Панели | Панели, карточки, карточки HUD и всплывающие окна толстые: цветная рамка (6dp вокруг окна, 4 вокруг карточки или карточки HUD, 3 вокруг меню или уведомления) с собственным бликом и бортиком вокруг светлой середины с чернильной линией. Их отступы немного растут, чтобы её вместить, так что текст никогда не касается рамки. |
| Поля и полосы | Поля ввода и желобки полос — утопленные углубления; заливка полосы — глянцевая раскрашенная трубка яркого оттенка её цвета. |
| Окна | Золотая лента с белым заголовком в чернильном контуре и круглая красная клавиша закрытия с белым крестиком. |
| Части скина | GoSkinArcade: быстрые слоты и чипы — колпачки клавиш, слот на перезарядке загорается золотой окантовкой, значки — светлые плашки, оповещения обрамлены своим цветом, выбранная карточка загорается золотой окантовкой, FAB — золотая клавиша, а стик — глянцевая площадка с четырьмя стрелками. |
| Непрозрачность | Панели, карточки, уведомления и всплывающие окна непрозрачны; карточки HUD непрозрачны на 94%. |
Раскрасьте отдельную клавишу своим цветом
Тема раскрашивает клавиши по их виду. Меню, где каждой клавише нужен свой цвет, раскрашивает их по одной — при наведении лицевая сторона становится чуть светлее, при нажатии чуть темнее, а отключённая остаётся приглушённой:
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Resume", _resume, GoStyle.Tone.PRIMARY), Color("#4ACB3E")))
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Shop", _shop), Color("#FF8A1E")))
GoStyle.arcade_paint(stage_card, Color("#E3343D"), true) # рамка панели и все клавиши внутри неё
arcade_paint() ничего не делает.

Сделайте собственную аркаду
python3 addons/gohud/tools/new_theme.py cabinet --from arcade_light
# Отредактируйте themes/palettes/cabinet.json — цвета *_vivid и есть краски, — затем:
python3 addons/gohud/tools/make_theme.py cabinet
GoUi.use_preset(&"cabinet")