UI-Skills:让 AI Agent 构建更好界面的约束规范

AI Skills2天前更新 vicvinc
17 0

UI-Skills:让 AI Agent 构建更好界面的约束规范

导语

随着 AI Agent 在代码生成领域的应用越来越广泛,一个显著的问题逐渐浮现:不同 AI 生成的界面代码风格差异巨大,质量参差不齐。**UI-Skills** 应运而生——这是一套专门为 AI Agent 设计的 UI 约束规范,通过明确的规则指导 AI 生成高质量、一致且可访问的用户界面。

UI-Skills 是什么?

UI-Skills 是一套”固执己见”(Opinionated)的 UI 约束规范,旨在帮助 AI Agent 构建更好的用户界面。它覆盖了从前端技术栈选择到具体实现细节的完整指南,确保 AI 生成的代码遵循最佳实践。

核心价值

  • **一致性**:统一的代码风格和架构模式
  • **可访问性**:内置 A11y 最佳实践
  • **性能优化**:避免常见的性能陷阱
  • **可维护性**:清晰的组件结构和命名规范

技术栈规范

UI-Skills 对技术栈有明确要求,这种约束确保了代码质量和一致性:

样式系统

  • **必须**优先使用 Tailwind CSS 默认值(间距、圆角、阴影)
  • **必须**使用 `cn` 工具函数(`clsx` + `tailwind-merge`)处理类名逻辑
  • **应该**使用 `tw-animate-css` 处理入场和微动画

动画库

  • **必须**使用 `motion/react`(原 framer-motion)处理 JavaScript 动画
  • **禁止**混用多种动画库

组件库

  • **必须**使用无障碍组件原语处理键盘和焦点行为(`Base UI`、`React Aria`、`Radix`)
  • **必须**优先使用项目现有组件
  • **禁止**在同一交互面混用不同的原语系统
  • **应该**新项目优先选择 `Base UI`

核心约束规则

组件使用规则

✅ 必须为纯图标按钮添加 aria-label

✅ 必须使用 AlertDialog 处理破坏性操作

✅ 必须在操作位置旁显示错误信息

❌ 禁止手动重建键盘或焦点行为(除非明确要求)

❌ 禁止在 input/textarea 阻止粘贴操作

布局约束

✅ 必须使用 h-dvh 替代 h-screen

✅ 必须为固定元素预留安全区域(safe-area-inset)

✅ 应该使用 size-x 替代 w-x + h-x(正方形元素)

✅ 必须使用固定的 z-index 分层(禁止任意 z-x)

动画约束

✅ 只能动画合成器属性(transform、opacity)

✅ 入场动画应该使用 ease-out

✅ 必须遵守 prefers-reduced-motion

❌ 禁止动画布局属性(width、height、margin、padding)

❌ 禁止交互反馈超过 200ms

❌ 禁止动画大型图片或全屏表面

排版规范

✅ 标题必须使用 text-balance

✅ 正文必须使用 text-pretty

✅ 数据必须使用 tabular-nums

✅ 密集 UI 应该使用 truncate 或 line-clamp

❌ 禁止修改 letter-spacing(除非明确要求)

性能约束规则

UI-Skills 特别关注性能问题,避免 AI 生成低效代码:

❌ 禁止动画大型 blur() 或 backdrop-filter 表面

❌ 禁止在动画外使用 will-change

❌ 禁止用 useEffect 处理可用渲染逻辑表达的内容

设计约束规则

❌ 禁止使用渐变(除非明确要求)

❌ 禁止使用紫色或多彩渐变

❌ 禁止使用光晕效果作为主要交互指示器

✅ 应该使用 Tailwind 默认阴影

✅ 必须为空状态提供明确的下一步操作

✅ 应该每个视图限制使用一种强调色

与 Claude Skills 的关系

UI-Skills 可以作为 **Claude Skills** 的一种特殊形式使用:

1. **作为全局 Skill**:将 UI-Skills 规则存放在 `~/.claude/skills/ui-skills/`

2. **项目级 Skill**:在项目根目录 `.claude/skills/` 创建 UI 约束规则

3. **自定义扩展**:基于 UI-Skills 创建项目特定的 UI 约束

Claude Skill 示例

name: ui-skills-constraints

description: 强制执行 UI-Skills 约束规范的代码生成规则

UI 约束规则

动画规则

  • 只动画 transform 和 opacity
  • 交互反馈不超过 200ms
  • 遵守 prefers-reduced-motion

组件规则

  • 使用 Radix 或 Base UI 原语
  • 为图标按钮添加 aria-label
  • 破坏性操作使用 AlertDialog

禁止事项

  • 禁止使用 h-screen,使用 h-dvh
  • 禁止阻止 input 中的粘贴操作
  • 禁止在布局属性上使用动画

实际应用场景

场景一:Claude Code 代码生成

当使用 Claude Code 生成前端代码时,UI-Skills 确保生成的代码:

  • 遵循 Tailwind CSS 最佳实践
  • 使用正确的组件原语
  • 避免常见的性能和可访问性问题

场景二:团队规范统一

在团队开发中,UI-Skills 作为 AI 辅助开发的约束规范:

  • 新成员快速了解团队 UI 规范
  • AI 生成的代码与团队风格一致
  • 减少 Code Review 的样式规范讨论

场景三:组件库开发

开发组件库时,UI-Skills 提供:

  • 组件 API 设计指导
  • 无障碍功能实现标准
  • 性能优化基准

快速开始

1. 创建 Claude Skill

全局 Skill

mkdir -p ~/.claude/skills/ui-skills

cd ~/.claude/skills/ui-skills

创建 SKILL.md 文件

cat > SKILL.md << ‘EOF’

name: ui-skills

description: 执行 UI-Skills 约束规范

UI-Skills 约束规范

[在此处粘贴完整的 UI-Skills 规则]

EOF

2. 集成到项目

项目级 Skill

mkdir -p .claude/skills

cp ~/.claude/skills/ui-skills/SKILL.md .claude/skills/

3. 在 Claude Code 中使用

你:使用 TailwindCSS 创建一个登录表单

Claude:[自动遵循 UI-Skills 约束生成代码]

  • 使用 Base UI 的 TextField 组件
  • 添加 aria-label 和错误处理
  • 使用 h-dvh 而非 h-screen
  • 避免使用渐变和光晕效果

总结

UI-Skills 通过一套明确的约束规范,解决了 AI 生成前端界面代码时的质量和一致性问题。它不仅是一份规则文档,更是一种”Agent 友好”的设计系统思想。

**适用场景**:

  • ✅ 使用 Claude Code 辅助前端开发
  • ✅ 团队需要统一的 UI 规范
  • ✅ 组件库和设计系统开发
  • ✅ 追求可访问性和性能优化

**核心理念**:通过明确的约束,让 AI Agent 生成更好的界面代码。

**相关资源**:

  • 官网:https://www.ui-skills.com/
  • Claude Skills 文档:https://docs.anthropic.com/
  • Tailwind CSS:https://tailwindcss.com/
© 版权声明

相关文章

暂无评论

none
暂无评论...