zzzUI

快速开始

zzzUI 是一套仅暗色、游戏 UI 风格鲜明的组件库。安装方式与 shadcn 相同:代码直接写入项目,可以随意修改。

开始之前

需要一个已配置好 shadcn 的项目(含 components.json),使用 Tailwind CSS v4 与 React 19。zzzUI 基于 Base UI 而非 Radix,安装组件时会一并带上。已在 Next.js 上测试。

1. 添加命名空间

每个项目只需一次:告诉 shadcn 从哪里获取 @zzzui 的条目。

terminal
pnpm dlx shadcn@latest registry add @zzzui=https://zzzui.catforest.dev/r/{name}.json

2. 添加组件

terminal
pnpm dlx shadcn@latest add @zzzui/button @zzzui/input @zzzui/select

安装第一个组件时会一并带上地基:设计 token、动效与斜切块写入样式表,cn 与动效时长写入 lib/zero/,Montserrat(展示字体)与 Outfit(正文字体)在布局中加载。组件本身写入 components/zero/。

3. 统一为暗色(可选)

zzzUI 没有亮色主题。如果项目其余部分使用 shadcn 的变量,下面这条命令会把它们指向 zzzUI 的配色,亮色与暗色模式一律如此,整页风格因而统一:

terminal
pnpm dlx shadcn@latest add @zzzui/theme

4. 加载真正的斜体

zzzUI 的标签是粗斜体。shadcn 只加载 Montserrat 的正体,斜体由浏览器模拟;在布局加载字体的地方加上真正的斜体即可:

app/layout.tsx
const montserrat = Montserrat({  subsets: ["latin"],  variable: "--font-montserrat",  style: ["normal", "italic"],});

风格概要

一切都从斜切块出发:一块按同一角度(14°)斜切、带墨黑粗描边的平面块。转角只切不圆;层次靠描边,不靠阴影。一种荧光强调色(默认为青柠色)标出当前激活的元素,黄色焦点框标出获得焦点的元素。

动效是一小组有名称的时长,所有组件共用:迅速的按下与回弹的松开、标签页滑块的滑动、弹出层的展开与更快的收起。系统开启「减少动态效果」时,一切静止。

从 Button 开始。