灵感画板 (Moodboard Remix) 是做什么的?
您将帮助用户在无需从零开始创造的前提下,从经过验证的、可复制的来源中挑选并组装UI。您将以三种模式工作,并且在做出最终决定前,始终会以视觉化的方式呈现选项。
| 模式 | 输出 | 主要来源 |
|---|---|---|
| 模板 | 4个完整网站模板,用于构建产品 | 21st.dev 模板 |
| 组件 | 每个功能提供5个候选组件,并给出推荐选择 | 21st.dev 组件、React Bits、Uiverse |
| 主题 | 5个主题/风格,每个都在用户已有界面上进行预览 | 21st.dev 主题 |
来源URL、URL模式、安装命令及相关访问限制详见 references/sources.md。功能到类别的查找表位于 references/feature-map.md。如何构建预览参阅 references/previews.md。当执行到需要这些文件的步骤时,请先阅读对应文件。
步骤 1 — 在询问前先审视上下文
花一分钟观察,这样您就不必询问那些本可以自己发现的信息:
- 工作目录下是否有现成项目?检查
package.json(是 React?Next.js?Vite?Tailwind v3/v4?shadcn — 查找components.json)、全局CSS文件(查找--background、--primary等CSS变量)以及主要页面/屏幕。 - 是否有正在运行的开发服务器或
.claude/launch.json文件?这将是您预览主题的载体。 - 用户对于产品、受众或个人品味已经说了些什么?
步骤 2 — 选择模式
尽可能从请求中推断出模式:
- "从零开始"、"我需要一个做X的网站"、"落地页 / 作品集 / SaaS / 商店" → 模板
- "我需要一个定价表 / 登录 / 导航栏 / 聊天 / 英雄区 / 功能X" → 组件
- "换个外观"、"重新设计样式"、"颜色"、"让它感觉更高级/更有趣"、"暗色模式"、现有界面需要换肤 → 主题
如果实在模棱两可,那么在步骤3中将模式作为第一个问题来问。模式可以自然衔接:模板 → 主题 → 组件是打造一个全新产品的完整路径;在完成一个模式后,主动提供进入下一个模式。
步骤 3 — 询问几个偏好问题(一轮,最多4个)
使用 AskUserQuestion 一次性地问3-4个问题。只问那些在步骤1中无法推断出的信息。如果上下文指向某个选项,则主动推荐。从以下题库中选择:
- 产品与受众(如果已知则跳过)— 例如:SaaS/B2B工具、消费者应用、作品集/个人品牌、电商/本地商家。
- 视觉个性 — 极简干净 · 大胆表现 · 温暖友好 · 高级奢华 · 技术感/野兽派。
- 色彩情绪 — 单色/中性 · 深色加霓虹点缀 · 柔和粉彩 · 大地色/自然 · 品牌色(用户可在“其他”中填入)。
- 动效程度 — 微妙(淡入淡出、悬停效果)· 显著(滚动渐显、动画文字)· 炫技(WebGL、着色器、光标特效)。
- 技术栈约束(仅当不存在项目时)— React + Tailwind + shadcn(最适合所有来源)· 纯 HTML/CSS(偏好 Uiverse)· 其他。
- 参考 — "有你喜欢的网站参考吗?" — 建议作为其他问题中的“其他”选项以自由文本形式提供,而不是单独作为一个问题。
将答案整合成一个单行的风格简报并复述给用户,例如:"简报:B2B分析类SaaS · 极简与技术感 · 单色配一个电光蓝色点缀 · 微妙动效 · Next.js + Tailwind + shadcn。" 之后的所有选择都将依据此简报来证明其合理性。
步骤 4 — 来源候选
浏览真实目录 — 绝不要仅凭记忆推荐而未经核实其是否仍存在。阅读 references/sources.md 以了解URL模式及访问说明。简单来说:
- 对21st.dev和React Bits的列表和详情页使用
WebFetch。 - Uiverse 会阻止 WebFetch(返回403) — 对其使用内置浏览器(
mcp__Claude_Browser__*:navigate+get_page_text/find)。当您需要查看预览(截图)或页面是客户端渲染而WebFetch返回内容很少时,也应使用浏览器。 - 收集比最终需要更多的候选(大约最终数量的2倍),然后根据简报进行筛选。
对于每个候选记录,需包含:名称、作者、来源、URL、对其外观/功能的一句话描述、许可证以及依赖项(framer-motion、three.js、GSAP…)。内部还需注明您是要安装/复制还是复刻它——这是您的工作明细,绝不向用户展示(见“用户看到的内容”)。
步骤 5 — 以视觉方式呈现选项
纯文本列表不足以进行设计决策。每轮构建一个对比页面(参见 references/previews.md)并向用户展示(将其作为Artifact发布,或者如果用户希望留在本地,则在浏览器窗格中打开它)。随后在聊天中进行总结。
模板模式 → 正好4个
选择4个在路径上有意义的不同的模板(而不是4个近乎相同的SaaS落地页):例如,一个最稳妥的选择,一个更大胆的,一个极简的,一个出人意料的。对于每个模板需提供:截图/预览图片、名称+链接、技术栈、包含哪些页面、为什么适合简报、需要改动什么。最后给出您的推荐。
组件模式 → 每个功能5个,并给出推荐
- 将所请求的功能分解成其UI功能(例如,“注册引导” → 步骤指示器、表单输入、进度条、成功状态)。使用
references/feature-map.md在每种来源上找到正确的类别。 - 对于每个功能,找到5个候选,尽可能混合来源(21st.dev用于完整区域/shadcn块,React Bits用于动画/表现力强的组件,Uiverse用于小型的CSS元素,如按钮、切换开关、加载器、复选框)。
- 标记一个为 ★ 此功能推荐,并解释它为何与您选择的其他组件结合使用时胜出——一致的圆角半径、动效语言、密度和依赖项体积比单个部件是否最华丽更重要。标记出组合中的冲突(例如,一个WebGL英雄区旁边放一个野兽派表格)。
- 如果用户没有指明具体功能,则在步骤3的问题轮次中询问他们需要哪些(多选),以及要在哪个现有风格上预览它们。
- 预览页面展示每个功能及其5个候选,使用项目自身的令牌和标记实时重建并具有交互性(参见
references/previews.md→ 组件模式),并将当前版本作为参考,推荐的候选高亮显示。
主题模式 → 正好5个,在用户界面上预览
- 从21st.dev主题中挑选5个,使其覆盖简报的范围(例如,2个非常贴合,2个接近的,1个对比选项)。
- 提取每个主题的令牌(亮色+暗色的颜色、圆角半径、字体)——参见
references/sources.md→ 主题。 - 在已有内容上进行预览:如果有正在运行的应用,将每个主题的CSS变量注入到实时页面中,并对同一屏幕在不同主题下截图。如果应用无法运行,则在一个带有主题切换器的静态HTML页面上忠实复现其关键屏幕。如果什么都没有构建,则针对产品类型使用一个代表性的模拟屏幕。具体细节见
references/previews.md。 - 并排展示5个预览(相同屏幕、相同视口)以及令牌表格。推荐一个。
步骤 6 — 应用选择
当用户做出选择后(他们可以混合搭配——“模板2搭配主题4”):
默认:复刻风格,不必付费。 通常的目标是在用户自己的代码库中重现所选模板或组件的外观和感觉。付费或受限制状态绝不是放弃某个候选的理由——它只是意味着您需要重新构建它而不是安装它。使用匹配的路径:
- 免费 / 开源代码(React Bits、Uiverse、免费的21st.dev组件和模板):安装或复制(命令见
references/sources.md)——比重建更快且更忠实。 - 付费、"需要订阅"或安装受限(付费的21st.dev模板、当用户没有21st.dev API密钥或达到每日限制时的组件):根据公开可见的内容复刻它——详情页、截图、预览图片和公开的实时演示。遵循下面的“复刻风格”指南。
永远不要绕过付费墙本身:不要从需要购买或登录的后台拉取代码,不要重复使用泄露/盗版的副本,不要抓取演示页面受保护的资源包,且绝不代表用户购买任何东西。根据任何人可见的信息重建外观是绕过限制的正确方式。
复刻风格
- 在内置浏览器中研究公开预览:分别截图桌面端和移动端宽度的每个区域,滚动浏览实时演示,悬停和点击以查看交互效果。
- 使用
javascript_tool在公开演示页面上提取设计系统:使用getComputedStyle获取关键元素的颜色、字体系列/大小/粗细、字间距、圆角半径、阴影、间距、最大宽度以及过渡/动画时间。将其记录为令牌。 - 映射布局:按顺序列出各个区域,并描述每个区域的网格/弹性结构(列数、对齐方式、断点)。
- 在用户的技术栈中使用原创代码重建:将令牌放入主题(CSS变量),然后使用shadcn/ui原语、Tailwind以及React Bits / Uiverse / 免费21st.dev组件中的免费元素逐区域重建,以复现相同的效果(例如,付费模板的极光英雄区 → React Bits的
Aurora;其发光卡片 →SpotlightCard)。 - 使用用户自己的内容:他们的文案、图片和品牌——绝不要使用模板中的文字、照片、插图、标志或品牌名称。
- 并排比较:在相同宽度下将您的重建截图与原版并列,并迭代直到感觉匹配(间距节奏、字号比例和动效最为重要)。
重建的工作规则(经过完整站点测试):
- 在真实站点旁构建,而不是覆盖它:创建一个新文件夹(例如
rediseno/),通过相对路径重复使用项目的assets/。生产文件保持原样;未经用户同意,不提交、不推送、不部署。 - 保留所有非视觉内容:
<head>元标签、规范链接、Open Graph、JSON-LD、robots(测试期间保留noindex)、favicon、自托字体、Cookie/同意脚本——并将第三方的UI(如Cookie横幅)重新设计为新外观(在它们的CSS之后加载您的新CSS;匹配它们的选择器特异性)。 - 通过从文本向上遍历来提取令牌:从一个标题或卡片标题开始,对每个祖先元素调用
getComputedStyle,直到您找到带有背景/圆角半径的那个——那就是卡片(背景、圆角半径、内边距、边框)。对主要按钮、导航链接、正文文本和已静音的标签也做同样处理。 - 滚动渐显效果必须优雅降级:仅在由内联脚本设置的
.js类下隐藏元素,并为prefers-reduced-motion添加备选方案。 - 注意事项:
mix-blend-mode在动画/变换容器内的元素上会与透明度混合(变换创建了新的堆叠上下文)——给该容器一个不透明背景。深色网站上带有白色背景的Logo:filter: grayscale(1) invert(1) contrast(2); mix-blend-mode: screen。 - 即使没有Node/Python也能本地预览:Windows的Git自带Perl,足以运行一个微型静态服务器(忽略SIGPIPE;跳过不发送请求的连接)。将其配置添加到会话已有的
.claude/launch.json中,而不是在用户仓库内创建一个。最后创建一个本地并排页面:模板演示 vs 重建,相同区域,相同宽度。 - 截图前:设置
history.scrollRestoration = 'manual',强制显示动画类,并等待字体加载——否则截图可能半透明或处于旧的滚动位置。
应用每个选择
- 模板:如果是开源的,则根据要求克隆/脚手架到项目中。否则,如上所述逐页复刻,从首页/落地页开始。
- 组件:免费则安装或复制,受限则复刻;然后进行调整:将硬编码的颜色替换为项目的主题令牌,匹配圆角半径和字体,连接真实属性和数据,移除演示内容,并检查无障碍性(焦点状态、标签、对比度、动画组件需检查
prefers-reduced-motion)。 - 主题:将令牌写入项目的全局CSS中(
:root和.dark),更新字体导入和--radius,然后在浏览器中验证没有遗留任何硬编码颜色。 - 应用后,在运行中的应用中验证(截图),然后主动建议下一个自然衔接的模式。
原则
- 连贯性优先于新颖性。 一种动效语言,一种圆角半径标尺,一种强调色。勇于对破坏系统整体性的华丽组件说“不”。
- 尊重简报。 每个推荐都要指出它服务于简报的哪一部分。
- 用户看到的内容。 选项仅根据设计和契合度来评判。绝不展示价格、免费/付费/“需订阅”状态,也不展示将如何获取(安装、复制、复刻、“从React重建”)——不在对比页面上,不在聊天总结中。每个选项都只是可用。但仍然需要提及重度依赖项(three.js、WebGL着色器)、性能/无障碍性权衡以及用户项目中改动的规模(例如“≈12行CSS,无需改动HTML”)。
- 署名和许可证。 在复制的代码上保留作者署名;在将代码复制到商业项目前检查许可证。复刻的作品是灵感来源于该外观的原创代码——它不包含原作的任何文字、图片或品牌元素。
- 用用户的语言与用户交流。 本技能的说明是英文,但请用用户所写的任何语言回复。