自动化与脚本
接入或排查 @wot-ui/unocss-preset…
当项目使用 UnoCSS 并询问 @wot-ui/unocss-preset 的安装、配置、类名使用或问题排查时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
接入或排查 @wot-ui/unocss特定
解决思路
- 安装依赖:运行 `pnpm add -D unocss`,再运行 `pnpm add @wot-ui/unocss-preset`。
- 在 `unocss.config.ts` 中导入 `presetWot` 与 `defineConfig`,并配置 `presets: [presetWot({ prefix: 'wot', preflight: true, baseTokens: false })]`。
- 配置 `prefix`:工具类前缀,默认 `wot`,如 `wot-text-primary`、`wot-m-main`;历史项目若仍使用 `w-` 前缀,可用 `prefix: 'w'` 兼容。
- 配置 `preflight`:是否注入 wot-ui CSS 变量,默认 `true`。
- 配置 `baseTokens`:是否开放基础色板和原始 token 类名,默认 `false`;需要基础色板/原始 token 时设 `baseTokens: true`,启用后会额外提供类似 `wot-base-black` 的 token,用于 `theme.colors` 与颜色规则匹配。
- 按需选用常用类名:颜色如 `wot-text-primary`、`wot-bg-danger-surface`、`wot-border-border-main`;间距如 `wot-m-main`、`wot-gap-tight`、`wot-gap-x-loose`;内边距如 `wot-p-main`、`wot-px-tight`、`wot-pb-loose`;圆角如 `wot-rounded-md`、`wot-rounded-full`;字重如 `wot-font-medium`、`wot-font-semibold`;排版如 `wot-text-body-main`、`wot-text-title-large`;透明度如 `wot-opacity-disabled`;描边如 `wot-border-stroke-main`。
- 复制卡片示例(uni-app / Vue):外层 `<view class='wot-bg-filled-oppo wot-rounded-2xl wot-p-super-loose wot-border-border-main wot-border-stroke-main'>`;标题 `<text class='wot-text-title-large wot-text-text-main wot-font-semibold'>Wot UnoCSS Preset</text>`;副标题外层 `<view class='wot-mt-tight'>`,文字 `<text class='wot-text-body-main wot-text-text-secondary'>wot-text-body-main + wot-text-text-secondary</text>`;按钮外层 `<view class='wot-mt-loose wot-bg-primary wot-rounded-full wot-px-main wot-py-extra-tight'>`,文字 `<text class='wot-text-label-large wot-text-text-white wot-font-semibold'>wot-bg-primary</text>`。
- 使用间距/布局示例:外边距 `wot-mt-tight`、`wot-mt-main`、`wot-mt-super-loose`;内边距 `wot-p-loose`、`wot-px-main`、`wot-py-extra-tight`;横向/纵向组合 `wot-mx-main`、`wot-my-loose`;gap `wot-gap-tight`、`wot-gap-x-main`、`wot-gap-y-loose`。
- 使用语义色示例:背景 `wot-bg-primary`、`wot-bg-success-surface`、`wot-bg-warning-surface`、`wot-bg-danger-surface`;文字 `wot-text-text-main`、`wot-text-text-secondary`、`wot-text-primary`、`wot-text-success-main`;边框 `wot-border-border-main`、`wot-border-success-main`、`wot-border-warning-main`、`wot-border-danger-main`。
- 使用暗黑模式:预设会输出暗色变量选择器 `.wot-theme-dark ...`,在根节点根据 dark 状态添加 `wot-theme-dark` class,例如 dark 为 true 时使用该 class,否则为空字符串;内部可使用 `wot-bg-filled-oppo wot-p-main wot-rounded-lg` 与 `wot-text-text-main`。
- 可选打开 baseTokens:配置 `presetWot({ baseTokens: true })`。
- 历史项目兼容:若仍使用 `w-` 前缀,通过 `prefix: 'w'` 兼容。
- 构建异常排查:若 playground/子包构建异常,优先检查是否使用包名导入(如 `@wot-ui/unocss-preset`),并在依赖主包产物的场景下先执行主包构建。
- 同步上游 wot-ui 变量:运行 `pnpm generate:css-vars:clone`。
- 类名不生效排查:确认项目已启用 UnoCSS 且 `presetWot()` 已加入 `presets`;确认类名前缀与配置一致(默认 `wot-`)。
- VS Code 无自动补全排查:确认安装 UnoCSS 官方扩展;确认编辑器能定位到项目 `unocss.config.ts`;确认类名写在扩展可扫描的文件类型内。
- CI 与本地结果不一致排查:对齐 Node/pnpm 版本与锁文件;对齐执行顺序(例如先构建主包,再构建依赖主包产物的 playground)。
- 输出风格:保持简洁、可执行,优先给“可复制配置 + 最短排查路径”;当用户目标明确时先给结论和配置,再补充原因说明;不擅自引入本项目未使用的额外工具链或复杂抽象。
适用边界 · 注意事项
- 不适用于未启用 UnoCSS 或无法安装 `@wot-ui/unocss-preset` 的项目。
- 不适用于不使用 wot-ui 设计变量/类名体系且无需兼容该预设的场景。
- 不适用于用户需要额外工具链或复杂抽象、且未明确要求引入的场景。