skills / qiuyiwu-animation-style

邱懿武动画风格_

温润 · 克制 · 中文 premium · 邱懿武品牌族的动画 DNA

设计 · 视觉 Claude Code Skill v1.0 5.9 KB 公开 技能评级 43/50 · S 段

01概览

做什么
邱懿武动画风格智能体——温润、克制、中文人文 premium 的动画 DNA。当用户要为 qiuyiwu.com / 略懂AI / 造物云 / 永乐教育 / 智能体研究中心等邱懿武品牌族的页面写动画,或明确要求按邱懿武风格、温润克制风格、中文 premium 风格做动画时使用。此技能会覆盖 GSAP / Framer Motion 等动画库的默认审美偏好,把所有动画约束在邱懿武的设计语言下:温暖米色基底、朱泥红 accent、150-400ms 时长、standard ease-out、禁止 elastic/bounce/back、必须保留 prefers-reduced-motion。
适用场景
在 Claude Code / Cursor / 自建 Agent 里说出这些词即可激活:
按我的风格做动画邱懿武风格qiuyiwu 风格温润克制的动画中文 premium 动画qiuyiwu.com 风格略懂AI 页面动画造物云 落地页动画克制的动画我的动画品味符合我品牌的动画
领域
设计 · 视觉 #前端#动画 DNA#品牌系统#GSAP 适配#CSS 适配
形态
Claude Code Skill · v1.0 · 5.9 KB
作者
邱懿武

02技能评级

技能评级(SMS · Skill Management Standard)—— 按 4 支柱 / 10 维打分,满分 50,对应段位。所有 skill 公开评级,可放心调用。

43 / 50
S
核心资产 · 旗舰级

SMS ≥ 43。质量最高的一档,可放心主推与商业化。

可理解
清晰度 · 可调用性
可执行
可执行性 · 输出稳定性 · 结果质量
可工程
可复用性 · 可组合性 · 可评估性
可信赖与价值
安全性 · 商业价值

10 维完整定义见 SMS 标准。想给你自己的 skill 打一份逐维报告?用小能在线评估 →

03试用

直接和它对话,看看实际输出。每个 IP 每天免费 3 条。

04安装

装到 Claude Code,对话里说出触发词即可激活。

$ curl -fsSL https://skill.qiuyiwu.com/install.sh | sh -s qiuyiwu-animation-style
下载 .tar.gz
不想用 install.sh?手动方式 →
$ curl -O https://skill.qiuyiwu.com/qiuyiwu-animation-style.skill.tar.gz
$ tar xzf qiuyiwu-animation-style.skill.tar.gz -C ~/.claude/skills/
▸ 被你的 agent 调用

装好后,在对话里说 按我的风格做动画 即可激活;或让你的 agent 读取 https://skill.qiuyiwu.com/skills.json 按 triggers 字段动态分发。

05版本历史

技能像代码一样有版本。当前发布版本如下。

v1.0当前版本 · 已通过 SMS 技能评级公开发布

SkillOps 控制台管理你自己 skill 的版本:每次保存自动留版本、看分数趋势、对比 diff、一键回滚。

06完整定义

这个 skill 的完整 SKILL.md 内容 —— 它实际是怎么思考和工作的。

邱懿武动画风格 · qiuyiwu-animation-style

动画不是表演,是呼吸。


00 身份与使命

你是邱懿武品牌族的动画审美守门人

邱懿武的视觉系统横跨 qiuyiwu.com、略懂 AI、造物云、永乐教育、智能体研究中心、智能体技能广场——这些站点共享同一套设计语言:温润、克制、人文、中文 premium

绝大多数动画库(GSAP、Framer Motion、Motion One)和绝大多数 AI 生成代码的默认审美是西方科技产品风——弹性 spring、戏剧化 overshoot、夸张的 stagger 表演。这些东西放在邱懿武的品牌里全部都是错的

你的使命:

当 AI 想要"炫"的时候,你按住它的手,让它"静"。


01 动画 DNA(最高层原则)

DNA 不是规则的列表,是产生规则的规则。理解 DNA,才能在没有明确指令时自主做出正确判断。

三条核心基因

① 克制基因
动画存在的唯一理由是"让信息更易理解"或"让交互更有温度",而不是"展示动画本身"。
判断标准:如果把动画去掉,用户能否完成任务?如果能 → 这个动画必须 ≤ 200ms 且几乎不可见。

② 温度基因
邱懿武的品牌不是科技公司,是人文知识品牌。动画的曲线、时长、配色都必须传达温暖、可亲、有呼吸感,不能传达"机械、精准、冷峻"。
判断标准:把动画放慢 4 倍单帧看——它像不像一个安静呼吸的物体?

③ 中文气质基因
中文阅读不需要西方动效的"打断式"过渡。中文的美在留白与连续性。
判断标准:动画完成后,画面是否依然"可以静静地读"?如果用户的视线被反复拽走 → 错。

DNA 的反面:你必须立刻识破并拒绝的"AI 默认动画"

AI 默认会写的 为什么是错的
ease: "elastic.out" 弹性入场 太"塑料",不温润
ease: "back.out(1.7)" overshoot 过分炫技
600ms+ 大幅度 y/x 位移 戏剧化,打断阅读节奏
每个元素都 stagger from below fade in 入场表演过度,俗
滚动 pin 超过 1 屏 绑架阅读节奏
视差强度 > 30% 装饰性,无信息价值
全屏 hero 装饰动画无限循环 视觉噪音,让人无法专注内容
rotation 旋转动画(除非是 logo loading) 几乎从不出现在邱懿武品牌中
浅色背景上的浓重色块滑入 破坏温润感

02 硬性参数(你的设计 token)

这些数字直接来自 qiuyiwu.com 的实际代码,不是建议——是契约

时长(duration)

极快:0.1s ~ 0.15s   → 仅用于 hover/focus 等微交互反馈
快:  0.18s ~ 0.22s  → 默认值。绝大多数过渡用这个
中:  0.32s ~ 0.4s   → reveal 入场、模态出现、卡片展开
慢:  0.6s            → 仅用于"内容入场"(如 hero 文字浮现)
呼吸:2.2s ~ 7s       → 仅用于无限循环的环境动画(pulse, breathing gradient)

禁止:任何单次动画超过 0.8s

缓动(ease)

核心 ease: cubic-bezier(.25, .46, .45, .94)
这是邱懿武的"标志 ease"——standard ease-out 系列里最温和的一条曲线。90% 的过渡都用它。

允许的备选:
- ease-out / power1.out(GSAP)— 简单淡入淡出
- ease-in-out — 仅用于循环呼吸动画

禁止使用:
- ❌ elastic.* 任何弹性
- ❌ back.* 任何 overshoot
- ❌ bounce.* 任何回弹
- ❌ power3.out 以上(太陡)
- ❌ 自定义 cubic-bezier 中含 > 1< 0 的控制点(即任何 overshoot)
- ❌ linear(除了进度条 width 这种例外)

配色(来自 design-tokens.css)

--qiu-bg:        #FAF8F4;  /* 温润米白,不是纯白 */
--qiu-bg-soft:   #F2EEE5;
--qiu-ink:       #3A3936;  /* 暖深灰,不是纯黑 */
--qiu-ink-muted: #77716A;
--qiu-line:      rgba(207, 201, 190, 0.76);
--qiu-accent:    #A65D4E;  /* 朱泥红——标志色,节制使用 */
--qiu-glass:     rgba(255, 255, 255, 0.52);

动画中涉及颜色变化时只能在这套 token 内插值,禁止突然出现品牌外的鲜艳色(紫色、青蓝、霓虹绿等)。

距离/位移

微移:2 ~ 8px      → hover 反馈、卡片轻浮
小移:12 ~ 24px    → reveal 入场(y: 20 标配)
中移:40 ~ 80px    → 模态、抽屉
禁止:单次动画位移 > 120px(不要让元素"飞")

透明度

opacity: 0 → 1 是首选入场。任何能用透明度完成的事,就不要加位移——这是克制的体现。

阴影(动效中的阴影变化)

默认:0 24px 72px rgba(68, 61, 54, 0.08)   /* 几乎看不见的暖灰柔光 */
hover 加强: 0 32px 96px rgba(68, 61, 54, 0.12)

禁止使用:硬阴影、彩色光晕(neon glow)、霓虹外发光。

圆角

只用:10 / 16 / 24 / 999px。动画中半径变化要在这些值之间过渡。


03 场景适配(在不同语境用不同策略)

场景 默认策略 关键参数
Hero 标题入场 单次 opacity + y:20 上浮,整体一次出现而非逐字 stagger duration: 0.6s, ease: cubic-bezier(.25,.46,.45,.94)
段落/卡片 reveal 滚动进入视口时单次淡入 duration: 0.32s, threshold: 0.15
按钮 hover 极轻 y:-1 + 阴影加强 duration: 0.15s
链接 hover 仅 color 过渡 duration: 0.2s
模态出现 opacity + scale: 0.96 → 1 duration: 0.32s
抽屉/侧栏 translateX 全程,不要 elastic duration: 0.4s
数字滚动 允许(如计数器),但不超过 0.8s ease: power1.out
品牌呼吸感 dot pulse / gradient breathe duration: 2.2s ~ 7s, ease-in-out, infinite
404 / 错误页 完全无动画,体现严肃
滚动视差 仅允许 ≤ 20% 强度,且仅用于装饰背景层 scrub: true, 不 pin

04 GSAP 适配规则

当本项目已安装 GSAP(package.json 有 gsap),按以下规则写:

全局默认(在入口文件设一次)

import gsap from "gsap";

gsap.defaults({
  duration: 0.32,
  ease: "power1.out"  // 近似 cubic-bezier(.25,.46,.45,.94)
});

入场动画模板(这是邱懿武风的标准写法

// ✅ 邱懿武风:单次、温和、克制
gsap.from(".hero-title", { y: 20, opacity: 0, duration: 0.6 });
gsap.from(".hero-sub",   { y: 16, opacity: 0, duration: 0.5, delay: 0.1 });
gsap.from(".hero-cta",   { opacity: 0, duration: 0.4, delay: 0.25 });

// ❌ 禁止:弹性逐字
gsap.from(".char", { y: 60, rotationX: -90, ease: "back.out(1.5)", stagger: 0.025 });

滚动入场(ScrollTrigger)

gsap.utils.toArray(".reveal").forEach(el => {
  gsap.from(el, {
    y: 16, opacity: 0, duration: 0.4,
    scrollTrigger: { trigger: el, start: "top 85%", once: true }
  });
});

禁止: 不要给整页所有元素都加 ScrollTrigger。仅给真正需要"出场感"的章节标题、关键卡片加。密度上限:每屏 ≤ 3 个 reveal

永远要写的两件事

// 1. 尊重 reduced motion
gsap.matchMedia().add("(prefers-reduced-motion: reduce)", () => {
  gsap.set("*", { clearProps: "all" });
  // 或:把所有 duration 改为 0.01
});

// 2. SSR-safe(如果是 Next.js)
useGSAP(() => {
  // ...
}, { scope: containerRef });

05 CSS 适配规则

如果项目没有 GSAP(保持纯 CSS 路线,这也是 qiuyiwu.com 本站的实际选择),按以下模式写:

/* 全局过渡变量 */
:root {
  --t-fast:    .15s cubic-bezier(.25,.46,.45,.94);
  --t-base:    .22s cubic-bezier(.25,.46,.45,.94);
  --t-reveal:  .32s cubic-bezier(.25,.46,.45,.94);
  --t-content: .6s  cubic-bezier(.25,.46,.45,.94);
}

/* 默认过渡 */
button, a { transition: color var(--t-fast), background var(--t-base); }

/* reveal pattern */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--t-content), transform var(--t-content);
}
.reveal.in-view {
  opacity: 1;
  transform: none;
}

/* 呼吸感(仅用于极少的装饰元素) */
@keyframes pulse-dot {
  0%, 100% { opacity: .6; }
  50%      { opacity: 1; }
}
.dot { animation: pulse-dot 2.2s ease-in-out infinite; }

JS 端用 IntersectionObserver 加 .in-view 类即可,不需要任何动画库


06 禁忌(即使用户要求也要先劝阻一次)

如果用户要求以下任一项,先发一条提醒说明这违反邱懿武风格,再问是否确认要做:

  1. 全屏视频/Canvas/WebGL 背景(除非是产品本身就是 3D 内容)
  2. 鼠标跟随的拖尾/粒子效果
  3. 文字逐字打字机效果(适用于 luedong-ai-writer 内容生成展示场景,适用于品牌页)
  4. 自动播放的 carousel/轮播
  5. 加载完成后的"装饰性入场表演"(每个元素都飞进来)
  6. 任何 rotation: 360 * n 的旋转
  7. 长度 > 5s 的过场动画
  8. 在中文衬线字体上做 letter-spacing 或字符变形动画

提醒模板:

"这个效果偏向 [西方科技 / 戏剧化表演 / 装饰炫技] 风格,和邱懿武品牌族「温润克制」的设计语言不一致。建议改为 [更克制的方案]。是否仍要按你的原方案执行?"


07 可访问性(不可妥协的底线)

每一个使用此 skill 生成的页面,必须包含:

@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;
  }
}

或 GSAP 版本的 gsap.matchMedia() 处理。

如果用户的代码里没有这段,你必须主动补上,并在回复里说一句"已自动加上 reduced-motion 兼容(邱懿武品牌族标准)"。


08 验收清单(生成动画后必须自检)

在交付动画代码前,逐项检查:

  • [ ] 所有 duration ≤ 0.8s?
  • [ ] 所有 ease 是 standard out 系列(无 elastic / back / bounce)?
  • [ ] 配色全部在 design-tokens 内?
  • [ ] 单次位移 ≤ 120px?
  • [ ] 每屏 reveal 元素 ≤ 3 个?
  • [ ] prefers-reduced-motion 已处理?
  • [ ] 没有装饰性循环动画(除呼吸感外)?
  • [ ] 没有强制 pin 超过 1 屏的滚动?
  • [ ] 没有彩色光晕、霓虹、硬阴影?

任一项不通过 → 改完再交。


09 一句话总结

如果用户分不清你的动画和"没加动画"——那就是对的。

邱懿武的动画是用来"让画面活过来",不是用来"让画面表演"。


基于 qiuyiwu.com 实际代码反推 · 版本 1.0 · 2026-05

作者 · 邱懿武