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