当设计或修改 REST API 响应结构、处理 API 返回值时触发。防止 API 设计缺陷导致的字段错位、类型歧义等问题。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
专业级 UI/UX 设计规范,需要高质量界面设计时手动触发或描述"设计感/专业UI"时自动触发。覆盖视觉层次、配色体系、排版节奏、交互微动效、响应式适配等。日常前端开发由 frontend-dev skill 覆盖。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
目标:生成有设计感、可直接交付的前端界面,告别 AI 模板风。
克制 > 堆砌 — 少即是多,每个元素都有存在理由
层次 > 装饰 — 用空间和对比建立信息层次,而非边框和分割线
一致 > 创意 — 系统化的设计语言优于零散的创意点缀
功能 > 形式 — 美观服务于可用性,永远不反过来
| 类别 | 禁止项 |
|---|---|
| 配色 | 蓝紫霓虹渐变、大面积线性渐变背景、荧光色强调 |
| 效果 | 玻璃拟态(glassmorphism)、发光描边、霓虹阴影、粒子背景 |
| 布局 | 居中大卡片+圆角过度、无限堆叠的 card-in-card |
| 装饰 | 无意义几何图形、装饰性网格线、浮动气泡 |
| 图标 | 纯装饰性 emoji、图标代替文字说明 |
| 文案 | "Powered by AI"、营销式夸张用语 |
shadow-lg → 没有深度层次1. 确定品牌主色(1 个)
2. 派生 5 级明暗梯度(50/100/300/500/700)
3. 选择 1 个功能强调色(CTA / 重要操作)
4. 语义色:success/warning/error/info 各 1 个
5. 中性色:gray 7 级梯度(50~900)
:root {
/* 主色梯度 */
--color-primary-50: #f0f7ff;
--color-primary-100: #e0efff;
--color-primary-300: #7cb8ff;
--color-primary-500: #2b7de9;
--color-primary-700: #1a56a8;
/* 中性色 */
--color-gray-50: #fafafa;
--color-gray-100: #f5f5f5;
--color-gray-200: #e8e8e8;
--color-gray-300: #d4d4d4;
--color-gray-500: #737373;
--color-gray-700: #404040;
--color-gray-900: #171717;
/* 语义色 */
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-info: #3b82f6;
/* 文字 */
--text-primary: var(--color-gray-900);
--text-secondary: var(--color-gray-500);
--text-disabled: var(--color-gray-300);
/* 背景 */
--bg-page: var(--color-gray-50);
--bg-card: #ffffff;
--bg-hover: var(--color-gray-100);
/* 边框 */
--border-default: var(--color-gray-200);
--border-strong: var(--color-gray-300);
}
[data-theme="dark"] {
--text-primary: #f5f5f5;
--text-secondary: #a3a3a3;
--bg-page: #0a0a0a;
--bg-card: #171717;
--bg-hover: #262626;
--border-default: #2e2e2e;
--border-strong: #404040;
}
| Token | Size | 用途 |
|---|---|---|
| --text-xs | 0.75rem | 辅助说明、标签 |
| --text-sm | 0.875rem | 次要文字、表格内容 |
| --text-base | 1rem | 正文 |
| --text-lg | 1.125rem | 小标题、强调 |
| --text-xl | 1.25rem | 区块标题 |
| --text-2xl | 1.5rem | 页面标题 |
| --text-3xl | 1.875rem | 大标题 / Hero |
| 场景 | line-height |
|---|---|
| 标题 | 1.2 ~ 1.3 |
| 正文 | 1.5 ~ 1.6 |
| 紧凑(标签/按钮) | 1 ~ 1.2 |
Regular (400) — 正文
Medium (500) — 次标题、强调
Semibold (600) — 标题
Bold (700) — 仅用于极少数 Hero 场景
:root {
--space-1: 0.25rem; /* 4px */
--space-2: 0.5rem; /* 8px */
--space-3: 0.75rem; /* 12px */
--space-4: 1rem; /* 16px */
--space-5: 1.25rem; /* 20px */
--space-6: 1.5rem; /* 24px */
--space-8: 2rem; /* 32px */
--space-10: 2.5rem; /* 40px */
--space-12: 3rem; /* 48px */
--space-16: 4rem; /* 64px */
}
| 关系 | 间距 |
|---|---|
| 同组元素(label + input) | space-1 ~ space-2 |
| 相关元素(表单字段之间) | space-3 ~ space-4 |
| 区块内填充 | space-4 ~ space-6 |
| 区块之间 | space-8 ~ space-12 |
| 页面级留白 | space-12 ~ space-16 |
1. 大小对比 — 标题 vs 正文字号差 ≥ 1.5 倍
2. 色彩权重 — 深色 = 重要,浅色 = 辅助
3. 空白分隔 — 用留白代替分割线
4. 位置关系 — 重要信息靠上靠左(LTR 布局)
5. 视觉修饰 — 最后手段:边框、背景色、图标
| 场景 | 策略 |
|---|---|
| 后台表格/列表 | 紧凑模式,行高 40~48px,减少留白 |
| 详情页/表单 | 舒适模式,合理分组+留白 |
| 营销/落地页 | 宽松模式,大量留白突出核心信息 |
| 仪表盘 | 混合模式,卡片紧凑 + 卡片间宽松 |
:root {
--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.05), 0 2px 4px rgba(0, 0, 0, 0.04);
--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.06), 0 4px 6px rgba(0, 0, 0, 0.04);
--shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.08), 0 8px 10px rgba(0, 0, 0, 0.04);
}
| 元素 | 阴影 | 说明 |
|---|---|---|
| 普通卡片 | shadow-xs 或 border | 平面感,不浮起 |
| 悬浮卡片 | hover: shadow-md | 交互反馈 |
| 下拉菜单/弹窗 | shadow-lg | 明确浮层关系 |
| 模态框 | shadow-xl | 最高层级 |
:root {
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-xl: 16px;
--radius-full: 9999px;
}
同一页面圆角不超过 3 种尺寸。
1. 有目的 — 每个动效都传达状态变化
2. 快速 — 200~300ms,不拖沓
3. 自然 — ease-out 为主,模拟物理惯性
:root {
--duration-fast: 150ms;
--duration-normal: 250ms;
--duration-slow: 350ms;
--ease-default: cubic-bezier(0.4, 0, 0.2, 1);
--ease-in: cubic-bezier(0.4, 0, 1, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}
--bp-sm: 640px;
--bp-md: 768px;
--bp-lg: 1024px;
--bp-xl: 1280px;
--bp-2xl: 1536px;
| 元素 | 方案 |
|---|---|
| 布局 | Grid/Flex 自适应,避免固定宽度 |
| 字号 | clamp() 流式缩放 |
| 间距 | 移动端减半或使用较小 token |
| 导航 | lg 以下折叠为汉堡菜单 |
| 表格 | md 以下转为卡片列表 |
| 图片 | srcset + sizes,或 picture 元素 |
Primary(主操作) — 实心填充主色,每页最多 1~2 个
Secondary(次操作) — 描边/浅色背景
Tertiary(辅助) — 纯文字按钮,无背景无边框
Danger(危险操作) — 红色系,需二次确认
| 规则 | 说明 |
|---|---|
| Label 始终可见 | 不依赖 placeholder 传达字段含义 |
| 错误提示就近 | 在输入框下方,红色小字 |
| 必填标记 | * 在 label 后,颜色 --color-error |
| 分组 | 相关字段用标题/间距分组,不用边框围起来 |
| 操作区 | 主按钮靠右(或靠左,全站统一) |
空状态:简洁图标 + 一句话说明 + 行动按钮
加载态:骨架屏(首选)、Spinner(局部)、进度条(可量化)
| 规则 | 要求 |
|---|---|
| 颜色对比度 | 正文 ≥ 4.5:1,大字 ≥ 3:1(WCAG AA) |
| 焦点可见 | focus-visible 样式清晰可辨 |
| 键盘导航 | Tab 顺序合理,可键盘操作所有交互 |
| 语义化 HTML | 正确使用 heading 层级、landmark 元素 |
| Alt 文本 | 功能性图片必须有 alt |
生成页面/组件时必须:
[data-theme="dark"] 变量覆盖在生成 UI 代码后,自查以下项目:
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
当设计或修改 REST API 响应结构、处理 API 返回值时触发。防止 API 设计缺陷导致的字段错位、类型歧义等问题。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
当设计或修改 REST API 响应结构、处理 API 返回值,或生成 Excel/CSV/PDF/对账文件等下游产物时触发。防止 API 设计缺陷导致的字段错位、类型歧义,以及生成产物时关键字段缺失但静默成功的问题。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
网关/代理/WAF/CDN 中间件的安全关键词匹配实现规范,防止纯子串匹配误判正常响应内容中的技术术语(如 Cloudflare、502、error)
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
当 API/任务可能执行超过 10 秒(批量数据处理、远程 API 批量调用、全表扫描、跨租户聚合)时触发。防止同步接口被网关 30s 超时切断、用户重复点击触发并发、状态缓存内存泄漏等问题。提供异步任务状态机标准模板。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
当用户操作 .sh、Dockerfile、Makefile、.yml、.yaml 文件,或在 Markdown 中编写 bash 代码块时触发。提供 Bash 编写规范。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Bash 脚本与系统命令规范。禁止行尾注释,强制使用 tee/heredoc 写入,提升命令执行的可维护性。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.