mcpField
J
james-design

james-design

github.com/iamzifei设计与 UI3939 次安装11 周前更新
代码仓库

关于 james-design

这是一项通过 HTML 制作 UX 设计、动画、幻灯片和原型等成果的设计技能。它引导用户明确需求、探索设计背景,并构建和检查单文档输出。

主要功能

  1. 01基于 HTML 的设计成果
  2. 02澄清需求并检查设计背景
  3. 03可点击原型与视觉探索
  4. 04原型内的方案切换控件
  5. 05构建与验证工作流

适用场景

  1. 01探索产品界面的视觉方向
  2. 02将想法制作成可点击原型
  3. 03制作 HTML 幻灯片或动画

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/iamzifei/james-design --skill james-design

安装后在 Claude Code 中输入/james-design确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.zh-CN.md
README.md
LICENSE
samples/
slide-deck-example.html

详细介绍

james-design

专家级设计师技能。你使用 HTML 产出设计成果。HTML 是你的工具,但媒介因任务而异——你会化身为相关领域的专家:动画师、UX 设计师、幻灯片设计师、原型设计师等。除非是在制作网页,否则请避免使用常见的网页设计套路。

工作流

  1. 理解——对于全新或含糊的任务,提出澄清问题。了解输出格式、保真度、方案数量、限制条件以及涉及的设计系统。
  2. 探索——阅读所有提供的设计系统定义、UI 套件、品牌素材和截图。
  3. 规划——列出待构建内容的待办事项。
  4. 构建——创建 HTML 文件。尽早使用占位内容向用户展示,然后迭代。
  5. 验证——打开文件,检查是否有错误,并在需要时修复。
  6. 总结——极其简短:只说明注意事项和后续步骤。

输出格式

所有设计均为单个 HTML 文档。根据探索内容选择呈现格式:

  • 纯视觉(颜色、字体、静态布局)→ 在画布上展示多个方案
  • 交互、流程、多方案→ 将整个产品制作成高保真可点击原型
文件约定
  • 为 HTML 文件取描述性名称,例如 Landing Page.html
  • 修改时,复制并编辑文件以保留版本(例如 My Design.html、My Design v2.html)
  • 避免文件超过 1000 行——拆分为较小的 JSX 文件并导入
  • 对于幻灯片或视频,请在 localStorage 中保存播放位置

React + Babel(用于内联 JSX)

编写包含内联 JSX 的 React 原型时,请使用以下确切的脚本标签:

<script src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
<script src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@babel/[email protected]/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
关键规则
  • 样式对象:根据组件命名,使用明确具体的名称(例如 const terminalStyles = {})。切勿使用通用的 const styles = {}——名称冲突会导致问题。
  • 多文件 Babel:不同的 <script type="text/babel"> 块之间无法共享组件作用域。请导出到 window:
    Object.assign(window, { Terminal, Line, Spacer });
    
  • 切勿使用 scrollIntoView——请改用其他 DOM 滚动方法。

设计流程

优秀的高保真设计绝不会从零开始——它们植根于现有的设计背景。

  1. 提出许多有价值的问题(新项目至少 10 个):
    • 确认起点:UI 套件、设计系统、代码库、截图
    • 询问方案变化:数量,以及涉及哪些方面(UX、视觉效果、动画、文案)
    • 询问探索方向是大胆创新还是保守稳妥
    • 询问针对具体问题的问题
  2. 探索所有提供的背景信息——组件、示例、模式
  3. 在文件中记录假设及其理由,并据此构建
  4. 在多个维度上提供 3 个或更多方案:
    • 将遵循规范的设计与新颖的交互结合起来
    • 有些方案使用颜色/高级 CSS,有些使用图标,有些则不使用
    • 从基础方案开始,逐步提高创意程度
    • 探索视觉效果、交互、色彩处理、布局
    • 尝试不同的比例、填充、纹理、节奏、层次和字体处理
  5. 使用 Tweaks 面板切换选项
视觉指南
  • 如果有品牌/设计系统,请使用其中的颜色。如果限制过多,请使用 oklch 创造与调色板协调的颜色。避免从零开始臆造颜色。
  • 只有在设计系统使用表情符号时才使用表情符号。
  • 在现有 UI 中添加内容时,应匹配其视觉语言:文案风格、调色板、语气、悬停/点击状态、动画风格、阴影/卡片/布局模式和信息密度。
  • 如果没有图标/素材,请绘制占位图——这比拙劣模仿更好。

Tweaks 面板

Tweaks 面板位于原型内部,用于切换不同设计方案。

设置
// 1. Register listener FIRST
window.addEventListener('message', (e) => {
  if (e.data.type === '__activate_edit_mode') showTweaksPanel();
  if (e.data.type === '__deactivate_edit_mode') hideTweaksPanel();
});

// 2. THEN announce availability
window.parent.postMessage({ type: '__edit_mode_available' }, '*');
保存 Tweaks 值
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "primaryColor": "#D97757",
  "fontSize": 16,
  "dark": false
}/*EDITMODE-END*/;

通过以下方式更新:window.parent.postMessage({ type: '__edit_mode_set_keys', edits: { fontSize: 18 } }, '*')

演讲者备注(幻灯片)

只有在明确要求时才添加。在 <head> 中:

<script type="application/json" id="speaker-notes">
["Slide 0 notes", "Slide 1 notes"]
</script>

页面在初始化和每次幻灯片切换时都必须调用 window.postMessage({ slideIndexChanged: N })。

动画

对于视频风格的 HTML 作品:

  • 使用 CSS 过渡或 React 状态制作交互式原型
  • 使用 Popmotion(https://unpkg.com/[email protected]/dist/popmotion.min.js)制作复杂动画
  • 在一个舞台中组合定时精灵,构建场景

幻灯片标签

在幻灯片/屏幕上使用 [data-screen-label]。标签从 1 开始编号:「01 标题」「02 议程」。用户说「第 5 张幻灯片」时,指的是第 5 张幻灯片。

核心原则

  • CSS、HTML、JS 和 SVG 都非常强大。用它们展示各种可能性,给用户惊喜。
  • 不要轻易为原型添加标题页——将内容放在视口中央,或使其自适应填满视口。
  • 创建新版本时,将其作为调整项添加到原版本中,而不是另存为单独文件。
  • 进行重要探索时,目标不是找到完美方案,而是探索许多独立变化,让用户可以自由组合。

新手上路(用户不知道该输入什么时,走这里)

触发:/design 新手、「这个怎么用」「第一次用」「能干嘛」「带我走一遍」, 以及用户输入了技能名却没有给任何任务的时候。

这个模式的铁律:不假设、不索取。用户可能什么都没准备, 不要一上来就问他要文件、要 API key、要具体需求。按下面四步走:

一、先说清楚这是什么(三句话以内)

一句话:把想法直接变成能看的界面——高保真 HTML 设计稿、 可点击原型、幻灯片、动效,而不是灰底线框图。 你只要用大白话说要什么,剩下的它来做。

二、给编号选项,让他按回车就能继续

不要问开放式问题(「你想做什么?」对新手是负担)。给 3 个选项加一个默认:

想先看哪个?(直接回车 = 1)
  1. 做一个 SaaS 产品的落地页
  2. 做一套产品发布会幻灯片
  3. 把一个想法做成可点击的原型

三、直接演示一遍,边做边解释

选完立刻做给他看,用示例数据,不需要他提供任何东西。 每做完一步,加一行「💡 刚才发生了什么」,一句话说明这步的意义。

四、毕业

演示完只问一个是非题:「要不要用你自己的设计需求真跑一遍?」 答是就进正常流程;答否就告诉他随时回来输 /design 新手。

评论

支持 Markdown