# @koko/ui 使用规范(使用方) 适用对象: 所有接入 `@koko/ui` 的工作台项目及其 agent。维护公共库本身见 [MAINTAINING.md](./MAINTAINING.md)。 ## 1. 基本信息 | 项 | 值 | |---|---| | 包名 | `@koko/ui` | | Registry | `https://git.colinx.one/api/packages/koko/npm/`(匿名可读,无需 token) | | 源码 | https://git.colinx.one/koko/koko-ui | | 预览站 | https://koko-preview.netlify.app | | 技术底座 | shadcn/ui 官方 `base-nova`(Base UI,非 Radix)、Tailwind v4、React 19、lucide-react | | Skill | `koko-ui-shared-package` | ## 2. 接入步骤 1. 项目根目录 `.npmrc`(可提交,不含 token): ``` @koko:registry=https://git.colinx.one/api/packages/koko/npm/ ``` 2. `npm i @koko/ui`。宿主需自备 `react>=19`、`react-dom>=19`、`tailwindcss>=4`。项目直接用到 `recharts`、`sonner`、`lucide-react` 时单独安装。 3. 全局 CSS 入口: ```css @import "tailwindcss"; @import "@koko/ui/styles.css"; @source "../node_modules/@koko/ui/src"; ``` `@source` 不可省,缺了包内类名被 purge,样式全丢。路径按 CSS 文件到 `node_modules` 的相对位置调整。 4. 暗色模式: `` 加/去 `.dark` 类。 5. 使用: `import { Button, Card, DatePicker, ChartContainer } from "@koko/ui"`。 6. 框架注意: - Astro: 交互组件加 `client:load` / `client:visible`。 - Next.js: 配置 `transpilePackages: ["@koko/ui"]`(包发的是 TS 源码)。 - Netlify / CI: 提交 lockfile 与 `.npmrc` 即可,不需要 `NPM_TOKEN`。 ## 3. 必须遵守 ### 3.1 能改什么 / 不能改什么 | 类别 | 在使用方仓库 | 在 koko-ui 仓库 | |---|---|---| | 品牌色变量 | 允许,仅限下表 | — | | 圆角、字体、阴影、间距 | 禁止 | 改 `tokens.css` 发版 | | 组件外观/行为、修 bug | 禁止 | 改后发版 | | 新增通用组件 | 禁止直接复制进来当公共组件 | 须满足准入门槛(见 MAINTAINING §4) | | 项目业务组件 | 允许,放项目自己的目录 | 不收 | 允许覆盖的变量(全局 CSS 的 `:root` / `.dark` 中): `--primary --primary-foreground --ring --accent --accent-foreground --chart-1..5 --sidebar-primary --sidebar-primary-foreground --sidebar-ring` 当前阶段色调暂缓: **默认不覆盖任何变量**,沿用基准主题 Light Green。 ### 3.2 编码约定 - 只从 `@koko/ui` 引入,不要深入引用 `node_modules/@koko/ui/src/...` 内部路径。 - 不要把 shadcn 组件源码复制进项目,不要在项目里运行 `npx shadcn add`。 - Base UI 用 `render={