介绍
核心原则、分层与分发方式。
不是传统组件库
Tennantite 把 Minecraft 的 GUI 语言拆成可复制的 React 源码。它同时提供两条通道:npm 包与源码目录。组件基于 Base UI 与 Tailwind CSS v4,默认由设计令牌驱动。
71 个组件分为核心库与独立 Mod 区:60 个原版/通用组件,加 11 个 Mod 组件;37 个整屏界面由 27 个原版整屏与 10 个 Mod 界面组成。整屏不是黑盒,而是由小部件拼装出来的组合示例。
三条使用约定
源码可改:每个组件都是独立目录;数据注入:界面只接收数据与回调;令牌覆盖:颜色、字体、间距、阴影都可在 @theme 中重写。
五条设计原则
- 分层组合,而不是整屏黑盒。整屏界面由
ScreenPanel、PlayerInventory、Slot等部件组合。 - UI 与游戏逻辑解耦。组件不读取存档、不发送网络请求,只渲染传入的数据。
- 风格走令牌。几何与颜色来自 CSS 变量,覆盖变量即可换肤。
- 像素基调。1 GUI px 默认等于 2 CSS px;纹理使用
image-rendering: pixelated。 - 静态优先。纯展示组件保持 RSC 兼容,交互边界尽量小。
分层
| 层级 | 内容 | 数量 |
|---|---|---|
| L0 | @tennantite/tokens / @tennantite/textures |
2 个包 |
| L1 | 原语:Button、Input、Slider、Tabs… | 13 |
| L2 | 容器:Panel、Grid、Slot、ScreenPanel… | 12 |
| L3 | HUD 与整屏界面 | 41 |
完整说明见 组件分层;按组件浏览见 Components。
分发
@tennantite/ui 已发布到 npm。核心组件同时通过 shadcn registry 端点(https://tennantite.rikka.cc/r/<name>.json)分发源码,可用 npx shadcn add @tennantite/<name> 拷贝安装;mod 包走 npm 安装。详见 Registry 与 安装。
当前状态
v0.1.0
Next.js App Router 与 TanStack Start 的 SSR 冒烟已通过;axe 测试覆盖 primitives。
下一步
从 安装 开始接入样式,然后浏览 Components 与 Blocks。