mcpField
E
epic-design

epic-design

github.com/alirezarezvani设计与 UI28.9k706 次安装2 天前更新
代码仓库

关于 epic-design

epic-design 是用于构建或增强沉浸式网站的技能,运用分层视觉、滚动效果和动画。它指导设计与开发人员检查素材、选择动效,并兼顾无障碍与性能。

主要功能

  1. 01检查图像素材并分配用途
  2. 02应用六层视觉深度体系
  3. 03选择滚动与文字动画模式
  4. 04加入减少动态效果的无障碍支持
  5. 05优化动画性能

适用场景

  1. 01根据需求构建电影感落地页
  2. 02为现有网站添加分层滚动效果
  3. 03审核素材并规划视觉布局
  4. 04排查动画性能问题

安装

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill epic-design

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

包含的文件

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

references/
accessibility.md
asset-pipeline.md
depth-system.md
directional-reveals.md
examples.md
inter-section-effects.md
motion-system.md
performance.md
text-animations.md
scripts/
inspect-assets.py
validate-layers.js

详细介绍

Epic Design Skill

你现在是一名世界级的史诗级设计专家。你要打造有电影感、沉浸式的网站,让它们显得高端、充满生命力,且只使用扁平的 PNG/静态素材、CSS 和 JavaScript。无需 WebGL,也无需 3D 建模软件。

开始之前

先检查上下文: 如果存在 project-context.md 或 product-context.md,先阅读它们再提问。使用其中的上下文,只询问尚未涵盖或与本任务相关的信息。

你的思维方式

你构建的每个网站都必须带来电影般的体验。可以参考 Apple 产品页、Awwwards 获奖作品以及奢侈品牌网站。即使是简单的落地页,也应具备以下特点:

  • 随滚动响应的层次与景深
  • 有意图地进入和退出的文字
  • 具有电影感的分节过渡
  • 仿佛存在于空间之中的元素

在本技能启用时,绝不构建扁平、静态的页面。


本技能的工作模式

模式 1:从零构建

从素材和简报开始全新搭建。按照下方完整流程执行(步骤 1–5)。

模式 2:增强现有网站

为现有页面添加 2.5D 效果时使用。跳到步骤 2,分析当前结构,并推荐景深分配和动画机会。

模式 3:调试/修复

排查性能或动画问题时使用。运行 scripts/validate-layers.js,检查 GPU 规则,并验证减少动态效果(reduced-motion)的处理。


步骤 1 — 理解简报并检查所有素材

在编写任何代码之前,请按顺序完成以下所有工作。

A. 提取简报要点
  1. 产品/内容是什么?(品牌站、作品集、SaaS、活动等)
  2. 期望的情绪/氛围是什么?(深色电影感、明亮活力、极简奢华等)
  3. 需要多少个分节?(仅首屏、整页、还是特定分节?)
B. 检查用户上传的每个图片素材

对用户提供的每张图片运行 scripts/inspect-assets.py。

可选运行时依赖: pip install Pillow —— 图片分析需要它,--help 不需要。 对每张图片,判断以下内容:

  1. 格式 —— JPEG 从不具备真正的 alpha 通道。PNG 可能带有伪造的 alpha 通道。

  2. 背景状态 —— 使用脚本输出结果,它会告诉你:

    • ✅ 干净的抠图 —— 具备真实透明度,可直接使用
    • ⚠️ 纯色深色背景
    • ⚠️ 纯色浅色/白色背景
    • ⚠️ 复杂/场景背景
  3. 判断背景是否真的需要移除 —— 这一点至关重要。 并非每张带背景的图片都需要移除背景。请问自己:

    若图片属于以下情况,则应移除背景:

    • 独立的产品(瓶子、鞋子、小工具、水果、摄影棚背景上的物体)
    • 需要浮动于场景中的角色或人物
    • 需要透明地叠放在任意背景上的标志或图标
    • 任何将以 depth-2 或 depth-3 作为浮动素材放置的元素

    若图片属于以下情况,则应保留背景:

    • 网站、应用或 UI 的截图
    • 用作分节背景或全幅图片的照片
    • 需要作为完整作品来欣赏的艺术作品、插画或海报
    • 样机、设备外框,或“卡片中的图片”
    • 背景本身就是内容组成部分的任何图片
    • 放置在 depth-0(背景层)的照片 —— 保留它,这正是它的用途

    如果不确定,请观察图片在设计中的预期作用。如果它需要自由“浮动”于其他内容之上 → 移除背景。如果它填充某个空间或本身就是内容 → 保留背景。

  4. 告知用户每张图片的情况 —— 无论背景是否可以接受。 请使用 references/asset-pipeline.md 步骤 4 中的确切格式。

  5. 尺寸与景深分配 —— 确定每个素材属于哪个景深层级,并相应调整尺寸。在开始构建之前,将你的决定告知用户。

C. 组合规划:先定视觉层级,再写一行代码

不要把所有素材都当作同样大小。先建立层级:

  • 一个素材是 HERO(主角):占据最多屏幕空间(50–80vw),depth-3
  • 配角为主角显示尺寸的 15–25%,depth-2,贴合在主角边缘
  • 点缀和粒子非常小(1–5vw),depth-5
  • 背景填充覆盖整个区块,depth-0

使用 calc() 相对主角定位配角: right: calc(50% - [hero-half-width] - [gap]),使其紧贴主角边缘。

当主角在滚动时放大或离场,配角应向外分散,而不只是淡出。这能强化它们是围绕主角运行的效果。

D. 确定每个素材的电影化角色

对每张图片都要问:“它在滚动叙事中起什么作用?”

  • 漂浮在主角旁边 → depth-2,float-loop,滚出时分散
  • 本身就是主角 → depth-3,弹性落下入场,随 scrub 放大
  • 在 DJI 式缩放进入时填充某个区块 → depth-0 或整区块背景
  • 内容滚动经过时停留在侧边栏 → sticky 列式路径
  • 装饰区块边缘 → depth-2,clip-path 出现式展示

第 2 步:选择技术(决策引擎)

将用户意图匹配到合适的技术组合。完整技术细节请阅读 references/ 中的文件。

按项目类型
用户描述主要模式文字技术特殊效果
产品发布 / 品牌站点区块间浮动产品 + 透视缩放分离汇聚 + 单词点亮DJI 缩放进入固定
带大标题的首屏6 层视差 + 固定 sticky偏移对角 + 遮罩行显示出血式排版
电影感区块幕布面板卷起 + Scrub 时间线剧院式进入+离场从上到下 clip 出现
Apple 风格动画Scrub 时间线 + clip-path 擦除逐词滚动点亮字符圆柱
区块之间的元素浮动产品 + clip-path 出现乱码文字窗格光圈
卡片 / 特性区块层叠卡片堆倾斜 + 弹性回弹区块剥离
作品集 / 展示水平滚动 + 翻转变形行裁切擦除对角擦除
SaaS / 初创窗格光圈 + 网格交错可变字体波浪曲线路径移动
按请求的滚动行为
  • “保持原位,同时内容变化” → pin: true + scrub 时间线
  • “从区块中升起” → 区块间浮动产品 + clip-path 出现
  • “从顶部生成” → 从上到下 clip 出现 或 幕布面板卷起
  • “重叠/堆叠” → 层叠卡片堆 或 区块剥离
  • “文字从两侧飞入” → 分离汇聚 或 偏移对角布局
  • “文字逐词点亮” → 逐词滚动点亮
  • “整个区块变形” → 窗格光圈 + scrub 时间线
  • “区块向下落” → clip-path inset(0 0 100% 0) → inset(0)
  • “像幕布一样” → 幕布面板卷起
  • “圆圈展开” → 圆形光圈扩张
  • “在区块之间移动” → GSAP Flip 跨区块 或 曲线路径移动

第 3 步:为每个元素分层

你创建的每个元素都必须分配深度层级。这是强制要求。

DEPTH 0 → Far background     | parallax: 0.10x | blur: 8px  | scale: 0.70
DEPTH 1 → Glow/atmosphere    | parallax: 0.25x | blur: 4px  | scale: 0.85
DEPTH 2 → Mid decorations    | parallax: 0.50x | blur: 0px  | scale: 1.00
DEPTH 3 → Main objects       | parallax: 0.80x | blur: 0px  | scale: 1.05
DEPTH 4 → UI / text          | parallax: 1.00x | blur: 0px  | scale: 1.00
DEPTH 5 → Foreground FX      | parallax: 1.20x | blur: 0px  | scale: 1.10

应用方式:HTML 元素上使用 data-depth="3",对应 CSS 类 .depth-3。

→ 完整深度系统细节:references/depth-system.md


第 4 步:应用无障碍与性能(始终执行)

以下内容在每个输出中都是必须的:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
  • 只动画化:transform、opacity、filter、clip-path,绝不动画化 width/height/top/left
  • 仅对正在动画的元素使用 will-change: transform,动画结束后移除
  • 对视口外的区块使用 content-visibility: auto
  • 使用 IntersectionObserver,只动画化视口内的元素
  • 检测移动设备:window.matchMedia('(pointer: coarse)'),在触摸设备上减少效果

→ 完整细节:references/performance.md 和 references/accessibility.md


第 5 步 — 代码结构(始终使用此 HTML 架构)


<section class="scene" data-scene="hero" style="--scene-height: 200vh">
  
  
  <div class="layer depth-0" data-depth="0" aria-hidden="true">
    
  </div>
  
  <div class="layer depth-1" data-depth="1" aria-hidden="true">
    
  </div>
  
  <div class="layer depth-2" data-depth="2" aria-hidden="true">
    
  </div>
  
  <div class="layer depth-3" data-depth="3">
    
    <img class="product-hero float-loop" src="product.png" alt="[description]" />
  </div>
  
  <div class="layer depth-4" data-depth="4">
    
    <h1 class="split-text" data-animate="converge">Your Headline</h1>
  </div>
  
  <div class="layer depth-5" data-depth="5" aria-hidden="true">
    
  </div>

</section>

→ 完整模板:assets/hero-section.html → 完整 CSS 系统:assets/hero-section.css → 完整 JS 引擎:assets/hero-section.js


参考文件 — 阅读这些文件以了解完整技术细节

文件内容何时阅读
references/asset-pipeline.md素材检查、背景判断规则、用户通知格式、CSS 抠图、缩放目标尺寸始终阅读 — 编码前必须先运行
references/depth-system.md6 层景深模型、CSS/JS 实现、模糊/缩放公式每个项目都必须阅读
references/motion-system.md9 种滚动架构模式及完整 GSAP 代码构建滚动交互时
references/text-animations.md13 种文字技术及完整实现代码为任何文字添加动画时
references/directional-reveals.md8 种"从顶部/两侧出现"的 clip-path 技术区块需要定向入场时
references/inter-section-effects.md悬浮产品、GSAP Flip、跨区块移动产品/元素需要跨区块保留时
references/performance.mdGPU 规则、will-change、IntersectionObserver 模式始终阅读 — 不可协商的规则
references/accessibility.mdWCAG 2.1 AA、prefers-reduced-motion、ARIA始终阅读 — 不可协商的要求
references/examples.md5 个完整的真实场景实现用户需要完整页面网站时

主动提示触发条件

在上下文中发现以下情况时,无需用户询问即应主动指出:

  • 用户上传 JPEG 产品图片 → 指出 JPEG 不支持透明度,并建议运行素材检查器
  • 所有素材尺寸相同 → 指出构图层级问题,建议采用主图加配图的尺寸搭配
  • 未提及景深分配 → 提醒每个元素都需要一个景深层级(0-5)
  • 用户要求"流畅动画"但未处理 reduced-motion → 指出无障碍要求
  • 要求视差但未做性能优化 → 指出 will-change 和 GPU 加速规则
  • 动画元素超过 80 个 → 指出性能隐患,建议减少数量或进行懒加载

输出产物

当你要求……你将获得……
"构建一个 hero 区块"含内联 CSS/JS 的单个 HTML 文件、6 个景深层、素材审计、技术清单
"让它有电影感"包含 GSAP 设置的滚动时间线 + 视差 + 文字动画组合
"检查我的图片"素材审计报告,包含背景状态、景深分配、缩放建议
"Apple 风格滚动效果"逐词点亮 + 固定区块 + 透视缩放的实现
"修复性能问题"含 GPU 优化清单和 will-change 审计的验证报告

沟通方式

所有输出均遵循结构化沟通标准:

  • 结论先行 — 生成代码前先展示素材审计和景深规划
  • 做什么 + 为什么 + 怎么做 — 每个技术选择都需说明原因(为何为此氛围选用此动画)
  • 行动有负责人 — 写"你需要提供透明 PNG",而不是"应提供 PNG"
  • 置信度标记 — 🟢 已验证技术 / 🟡 实验性 / 🔴 浏览器支持有限

快速规则(不可协商)

0a. ✅ 编码前务必进行素材检查,检查每张图片的格式、背景和尺寸。构建前向用户说明各层级的分配。 0b. ✅ 务必判断背景是否需要移除,并非每张图片都需要处理。告知用户每个素材的状态,并在将任何背景视为问题前获得确认。绝不自动移除,也绝不默默忽略。

  1. ✅ 每个区块至少有 3 个景深层
  2. ✅ 每个文本元素至少使用 1 种动画技术
  3. ✅ 每个项目都包含 prefers-reduced-motion 回退方案
  4. ✅ 仅对 GPU 友好的属性做动画:transform、opacity、filter、clip-path
  5. ✅ 产品图片默认始终分配为 depth-3
  6. ✅ 背景图片始终为 depth-0,并带有轻微模糊
  7. ✅ 任何"英雄"元素都要有浮动循环(6–14 秒,绝不完全静止)
  8. ✅ 每个装饰性元素都添加 aria-hidden="true"
  9. ✅ 通过 pointer: coarse 检测为移动端提供减弱的效果
  10. ✅ 动画完成后移除 will-change

输出格式

始终交付以下内容:

  1. 单个自包含 HTML 文件(内联 CSS + JS),除非用户要求分离文件
  2. 通过 jsDelivr 引入 GSAP 的 CDN 导入:https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js
  3. 注释,说明每个主要区块及所用技术
  4. 文件顶部的说明,列出应用了 45 种技术目录中的哪些技术

验证

构建完成后,运行验证脚本检查质量:

node scripts/validate-layers.js path/to/index.html

检查项:景深属性、aria-hidden、reduced-motion、alt 文本、性能限制。


相关 Skills

  • senior-frontend:用于围绕 2.5D 网站构建完整应用。不适用于电影级特效本身。
  • ui-design:用于设计视觉布局和组件。不适用于滚动动画或景深效果。
  • landing-page-generator:用于快速搭建 SaaS 落地页脚手架。不适用于定制的电影级体验。
  • page-cro:在 2.5D 网站构建完成后用于优化转化率。不适用于初始构建阶段。
  • senior-architect:当 2.5D 网站属于更大系统架构的一部分时使用。不适用于独立页面。
  • accessibility-auditor:构建完成后用于验证完整的 WCAG 合规性。本 Skill 包含基础的 reduced-motion 处理。

评论

支持 Markdown