设计令牌
颜色、字体、间距与阴影令牌。
令牌模型
@tennantite/tokens 用 Tailwind v4 的 @theme 声明 CSS 变量,同时生成对应工具类。GUI 缩放由 --mc-scale 控制:
@theme {
--mc-scale: 2;
--mc-gui: calc(var(--mc-scale) * 1px);
--spacing: var(--mc-gui);
}
因此 w-20 是 20 GUI px,默认等于 40 CSS px;p-4 是 8 CSS px,而不是 16 CSS px。
颜色
共 35 个 --color-mc-* 令牌。取值对齐 Minecraft Java 26.3 稳定版 GUI 的采样色。下表由 packages/tokens/css/tokens.css 派生。
| 令牌 | 值 | 用途 |
|---|---|---|
| --color-mc-panel | #c6c6c6 | 面板填充 |
| --color-mc-panel-overlay | rgb(0 0 0 / 75%) | 标题界面 / 标签页遮罩 |
| --color-mc-highlight | #ffffff | 亮部浮雕 |
| --color-mc-stone | #8b8b8b | 槽位填充 |
| --color-mc-stone-dark | #555555 | 面板暗边 |
| --color-mc-stone-darker | #373737 | 槽位暗边 |
| --color-mc-button | #6f6f6f | 按钮填充 |
| --color-mc-button-hover | #757575 | — |
| --color-mc-button-disabled | #2c2c2c | — |
| --color-mc-button-light | #aaaaaa | 按钮亮边 |
| --color-mc-button-dark | #565656 | 按钮暗边 |
| --color-mc-slot | #8b8b8b | — |
| --color-mc-text-main | #ffffff | — |
| --color-mc-text-dim | #a0a0a0 | — |
| --color-mc-text-disabled | #a0a0a0 | — |
| --color-mc-gold | #ffaa00 | — |
| --color-mc-yellow | #ffff55 | — |
| --color-mc-green | #55ff55 | — |
| --color-mc-aqua | #55ffff | — |
| --color-mc-red | #ff5555 | — |
| --color-mc-purple | #ff55ff | — |
| --color-mc-gray | #aaaaaa | — |
| --color-mc-accent-green | #7ec850 | 主行动按钮(非原版扩展) |
| --color-mc-heart | #ff1313 | — |
| --color-mc-xp | #80ff20 | — |
| --color-mc-selection | #d5e8d0 | 热键栏选中框亮边 |
| --color-mc-selection-mid | #a1b29d | — |
| --color-mc-selection-dark | #5f6d5c | — |
| --color-mc-hotbar | rgb(39 37 5 / 73%) | — |
| --color-mc-scroller | #c0c0c0 | — |
| --color-mc-scroller-dark | #808080 | — |
| --color-mc-tooltip-bg | rgb(16 0 16 / 94%) | — |
| --color-mc-tooltip-text | #ffffff | — |
| --color-mc-tooltip-border-top | rgb(80 0 255 / 31%) | — |
| --color-mc-tooltip-border-bottom | rgb(40 0 127 / 31%) | — |
字体与文本
--font-mc:Minecraft 像素字体优先,中文回退Microsoft YaHei/PingFang SC。--text-mc:9 GUI px 字号与 9 GUI px 行高。mc-text:必须与颜色类一起使用。tailwind-merge会把text-mc与text-mc-text-main视为同一组,导致字号被丢弃;mc-text不落入text-*分组。mc-text-shadow:1 GUI px 的经典文字投影。
<p className="font-mc mc-text text-mc-text-main mc-text-shadow">标题</p>
间距与阴影
| 工具类 | 含义 |
|---|---|
p-8 / p-16 |
16px / 32px |
w-200 |
400px(原版按钮宽度) |
shadow-mc-1 / shadow-mc-2 |
1 / 2 GUI px 外阴影 |
shadow-mc-raised / shadow-mc-sunken |
浮雕外 / 内阴影 |
mc-border / mc-border-2 |
1 / 2 GUI px 边框 |
pixelated |
image-rendering: pixelated |
覆盖
在 tokens 引入之后声明同名的 @theme 变量即可覆盖:
@theme {
--color-mc-panel: #d9c7a3;
--color-mc-gold: #ffd166;
--mc-scale: 3;
}
--mc-gui 会随 --mc-scale 重新计算,所有使用 gui() 或 --spacing 的几何一起缩放。更多主题做法见 主题。