mcpField
H
html-to-interaction-prompts

html-to-interaction-prompts

github.com/mengto设计与 UI7.1k1.5k 次安装3 天前更新
代码仓库

关于 html-to-interaction-prompts

html-to-interaction-prompts 是一项设计技能,可将 HTML 参考页面转化为交互提示词与配套证据。它涵盖源码检查、截图和视频采集、文章编排及交付验证,适用于 UI 灵感记录和 AI 构建提示词制作。

主要功能

  1. 01检查 HTML、CSS 与脚本
  2. 02按交互概念拆分提示词
  3. 03采集截图与动态帧
  4. 04整理文章与本地媒体
  5. 05验证文件与文章结构

适用场景

  1. 01为参考页面制作交互提示词包
  2. 02记录每日 UI 灵感与页面证据
  3. 03为落地页编写分区构建提示词
  4. 04核对文章中的媒体与清单

安装

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

$npx skills add https://github.com/mengto/skills --skill html-to-interaction-prompts

安装后在 Claude Code 中输入/html-to-interaction-prompts确认已加载。

包含的文件

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

agents/
openai.yaml
demo/
expected-output.md
index.html
input.md
PROMPT.md

详细介绍

HTML 转交互提示词

目标

将 HTML 参考资料转换为可用于文章的提示词包:识别重要交互,捕捉合适的视觉证据,编写灵活的提示词,在每个提示词标题下插入截图,验证文章的渲染效果,并且只提交预期文件。

每日 UI 灵感采集规范

在将此技能用于每日 UI 灵感工作流时:

  • 每篇每日灵感文章必须恰好包含 5 个灵感,而不是 20 个。
  • 不要提交截图画廊,也不要附加 20 条浅显的提示词。
  • 这 5 个灵感中的每一个都必须包含一张本地代表性静态图、一段嵌入式本地 MP4 视频、多张本地截图或动态帧、动态/交互说明、来源元数据,以及一条极其详细的 AI 构建器提示词。
  • 如果来源是 Framer 模板或任何其他实时网站,请在浏览网站本身的过程中滚动页面,记录实际的落地页或预览 URL。市场页面封面图、缩略图、截图平移或静态素材幻灯片,都不能作为实时视频证据。
  • 对于 Framer,请检查市场详情页中的 Full Live Preview 或嵌入的 previewUrl,将该 URL 保存为 pageUrl,并录制该页面的 MP4。
  • 对于实时网站,保存一张涵盖完整落地页滚动内容的长图。然后从这张完整图片中逐段截取各个版块,确保文章中既包含整页截图,也包含每个版块的单独截图。
  • 各版块裁剪图必须与整页图片连续衔接,并完整保留像素。不得漏掉版块之间的像素,不得用任意视口截图替代版块截图;只有在粘性元素导致无法避免时才允许重叠。
  • 根据页面中有意义的版块数量,尽可能多地提供版块裁剪图。至少包含 hero、按页面顺序排列的每个主要中间版块,以及页脚。尽可能使用体现用途的标签,例如 proof、features、process、gallery、pricing、faq 或 final-cta;否则使用 section-02 这类有序标签。
  • 在 content.md 中,遵循近期示例中确立的每日采集文章结构。使用 ### Full-Page And Section Evidence,以普通 Markdown 图片形式展示整页截图,然后使用 #### Section Crops,按从上到下的顺序将每张裁剪图作为普通 Markdown 图片展示。不得将此区块重命名为 Local Evidence,也不得使用文本链接、文件名列表、Markdown 表格、原始 HTML 网格或裁剪坐标说明。
  • 不要在 content.md 的截图下方添加裁剪坐标说明;裁剪坐标详情应保存在 manifest.json 中。
  • 从实时网站视频中提取多个动态帧。这些帧应展示滚动过程中的真实页面状态,而不是对同一张封面图重复裁剪。
  • 如果实时采集受阻,优先用其他实时网站替换该候选项。只有在无法替换或来源仅包含图片时,才从静态证据创建本地备用视频,并在 content.md 和 manifest.json 中说明使用备用方案的原因。
  • 每个灵感的提示词都必须足够长,可以直接粘贴到 AI 构建器中。内容应包括参考边界、反模式、核心理念、设计系统、布局规则、动态系统、逐版块结构、转化设计/页脚、响应式行为、无障碍、性能和减少动态效果的指导。
  • 每条提示词都必须逐版块描述落地页。涵盖全局框架、页眉/导航、hero、信任背书条、功能/服务模块、产品/演示/媒体版块、流程/工作方式、图库/案例研究/作品版块(如有)、客户评价/社会证明、定价/套餐/比较版块(如有)、常见问题、最终行动号召、页脚和移动端行为。
  • 对于每个主要版块,都要说明其用途、布局结构、视觉细节、动画、交互状态、滚动行为、建议使用的实现库/API,以及减少动态效果时的替代方案。
  • 对于 Framer/实时网站,每条提示词都必须包含 Live-site evidence 说明,明确静态图、MP4 和动态帧均采集自实际的 pageUrl,而非封面图。
  • 清单必须包含 itemCount: 5,且恰好包含 5 个 items。
  • 所有媒体都必须存放在 articles/YYYY-MM-DD-ui-inspiration-capture/ 中。

工作流

  1. 先检查实际源码。

    • 阅读 HTML、CSS 和脚本。搜索 mousemove、pointermove、canvas、webgl、ScrollTrigger、requestAnimationFrame、hover、sticky、pin、parallax、magnetic、glow、shader 和 animation 等交互相关术语。
    • 以源码行为为准。HTML 可用时,不要仅凭截图推断具体效果。
    • 编辑前检查当前 git 状态。工作区有未提交更改很常见;暂存时尽量缩小范围。
  2. 确定提示词列表。

    • 按可复用的交互概念拆分提示词,而不是按实现代码行数拆分。
    • 如果用户的一条要点包含两种不同效果,只有在拆分后能让文章更有用时才拆分。
    • 按交互概念为每个章节命名,例如 跟随鼠标的 Hero 粒子场、卡片悬停时的光标辉光 或 滚动行为与章节显现系统。
  3. 编写可复用的提示词。

    • 提示词要足够灵活,适用于任何品牌、配色系统、卡片尺寸、布局或内容模型。
    • 聚焦核心理念、技术、实现方式、交互行为、滚动编排、性能和无障碍。
    • 除非用户明确要求精确复现,否则避免写死具体值。不要将提示词限定为某一种颜色、尺寸、阈值、DOM id、卡片类型或资源。
    • 优先采用以下结构:
      • 核心理念
      • 技术
      • 实现方式
      • 交互
      • 成功标准
    • 对于落地页,使用 Section anatomy 区块扩展结构。每个章节都要包括:
      • 目的:该章节在故事叙述、建立信任或转化路径中必须发挥什么作用。
      • 布局:网格、列布局行为、媒体位置、粘性区域、卡片结构、CTA 位置、间距以及响应式折叠。
      • 视觉细节:排版、颜色表现、表面样式、边框、阴影、媒体处理、图标和内容密度。
      • 动画:初始状态、触发条件、缓动、时长、交错、变换原点、不透明度、模糊、裁剪/蒙版、视差深度、循环行为和最终静止状态。
      • 交互:悬停、焦点、轻触/点击、激活/按下、光标、手风琴、轮播、表单、键盘、加载、禁用和错误状态。
      • 滚动交互:显现阈值、粘性/固定停留节点、随滚动进度变化的数值、视差图层、章节衔接、滚动进度、背景/导航变化以及下方章节的显现。
      • 库/API:选择原生 CSS、IntersectionObserver、Web Animations API、Framer Motion/Motion One、GSAP ScrollTrigger、Lenis、Embla/Keen/Swiper、Rive/Lottie 或 Three.js/WebGL。
    • 仅将源码特有的细节作为示例或可选参考,不要将其设为强制要求。
  4. 为每条提示词捕获截图。

    • 需要进行浏览器操作时,请使用 Codex 内置浏览器。如果无法直接通过 file:// 导航,请仅将相关 HTML 复制到临时隔离文件夹,并在 localhost 上提供服务。
    • 如果任务是每日 UI 灵感文章,请为每条提示词捕获多张截图或动态帧。
    • 对于在线网站,请捕获网站自身的首屏视图以及后续滚动状态。不要将市集封面图用作动态帧来源。
    • 每次滚动到捕获位置后,等待 2 秒再截取截图或帧,以便延迟加载的媒体、显现动画、粘滞状态变化和滚动触发的过渡效果稳定下来。
    • 对于在线网站,请将整页滚动截图捕获为一张长图,然后逐个版块裁剪。整页图片是版块裁剪图的事实来源。
    • 根据落地页实际包含的版块,将页面裁剪成尽可能多的版块图片,包括首屏、每个中间版块和页脚。确保裁剪边界精确且连续,相邻版块之间不遗漏任何像素行。
    • 创建清单时,记录 fullPageImage 和 sectionImages 元数据。对于每张版块图片,请在可用时包含版块标签、文件路径、来源整页图片、y-start、y-end 和高度。
    • 在文章中,按照既定结构展示整页图片和版块图片:使用 ### Full-Page And Section Evidence、整页截图的普通 Markdown 图片、#### Section Crops,然后按页面顺序展示各版块的普通 Markdown 图片。不要在每张图片下方显示 y-start/y-end 裁剪元数据,不要使用 Markdown 表格或原始 HTML 网格,也不要将裁剪图列成文件名清单。
    • 对于常规的单参考提示词包,每条提示词至少捕获一张显示交互发生位置的截图。
    • 必要时,在捕获前触发交互:移动指针以呈现光标效果、悬停卡片、滚动到固定版块,或等待画布/粒子动画。
    • 将图片保存在目标文章文件夹中,并使用描述性文件名,例如 reference-01-hero-particles.png。
    • 将每张截图紧接在对应的提示词标题下方。
  5. 按需录制视频。

    • 用户要求提供视频、动态研究或每日灵感采集时,为每项灵感或交互录制一段本地 MP4 短视频。
    • 对于 Framer/在线网站,请通过实际的 pageUrl 慢速滚动录制:首屏、版块显现效果、粘滞导航、视差、跑马灯/轮播循环、明显的悬停状态以及页面下方内容。
    • 不要用封面图制作 Ken Burns 平移、缩放或幻灯片,并将其当作网站动态效果。
    • 在文章中使用本地相对路径直接嵌入视频。
    • 从视频中提取具有代表性的帧,让读者无需播放视频也能快速浏览。
    • 如果无法录制在线视频,请记录尝试访问的 URL 和原因。对于 Framer/在线网站,如果可能,请更换候选网站,而不是悄然改用封面图。
  6. 创建或更新文章。

    • 如果用户指定了现有文章,请更新该文章的 content.md。
    • 如果文章不存在且任务位于文章/内容工作区,请在 articles/YYYY-MM-DD-.../content.md 下创建一个带日期的文章文件夹。
    • 本地 Markdown 图片路径必须相对于文章文件夹。
    • 用户要求创建文章时,不要只留下单独的提示词文件作为唯一交付内容。
  7. 验证。

    • 对修改过的 Markdown 运行 git diff --check。
    • 确认所有引用的截图和视频文件都存在且非空。
    • 对每日 UI 灵感文章,验证恰好有 5 个灵感、5 个嵌入视频或明确标注的备用视频,并且每个灵感至少有 4 张截图或视频帧图片。
    • 对每日灵感中的实时网站条目,验证存在一张完整页面滚动截图,且各分区截图按从上到下的顺序覆盖首屏、所有有意义的中间分区和页脚。
    • 如果有分区截图坐标,验证它们相对于完整页面图片是连续的。
    • 验证每个实时网站条目的 content.md 都遵循既定的完整页面/分区截图结构,使用渲染后的 Markdown 图片,且不包含文本链接、文件名列表、Markdown 表格、原始 HTML 网格、Local Evidence 标题或裁剪坐标说明。
    • 对 Framer/实时网站灵感,验证每个条目都有 pageUrl、websiteScrollVideo 等实时网站捕获类型、实际录制自页面的 MP4,且没有封面图片备用方案的措辞。
    • 使用 ffprobe 确认 MP4 文件可读取,然后对每篇文章至少抽查一个 Framer 视频,确保视频中能看到真实网站滚动。
    • 如果 Content 应用/服务器正在运行,通过其 UI 或 API 验证文章,并滚动足够远,以加载延迟加载的图片。
    • 如果验证受阻,报告本地检查的内容。
  8. 精简提交。

    • 仅暂存文章 Markdown 和所需的截图素材。只有必须提交但被忽略的文章素材才使用 git add -f。
    • 避免暂存无关的脏文件。
    • 如果工作区说明要求任务完成后提交,则完成任务后提交。

提示词风格规则

  • 让提示词具有可移植性。使用“根据页面主题提取颜色”,而不是指定某种颜色。
  • 让尺寸具有适应性。使用“根据布局和设备调整密度”,而不是指定粒子数量或卡片尺寸。
  • 清楚描述交互。说明交互应带来的感受、由什么驱动、测量哪些数据,以及如何逐渐稳定下来。
  • 让实现切实可行。指出可能使用的 API 和库,同时优先遵循项目现有技术栈。
  • 对动画密集型提示词,补充减少动态效果和性能方面的说明。
  • 将截图作为动态效果创意的佐证,而不是精确的样式规范。

库的使用建议

  • 仅在有助于构建者选择实现方案时才指定库。优先使用项目现有技术栈,而不是添加新依赖。
  • 对于简单的悬停、焦点、不透明度、变换、颜色、下划线、背景和循环装饰状态,使用 CSS transitions/keyframes。
  • 如果不需要时间轴控制,可使用 IntersectionObserver 或 Web Animations API 实现轻量的滚动显示效果。
  • 对于 React 组件的进入效果、布局过渡、共享元素过渡、交错列表、模态框、抽屉和由状态驱动的 UI 动效,使用 Framer Motion 或 Motion One。
  • 对于复杂的滚动效果,使用 GSAP 和 ScrollTrigger:固定区段、随滚动推进的时间轴、多层视差、图像序列滚动播放、遮罩文字显示、背景过渡,以及精确的区段衔接。
  • 仅当平滑滚动能实质性地支持滚动编排时才使用 Lenis;不要把它当作通用润色工具。
  • 简单的水平条带优先使用 CSS scroll-snap。需要轮播控件、循环、拖拽物理效果或响应式幻灯片逻辑时,使用 Embla、Keen Slider 或 Swiper。
  • 对于需要由设计师控制时间轴的定制矢量/界面动画,使用 Rive 或 Lottie。在视口外时暂停动画或简化效果。
  • 仅在需要真实 3D、着色器、粒子或画布场景时使用 Three.js/WebGL。限制像素比,在视口外时暂停,在移动设备上降低密度,并提供静态回退方案。
  • 简单的粘性面板使用 CSS position: sticky。只有当区段需要时间轴控制、随滚动变化的数值或多元素衔接时,才使用 GSAP 固定效果。
  • 每个动画方案都必须包含 prefers-reduced-motion、触屏设备行为、键盘/焦点行为和性能限制。

评论

支持 Markdown