Каждый цвет и каждый размер живут в 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