Skip to Content
Components主题令牌 Theme

主题令牌 Theme

DearOreUI 组件库的主题令牌系统,对齐原版 OreUI 的 menus-theme-*.css / gameplay-theme-*.css 设计变量。组件渲染器消费这些令牌,观感与原版一致。

颜色令牌

对齐原版 --colors*(menus-theme :root):

令牌默认值说明
colorPrimary#3c8527主色(绿色)
colorSecondary#d0d1d4次色
colorDestructive#ca3636危险色(红色)
colorText#ffffff文本色
colorMuted#b1b2b5弱化文本色
colorDisabled#d0d1d4禁用色
colorPanelrgba(0,0,0,0.72)面板背景

字体令牌

对齐原版 --fonts*

令牌默认值用途
fontHeadingMinecraft Ten v2标题
fontSubheadingMinecraft Five v2副标题
fontUiMinecraft Seven v2UI 文本
fontBodyNoto Sans正文

字号刻度

对齐原版 --fontSizes0..7

索引名称像素
0Tiny10px
1Small14px
2Medium16px
3Large20px
4XLarge24px
5Heading32px
6Display48px
7Giant64px

间距 / 行高 / 字距

刻度
行高 lineHeights[0..5]20 / 24 / 28 / 40 / 60 / 80 px
字距 letterSpacings[0..1]4 / 8 px
间距 spaces[0..7]4 / 8 / 12 / 16 / 20 / 24 / 32 / 64 px

纹理覆盖表

ThemeTokens::textures 是语义纹理键(<family>.<variant>.<state>)到 TextureSpec 的覆盖表。默认为空:渲染器回退到 VanillaAssets::texture(key) 查找原版纹理。

// Mod 覆盖某个纹理(设计 3.5) ThemeTokens theme = defaultThemeTokens(); theme.textures["pressable.primary.default"] = TextureSpec{...};

渲染链路

ThemeTokens(颜色 / 字体 / 字号 / 纹理覆盖) │ ComponentRenderer 消费 border-image: url(<resolved>) <slice>; ← 9-slice 纹理 border-width: <width>; border-image-outset: <outset>; cohtml::View::ExecuteScript → 真实 OreUI 页面渲染

相关