SuperAPI AI 工具集

ui-lint

设计与创作

查看项目

更新于 10-16 04:07

技能介绍

用途

ui-lint 是一个快速、自动化的设计系统 lint 技能,用于在数秒内检测常见的设计规范违规。它采用基于 grep 的扫描方式,速度很快,与需要人工深度审查的 /ss-review 不同,适合在每次文件改动后运行。

主要能力

该技能执行以下检查:

  1. 硬编码颜色:在 className 字符串中搜索本应使用语义 token 的十六进制颜色。违规示例:text-[#3C3C3C]、bg-[#721FE5];修复方式:text-text-primary、bg-brand。

  2. Tailwind 中的原始像素值:搜索 p-[.*px]、m-[.*px]、gap-[.*px]。违规示例:p-[24px]、gap-[12px];修复方式:p-6、gap-3。

  3. 旧式宽高语法:搜索 w-[0-9] h-[0-9] 或 w-[.*] h-[。违规示例:w-4 h-4;修复方式:size-4。

  4. 物理属性(仅 LTR):搜索 ml-、mr-、pl-、pr-。违规示例:ml-2、mr-4;修复方式:ms-2、me-4。

  5. 禁用颜色:搜索 text-black、bg-black、#000000、#000"。违规:任何纯黑;修复:使用皮肤(skin)的 text-primary token。

  6. 缺失 data-slot:先查找组件函数,再检查是否存在 data-slot。违规:组件没有 data-slot;修复:添加 data-slot="component-name"。

  7. 字体大小 CSS 变量(关键——Tailwind v4 冲突):搜索 text-[var(-- 以及 --text-.*px 或 --fs-.px。违规示例:text-[var(--text-sm)] 或 theme.css 中的 --text-sm: 13px;修复:使用显式的 text-[13px]。原因是 CSS 变量字体大小会与 Tailwind v4 的 --text- 命名空间冲突,Tailwind 会将其读取为颜色而非字体大小。

  8. 未使用 cn() 的 className:搜索 className={`。违规:模板字面量形式的 className;修复:所有 className 组合都应使用 cn()。

使用方式

该技能以目标文件为参数(Target: $ARGUMENTS),通过上述 grep 命令逐项扫描。输出格式如下:

🔴 FAIL [file:line] Hardcoded hex: text-[#3C3C3C] → use text-text-primary 🔴 FAIL [file:line] Raw px: p-[24px] → use p-6 🟡 WARN [file:line] Physical prop: ml-2 → use ms-2 🟡 WARN [file:line] Missing data-slot on MyComponent 🟢 PASS No violations found

Total: X errors, Y warnings

如果错误数大于 0,会为每个违规列出具体修复建议。

适用场景

适合在每次文件改动后快速运行,用于捕捉常见的设计系统违规。

限制

该技能只标记违规,不执行修复;需要修复时使用 /ss-review。它不适用于以下场景:对设计判断(构图、层级、节奏)进行更深入审查,应使用 /ss-review;专门的无障碍检查,应使用 /ss-a11y;Nielsen UX 启发式审计,应使用 /ss-audit。

此外,仅当任务明确匹配其上游来源和本地项目上下文时才应使用此技能。在应用更改前,应验证命令、生成的代码、依赖项、凭据和外部服务行为。不应将示例视为环境特定测试、安全审查或对破坏性/高成本操作的用户批准的替代品。