每一個顏色與尺寸都放在 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
當成文字用時,必須夠深才能在淺色背景上讀得出來;當成經驗量條的填色用時,
又必須夠亮才引人注意。一個 token 沒辦法兩者兼顧 — 淺色佈景主題的量條就變成了咖啡色。
沒有 _fill 變體的佈景主題會自動退回使用基本名稱,所以早於這些 token 的舊佈景主題照樣能用。
尺寸(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。沒有這些 token 的佈景主題會退回 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