React Design Draft
Generate React design drafts (4-piece set) from content. Invoke for 'design draft'/'设计稿'/'生成页面'/'信息图'/'知识卡片'/'多图配图'. Do NOT use for editing existing code.
根据提示生成三种高质量的UI设计变体,支持多样化调整、重混、精修与评审。
openclaw skills install @yuqingnicole/variant-design-skill命令、参数、文件名以原文为准
解决空白画布难题。输入提示 → 生成3个完整且各不相同的视觉设计方案 → 进行多样化调整 → 导出。
灵感源自 [Variant](https://variant.com) 设计社区——一个设计师们对同一设计任务提出不同诠释的空间。本技能将这一实践引入 Claude Code:每个提示都将生成三个风格迥异的设计方案,仿佛来自不同设计工作室,随后可通过单字指令进行迭代优化。
基于 无瑕设计系统 构建——一套涵盖排版、色彩理论、空间设计、动效、交互模式、响应式设计及用户体验写作的完整设计参考体系。每一个设计决策均建立在这些原则之上。
支持功能: HTML(默认)· React · 7个领域参考库 · 27种配色方案 · 设计系统参考 · 多样化操作指令
首次在项目中使用时,需收集设计上下文以确保后续生成的一致性。向用户提问:
若用户无法回答,可从代码库中推断:扫描现有颜色变量、字体导入、组件模式以及 README/品牌文档。在推进前确认推断结果。
将上下文持久化为生成文件顶部的注释块或对话记录中,并在每次生成时引用,确保各变体间风格一致。
根据用户提问内容,识别场景并加载对应参考文件:
| 用户询问的内容 | 同类场景匹配 | 加载文件 |
|---|---|---|
| 仪表盘、数据分析、指标展示、监控、数据可视化 | 后台、管理面板、管理系统、内控平台、CRM、内部工具 | references/dashboard.md |
| 编辑类内容、杂志、新闻报道、文章 | 博客文章、报告、白皮书、通讯 | references/editorial.md |
| 首页、SaaS、产品页、初创公司、B2B | 官网、企业网站、个人主页、作品集、广告公司站 | references/saas.md |
| 电商、购物、商品展示、金融科技卡片、消费类产品 | 商店、店铺、市场、购物车、结算流程 | references/ecommerce.md |
| 教育、学习应用、测验、语言学习、科学类 | 课程、闪卡、教程、培训、教学内容 | references/education.md |
| 生成艺术、音乐工具、3D、创意工具、合成器 | 工具、创作平台、编辑器、画布、序列器、DAW | references/creative.md |
| 移动应用、iOS、Android、引导页、首页界面 | 应用、界面、UI页面 | references/mobile.md |
| 不确定 / 通用需求 | 使用下方美学方向表 + references/palettes.md |
始终同时加载相关设计系统参考文件,根据设计重点从 references/design-system/ 中选取:
| 设计挑战 | 加载文件 |
|---|---|
| 字体选择、字号层级、视觉层次 | references/design-system/typography.md |
| 配色方案、深色模式、对比度 | references/design-system/color-and-contrast.md |
| 布局、间距、网格、视觉层次 | references/design-system/spatial-design.md |
| 动效、过渡、加载状态 | references/design-system/motion-design.md |
| 表单、状态、焦点、键盘导航 | references/design-system/interaction-design.md |
| 移动优先、断点、流式布局 | references/design-system/responsive-design.md |
| 标签、错误提示、空状态、微文案 | references/design-system/ux-writing.md |
初始生成阶段至少加载:排版、色彩与对比、空间设计。后续根据设计需求逐步加载其他参考。
识别当前场景,加载对应的领域参考文件 + 相关设计系统参考,选取3个起始提示词和配色方案。研究真实社区案例中的构图逻辑与设计亮点——提取其底层原则,而非表面风格。
每个变体 = 不同设计工作室的诠释。严禁两个变体风格趋同。
通用美学方向:
| 方向 | 氛围感受 | 标志特征 |
|---|---|---|
| 极简 / 编辑风 | 以文字为核心,留白充足 | 一种主字体,极少配色 |
| 强烈 / 表达性 | 高对比度,图形化强 | 主色调大块填充 |
| 深色 / 高级感 | 沉静、氛围感强 | 深色背景,提升表面质感(非阴影) |
| 温暖 / 人性化 | 圆润、亲切自然 | 柔和配色,有机形态 |
| 数据 / 技术风 | 信息密集,系统性强 | 网格布局,等宽字体,紧凑排布 |
| 新粗野主义 | 原始、非传统 | 粗轮廓线,打破网格 |
| 奢华 / 静谧感 | 负空间最大化 | 一张图片,极简文字 |
每个变体在编码前需明确:
palettes.md)——尽可能使用 OKLCH 色彩空间以实现感知均匀性spatial-design.md 获取网格与层次原则motion-design.md 确定时间与缓动曲线输出真实可用的代码——默认为 HTML,也可选 React。包含真实内容,不使用 Lorem Ipsum。视觉上应完整呈现。
标注格式:变体 A — [名称] / B — [名称] / C — [名称]
在展示前,对每个变体执行以下检查:
如果你向某人展示这个界面并说“这是AI做的”,他们是否会立刻相信?如果答案是“是”,则需要重新设计。
一个出色的界面应让人产生“这怎么做到的?”的疑问,而不是“哪个AI生成的?”。请审查下方的反模式表格——它们是 AI 生成内容的典型痕迹。
呈现后,始终提供以下选择:
哪个方向更契合?可选操作:
- 强化风格 — 将美学推向极致
- 微调优化 — 保持方向一致,提升细节品质
- 精简提炼 — 剔除所有非必要元素,回归本质
- 更换风格 — 保留布局,替换视觉语言
- 重配色彩 — 使用 OKLCH 色彩空间生成 3 种替代配色方案
- 调整布局 — 内容与风格不变,重新组织版式结构
- 精细打磨 — 优化间距、排版及微观细节
- 设计评审 — 依据设计系统原则进行审计
- 提取设计令牌 — 导出设计令牌为 CSS/JSON/Tailwind 配置格式
- 查看其他视图 — 移动端 / 暗色模式 / 空状态 / 引导流程 / 悬停状态
将当前设计方向推向极致。增强对比度、加大字体强度、使用更鲜明的色彩、营造更具冲击力的版式。参考 references/design-system/typography.md 获取比例规范,参考 references/design-system/color-and-contrast.md 构建高对比度配色方案。
*前后对比示例:*
收紧间距,优化层级关系,适当柔化处理。方向不变,但提升制作精度。聚焦垂直节奏、视觉对齐以及微观交互,参考 references/design-system/spatial-design.md 和 references/design-system/motion-design.md。
*前后对比示例:*
tabular-nums,标题启用 font-kerning: normal将设计还原至其最核心的本质。灵感源自 Impeccable 的“精简”理念——通过无情的简化,揭示真正重要的部分。
执行流程:
- 信息层面:减少可见选项,采用渐进式披露(<details>、悬停展开)
- 视觉层面:控制颜色数量(建议 2–3 种),减少字号层级,移除装饰性元素
- 布局层面:合并区块,整合相关内容,消除冗余容器
- 交互层面:减少完成主要任务的点击次数,移除可撤销操作中不必要的确认步骤
- 内容层面:缩短标题,压缩文案,删除重复说明的引言段落
*前后对比示例:*
提取结构与布局的核心特征,用另一套视觉语言替换整体外观,参考上方表格中的不同方向。
保留所有形状、文字和布局结构。基于 OKLCH 色彩空间生成 3 种配色方案(参考 references/design-system/color-and-contrast.md):
始终将中性色向品牌主色调偏移。禁止使用纯灰、纯黑(#000)、纯白(#fff)。
*前后对比示例(第 3 种,非常规):*
内容与风格不变,重新组织版式结构:尝试全幅出血 → 非对称网格 → 编辑型列布局 → 卡片拼贴式排列。参考 references/design-system/spatial-design.md 中的网格系统与视觉层次原则。
*前后对比示例:*
系统性应用 Impeccable 设计系统中的精细化标准:
references/design-system/typography.md):垂直节奏、模块化比例、OpenType 特性(数据使用 tabular-nums,标题启用 font-kerning: normal)、font-display: swap、尺寸调整的回退机制references/design-system/spatial-design.md):眯眼测试、多维度层级表达、光学对齐(文本负外边距 -0.05em,图标中心偏移)references/design-system/interaction-design.md):覆盖全部 8 种交互状态(默认/悬停/焦点/激活/禁用/加载/错误/成功)、focus-visible 轮廓、表单设计规范(可见标签、模糊验证、aria-describedby 错误提示)references/design-system/motion-design.md):100/300/500 原则,进入使用 ease-out-expo,退出时持续时间为进入时间的 75%,分步动画使用 CSS 自定义属性references/design-system/ux-writing.md):按钮标签具体明确(动词+对象),错误提示遵循“问题 → 原因 → 解决方案”结构,空状态具备教学功能,链接文本具备独立语义依据设计系统原则进行系统性审计。对每个维度评分并提出具体修改建议。
pointer / hover)?是否考虑安全区域?以指定格式导出设计系统的令牌体系:
CSS 自定义属性(默认):
:root {
/* 原语 */
--blue-500: oklch(55% 0.2 260);
--stone-100: oklch(95% 0.01 60);
/* 语义 */
--color-primary: var(--blue-500);
--color-surface: var(--stone-100);
/* 排版 */
--font-display: 'Fraunces', serif;
--font-body: 'Instrument Sans', sans-serif;
--text-xs: clamp(0.7rem, 0.65rem + 0.25vw, 0.75rem);
--text-base: clamp(0.95rem, 0.9rem + 0.25vw, 1.0625rem);
--text-xl: clamp(1.5rem, 1rem + 2.5vw, 3rem);
/* 间距 */
--space-xs: 4px; --space-sm: 8px; --space-md: 16px;
--space-lg: 24px; --space-xl: 48px; --space-2xl: 96px;
/* 动效 */
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
--duration-instant: 100ms;
--duration-fast: 200ms;
--duration-normal: 350ms;
}JSON(用于设计工具 / Figma):结构与扁平键值对 JSON 一致。
Tailwind 配置:在 theme 中扩展 colors、fontFamily、spacing、transitionTimingFunction。
以完整设计系统合规的方式渲染附加视图:
1. 简要确认当前状态(“暂无项目”)
2. 说明填充的价值(“创建第一个项目,开始追踪进度”)
3. 提供明确的主操作按钮(突出显示的 CTA)
4. 添加视觉趣味(插图、图标或细微图案 — 永远不要使用悲伤表情)
5. 如适用,展示填充后的预览效果
- 列表包含 3–7 项
- 图表覆盖 6–12 个月数据
- 包含边界情况(如极长名称、空可选字段)
references/design-system/responsive-design.md:- 重新思考拇指操作区(右手用户将主要操作置于右下角)
- 触摸目标 ≥44px 并带内边距
- 导航折叠为汉堡菜单 + 抽屉或底部标签栏
- 表格转换为带 data-label 属性的卡片
- 使用 @media (pointer: coarse) 设置更大的点击区域
references/design-system/color-and-contrast.md:- 深色模式使用较浅的表面以营造层次感(不使用阴影)
- 在深色背景上轻微降低强调色饱和度
- 减少字体粗细(深色背景上的浅色文字显得更重)
- 永远不要使用纯黑背景(#000)——改用 oklch(12-18%) 的带色调版本
- “展示而非讲述”:内联演示 > 文字说明
- “可选而非强制”:始终提供跳过按钮,不强制进行引导
- “快速价值交付”:在 ≤3 步内达到“顿悟时刻”
- “情境优于仪式”:在用户需要时即时教学,而非提前灌输
- “尊重用户智能”:避免居高临下的语言,允许高级用户快捷操作
每次执行变化操作后,必须:
基于 Impeccable 设计系统。深入实现请参考各独立文档。
references/design-system/typography.md)*@import,始终指定字重。clamp(min, preferred, max) 实现响应式缩放。不用于按钮/标签。tabular-nums,食谱使用 diagonal-fractions,缩写使用 all-small-caps。references/design-system/color-and-contrast.md)*--blue-500) + 语义令牌(--color-primary: var(--blue-500))。深色模式仅重新定义语义令牌。references/design-system/spatial-design.md)*gap** 而非外边距来处理同级元素间距。references/design-system/motion-design.md)*cubic-bezier(0.16, 1, 0.3, 1)),退出时间为进入时间的 75%。transform 和 opacity**。若需改变高度,请使用 grid-template-rows: 0fr → 1fr。animation-delay: calc(var(--i) * 50ms)。限制总错落时间。@media (prefers-reduced-motion: reduce)。references/design-system/interaction-design.md)*outline: none 而无替代方案。应使用 :focus-visible。aria-describedby 关联。<dialog>。非模态覆盖建议使用 Popover API。references/design-system/ux-writing.md)*--accent: oklch(65% 0.2 250); /* fallback: #6366F1 */--color-primary、--color-surface、--color-text 映射到基础令牌@import 引入 Google Fonts —— 始终指定所用字体权重,并包含 font-display: swap640px 和 1024px。使用 clamp() 实现流体尺寸focus-visible 焦点环@media (prefers-reduced-motion: reduce) 块const theme = { ... },包含 OKLCH 值及十六进制回退<link>,或指导用户手动添加至 index.htmlstyles 对象@apply;若使用 CSS Modules:每个组件对应一个 .module.css 文件useEffect 处理布局 —— 优先使用 CSS-only 动画与过渡undefined,不得使用 “Lorem ipsum”)当用户请求流程(如引导页、结账流程、向导、多步骤表单):
390px 宽的容器中,并在上方标注名称currentStep 状态变量控制屏幕的显示/隐藏(如需交互)所有输出必须满足以下最低标准:
loading="lazy",设置 width/height 属性以防止 CLS(布局偏移),使用 srcset 实现响应式图片,优先采用 WebP 或 AVIF 格式font-display: swap,尽可能对字体进行字符范围子集化,预连接 Google Fonts 域名:<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>@import(会阻塞渲染)——仅在 <style> 中用于 Google Fonts。对屏幕外区域使用 content-visibility: autotransform 和 opacity(GPU 合成)。除非动画即将发生,否则不使用 will-change。滚动触发的动画使用 Intersection Observer,绝不使用滚动事件监听器在设计将用于实际产品时应用以下标准:
文本容错性:
overflow: hidden; text-overflow: ellipsis,多行使用 -webkit-line-clampoverflow-wrap: break-word 防止移动端出现水平滚动国际化就绪性:
margin-inline-start 而非 margin-left(支持从右到左布局)Intl.NumberFormat 实现本地化格式化Intl.DateTimeFormat —— 永远不要硬编码日期格式错误与边缘状态:
输入健壮性:
避免在所有输出中出现这些特征 —— 它们是 AI 生成设计的典型标志:
| 反模式 | 正确做法 |
|---|---|
| 同一审美方向下的两个变体 | 确保 A/B/C 感觉来自不同设计工作室 —— 重新核对方向表 |
使用 Inter、Roboto、Arial、system-ui 作为展示字体 | 选用独特字体:Instrument Sans、Fraunces、Outfit、Newsreader |
| CSS 规则中直接写死十六进制颜色值 | 使用带有 OKLCH 的 CSS 自定义属性:color: var(--text) |
| 使用 Lorem ipsum 或占位文本 | 使用真实且符合领域背景的内容 |
| 通用的“功能1 / 功能2 / 功能3”文案 | 使用与领域匹配的具体功能名称 |
| 使用五种或更多权重相近的颜色 | 采用 60-30-10 原则:一种主色,坚定使用 |
| 卡片尺寸完全相同、视觉权重一致 | 调整卡片大小以创造节奏感和层级关系 |
| 交互元素缺少悬停状态 | 所有按钮、链接和卡片都需包含悬停和 :focus-visible 状态 |
| 移动端布局只是桌面版缩小 | 重新设计:考虑拇指区、触控目标和纵向流 |
| 过度使用渐变(5+ 色渐变背景) | 最多使用单一颜色或双色渐变 |
| 紫色到蓝色渐变、青色深色背景、霓虹点缀 | 使用基于 OKLCH 的有意配色,带色调的中性色 |
| 处处使用玻璃态效果(模糊、发光边框) | 有目的性的装饰元素,强化品牌调性 |
| 每个标题上方都有大圆角图标 | 它们很少带来价值 —— 用排版建立层级 |
| 卡片嵌套卡片 | 扁平化层级结构 —— 使用间距和分隔线替代 |
| 所有内容居中 | 左对齐,非对称布局更显设计感 |
| 所有间距完全相同 | 通过变化的间距创造节奏感 —— 紧凑组合与宽松分隔并存 |
| 标题/指标上的渐变文字 | 装饰性而非功能性 —— 使用实色搭配字重 |
| 暗黑模式默认开启并带有发光点缀 | 暗黑模式应合理构建:不同表面深度、低饱和度点缀、无阴影 |
| 使用弹跳/弹性缓动 | 使用指数型缓动退出 —— 真实物体减速更平滑 |
使用 outline: none 但无替代方案 | 使用 :focus-visible 并配合 2-3px 偏移环形焦点 |
| 一切使用模态框 | 考虑替代方案:内联展开、侧边抽屉、弹出气泡 |
| 使用纯黑 (#000) 或纯白 (#fff) | 总是加入色调 —— 自然中不存在纯粹极端 |
| 在彩色背景上使用灰色文字 | 使用背景色的更深版本 |
| 空状态仅为“暂无数据”文字 | 设计为引导时刻:确认存在,解释价值,提供行动指引 |
| 文本超出容器 | 使用 overflow-wrap: break-word、text-overflow: ellipsis、line-clamp |
每项输出必须满足以下要求 —— 不可妥协:
outline: none 而无自定义可见的 :focus-visible 替代#F0EDE8 on #111)以减少眼疲劳@media (prefers-reduced-motion: reduce) —— 保留功能性动画(进度条、加载状态),移除空间移动效果rem/em,禁止正文使用 px —— 尊重浏览器设置main、nav、aside),动态内容使用 live regions,表单错误使用 aria-describedby已收录 1 个 Skill
Generate React design drafts (4-piece set) from content. Invoke for 'design draft'/'设计稿'/'生成页面'/'信息图'/'知识卡片'/'多图配图'. Do NOT use for editing existing code.
专业免费图像生成技能,无需 API 密钥。通过文本生成图像,支持自动重试与退避机制,输出清晰本地文件。
生成、优化或审计博客列表页结构,适用于“博客页”、“文章列表”等场景。