gohud

Токены

← Темы

Каждый цвет и каждый размер живут в Theme под типом GoHud и адресуются по имени. Правило простое — не писать числа: имена едут следом, когда тема меняется.

GoUi.color(GoTheme.ACCENT)             # цвет
GoUi.metric(GoTheme.GAP)               # размер (dp)
GoUi.font_size(GoTheme.ROLE_CAPTION)   # размер для текстовой роли
GoUi.box(GoTheme.BOX_CARD)             # копия StyleBox

Цвета

ИмяДля чего
backgroundПодложка экрана
surface · surface_soft · surface_highТри слоя панелей — панель, карточка, приподнятая ячейка
borderГраницы карточек и кнопок
text · secondary · mutedТри уровня текста — основной, вспомогательный, приглушённый
accent · on_accentАкцент и текст, положенный поверх него
success · warning · danger · infoТекстовые цвета состояний
*_fillТе же состояния в виде заливки — для полос и других крупных областей
scrim · shadow · trackЗавеса за всплывающими окнами, тени, жёлоб полосы
Зачем нужен *_fill. Смысл один, требования противоположные. warning в роли текста должен быть достаточно тёмным, чтобы читаться на светлом фоне; в роли заливки полосы опыта он должен быть достаточно ярким, чтобы его заметили. Один токен не может быть и тем, и другим — полоса в светлой теме уходила в коричневый. Тема без варианта _fill автоматически откатывается к базовому имени, поэтому темы, созданные до появления этих токенов, продолжают работать.

Размеры (dp)

touch button_height gap_tiny gap_small gap gap_large padding padding_compact compact_padding_x compact_padding_y radius_small radius radius_large screen_margin scroll_deadzone scroll_edge scrollbar_width list_glyph icon_size notice_duration_ms

Непрозрачность панели (%)

panel_alpha card_alpha hud_alpha notice_alpha popup_alpha — насколько плотное лицо у контейнера. По умолчанию 80, чтобы игра оставалась видна за диалогом; у popup_alpha — 100. Тема без этих токенов откатывается к 100 и рисуется ровно так же, как раньше. Итоговое значение читается как доля через GoUi.surface_alpha(variant); правила собраны в разделе Непрозрачность — игра за панелью.

Текстовые роли

micro · compact · caption · body · button · subtitle · title — роль называет размер, а не назначение. «Самый крупный текст», а не «заголовок». Так шкала остаётся верной, даже когда экран применяет её для чего-то другого.

Вариации типов

GoPanel GoCard GoButton GoPrimaryButton GoDangerButton GoDangerSolidButton GoBareButton GoCompactButton GoIconButton GoListButton GoTitleLabel GoSubtitleLabel GoCaptionLabel GoCompactLabel GoMicroLabel