cut-the-curve
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCut the Curve — the technique catalog
曲线切割——技术目录
Five SEAM techniques, one principle: cut at peak velocity, match direction and speed
on both sides of the cut — plus the two in-scene techniques (§6 arrivals, §7 slides).
The seam LAW — vector law, the current, the ledger, the Seam Gate — lives in
; read it first. This skill is the parameters and mechanics.
All GSAP code templates (worker + registry): .
motion-doctrineexamples/gsap-implementation.md五种SEAM技术,遵循一个核心原则:在速度峰值处切割,确保切割前后的方向与速度匹配——外加两种场景内技术(§6入场效果、§7群组滑动)。SEAM法则——向量法则、流动方向、规则 ledger、Seam Gate——收录于,请先阅读该文档。本文档聚焦参数与实现机制。所有GSAP代码模板(worker + 注册表):。
motion-doctrineexamples/gsap-implementation.mdCatalog
技术目录
| # | Technique | Scope | Axis | Use for |
|---|---|---|---|---|
| 1 | Zoom-Through (forward) | Within-scene text swap | Z, toward viewer | progressing deeper into the same thought |
| 2 | Inverse Zoom-Through | Arrival / payoff beat | Z, away from viewer | something bigger lands |
| 3 | Cut the Curve | Between scenes | X / Y | the default boundary, the film's current |
| 4 | Waterfall Cut | Text-to-text seam | X, per-word | word-level handoff between big-text beats |
| 5 | Rack-Focus Blur-Cut | Same-surface state swap | X / Y / Z | the one cut you want SEEN — a DSLR focus-pull flourish |
| 6 | Waterfall Entry | In-scene ARRIVAL (no seam) | Y, from below | title cards, segment openers, list intros |
| 7 | Nudge Curve | In-scene group slide (no seam) | X / Y | repositioning a composed group to make room |
| 序号 | 技术名称 | 适用范围 | 轴方向 | 适用场景 |
|---|---|---|---|---|
| 1 | Zoom-Through(正向) | 场景内文本切换 | Z轴,朝向观众 | 深化同一主题内容的表达 |
| 2 | Inverse Zoom-Through | 入场/高潮节拍 | Z轴,远离观众 | 突出重要内容的呈现 |
| 3 | Cut the Curve | 场景间切换 | X / Y轴 | 默认场景边界,保持影片整体流动节奏 |
| 4 | Waterfall Cut | 文本到文本的过渡 | X轴,逐词 | 大文本节拍间的逐词衔接 |
| 5 | Rack-Focus Blur-Cut | 同一画面内的状态切换 | X / Y / Z轴 | 刻意让观众感知到的切割——类似单反相机的焦点拉动效果 |
| 6 | Waterfall Entry | 场景内入场效果(无过渡) | Y轴,从下方进入 | 标题卡、片段开场、列表介绍 |
| 7 | Nudge Curve | 场景内群组滑动(无过渡) | X / Y轴 | 重定位组合群组以腾出空间 |
Z direction is a sign
Z轴方向是符号化的
"Same axis" is not enough on Z — the sign of d(scale)/dt must match across the cut:
| Z vector | Exit scale | Entry scale | Variant |
|---|---|---|---|
| Push (forward) | growing | growing | zoom-through |
| Pull (back) | shrinking | shrinking | inverse zoom-through |
Banned mirrors: a receding exit answered by a grow-from-small entry (pull flips to push —
the common one, since grow-from-small is the default element entrance), and a push exit
answered by an oversized retraction. This binds the incoming scene's OWN entrances during
the seam window (cut + ~0.5s), not just the wrapper tween: hold the incoming frame
composed, or author its entrance to match the sign. Verify per Seam Gate rule 7.
仅在Z轴上保持“同一轴”是不够的——切割前后d(scale)/dt的符号必须匹配:
| Z轴向量 | 退出时缩放比例 | 入场时缩放比例 | 对应技术 |
|---|---|---|---|
| 推进(正向) | 放大 | 放大 | zoom-through |
| 拉远(反向) | 缩小 | 缩小 | inverse zoom-through |
禁止反向操作:退出时元素后退,入场时却从小尺寸放大(拉远切换为推进——这是常见错误,因为从小尺寸放大是默认元素入场方式);或者退出时元素推进,入场时却从超大尺寸缩回。这会约束入场场景在过渡窗口(切割后约0.5秒)内的入场动画,不仅是包装补间:保持入场画面的组合状态,或者让其入场动画匹配符号规则。请根据Seam Gate规则7进行验证。
Blur logic (all Z variants)
模糊逻辑(所有Z轴变体)
| Subject | Peak blur | Why |
|---|---|---|
| Text-scale (headline, word group) | 10px | 20px smears letterforms — the cut reads as a glitch, not speed |
| Full-frame surface (window, card, screenshot) | 18–20px | lighter blur on a big surface reads as a rendering hiccup |
Same peak blur on both sides at the swap frame. Blur the WRAPPER, never children.
| 对象 | 峰值模糊值 | 原因 |
|---|---|---|
| 文本缩放(标题、词组) | 10px | 20px模糊会使文字形态失真——切割效果会被视为故障而非速度感 |
| 全帧画面(窗口、卡片、截图) | 18–20px | 大画面使用低模糊度会被视为渲染异常 |
切割切换帧的两侧需保持相同的峰值模糊值。模糊仅作用于包装容器,切勿作用于子元素。
1. Zoom-Through (forward)
1. Zoom-Through(正向)
Z-axis velocity-matched cut; never both texts visible. Everything GROWS: the outgoing
text accelerates toward camera, a hard swap hides at peak blur, the incoming text keeps
growing into the focal plane. Headlines and short phrases only. Total ≈ 0.4s.
| Phase | Scale | Blur | Opacity | Ease | Duration |
|---|---|---|---|---|---|
| Exit | 1 → 1.2 | 0 → 10px | 1 → 0.15 | power3.in (opacity: separate | 0.2s |
Cut ( | in: 0.75 | 10px | out: 0 / in: 0.15 | — | — |
| Entry | 0.75 → 1 | 10 → 0px | 0.15 → 1 | expo.out | 0.5s |
Exit opacity MUST be its own linear tween — holds opacity near 1 too long.
On entry all properties share .
power3.inexpo.outZ轴速度匹配切割;禁止同时显示两段文本。所有元素均放大:退出文本向镜头加速移动,在峰值模糊处进行硬切换,入场文本继续放大至焦平面。仅适用于标题和短句。总时长≈0.4秒。
| 阶段 | 缩放比例 | 模糊值 | 透明度 | 缓动曲线 | 时长 |
|---|---|---|---|---|---|
| 退出 | 1 → 1.2 | 0 → 10px | 1 → 0.15 | power3.in(透明度需单独使用 | 0.2s |
切割 ( | 入场: 0.75 | 10px | 退出: 0 / 入场: 0.15 | — | — |
| 入场 | 0.75 → 1 | 10 → 0px | 0.15 → 1 | expo.out | 0.5s |
退出时的透明度必须是独立的线性补间——会让透明度在过长时间内保持接近1的状态。入场时所有属性共用缓动。
power3.inexpo.out2. Inverse Zoom-Through (backward)
2. Inverse Zoom-Through(反向)
The pull-back mirror: the outgoing element RECEDES; the incoming arrives OVERSIZED (as if
just behind camera) and retracts into the focal plane. Everything SHRINKS. Spend on
ARRIVAL/payoff beats — a payoff line, a giant reply, a held end-state — never ordinary
boundaries. Total ≈ 0.7s (30% exit / 70% entry).
| Phase | Scale | Blur | Opacity | Ease | Duration |
|---|---|---|---|---|---|
| Exit | 1 → 0.8 | 0 → 10px | 1 → 0.15 | power3.in (opacity: separate | ~0.2s |
Cut ( | in: 1.25 | 10px | out: 0 / in: 0.15 | — | — |
| Entry | 1.25 → 1 | 10 → 0px | 0.15 → 1 | expo.out | ~0.5s |
Blur is 10px text-scale; 18–20px only when both sides are full-bleed surfaces.
Sign discipline: the incoming scene arrives as a composed frame inside the retracting
wrapper — no grow-from-small intro in the seam window. Staged entrances happen after the
retraction settles, or start ≥1 and retract.
拉远镜像效果:退出元素逐渐后退;入场元素以超大尺寸到达(仿佛就在镜头后方)并缩回至焦平面。所有元素均缩小。用于入场/高潮节拍——比如高潮台词、巨型回复、固定的结束状态——切勿用于普通场景边界。总时长≈0.7秒(30%退出 / 70%入场)。
| 阶段 | 缩放比例 | 模糊值 | 透明度 | 缓动曲线 | 时长 |
|---|---|---|---|---|---|
| 退出 | 1 → 0.8 | 0 → 10px | 1 → 0.15 | power3.in(透明度需单独使用 | ~0.2s |
切割 ( | 入场: 1.25 | 10px | 退出: 0 / 入场: 0.15 | — | — |
| 入场 | 1.25 → 1 | 10 → 0px | 0.15 → 1 | expo.out | ~0.5s |
文本缩放时模糊值为10px;仅当两侧均为全屏画面时使用18–20px模糊。
符号规则: 入场场景需以组合画面形式在缩回的容器内出现——过渡窗口内禁止使用从小尺寸放大的入场动画。分阶段入场需在缩回动作完成后进行,或从≥1的缩放比例开始缩回。
3. Cut the Curve (default scene boundary)
3. Cut the Curve(默认场景边界)
X/Y velocity-matched cut — the default for ALL scene-to-scene boundaries, in the film's
current, not an accent. The outgoing hero accelerates in one direction, the cut lands
mid-motion, the incoming hero continues the SAME direction and decelerates. Total ≈ 0.6s;
directions LEFT / RIGHT / UP / DOWN (default LEFT).
Partial travel: ~12% of frame (≈230px at 1920) — never full off-screen moves.
| Direction | Exit | Entry start → end |
|---|---|---|
| Leftward | | |
| Rightward | | |
| Upward | | |
| Downward | | |
Mechanics:
- Mirrored eases: exit + entry
power4.in, same distance and duration — the two halves of onepower4.out, so velocity matches exactly at the cut.power4.inOut - The fade trick: exit opacity completes at ~25–30% of its travel (fade ≈ 0.18–0.3s vs motion 0.3–0.34s); entry ignites at ~0.35 opacity mid-path. Time the last fading element to die right at the cut — a gap where nothing moves reads as dead air.
- Exit 0.2–0.4s; entry ≥ exit. Optional blur 8–10px.
- Stage ground: must be opaque (
#root) — the mid-window cut opens a summed-opacity < 1 window that flashes white otherwise (seebackground: var(--canvas-deep, var(--canvas, #000))).seam-craft
push-slideX/Y轴速度匹配切割——所有场景间切换的默认方式,保持影片流动节奏,而非强调效果。退出的核心元素向一个方向加速,在运动中途进行切割,入场的核心元素沿同一方向继续运动并减速。总时长≈0.6秒;方向包括左/右/上/下(默认向左)。
部分移动: 约占画面的12%(1920分辨率下≈230px)——切勿使用完全移出画面的动作。
| 方向 | 退出动作 | 入场起始→结束 |
|---|---|---|
| 向左 | | |
| 向右 | | |
| 向上 | | |
| 向下 | | |
实现机制:
- 镜像缓动: 退出使用+ 入场使用
power4.in,移动距离和时长相同——相当于power4.out的两个半段,确保切割时速度完全匹配。power4.inOut - 淡入淡出技巧: 退出时的透明度在约25–30%的移动距离内完成(淡入淡出≈0.18–0.3秒,而运动时长为0.3–0.34秒);入场时在路径中途以约0.35的透明度启动。让最后一个淡出的元素刚好在切割时消失——无运动的间隙会显得死气沉沉。
- 退出时长0.2–0.4秒;入场时长≥退出时长。可选8–10px模糊。
- 舞台背景: 必须不透明(
#root)——过渡窗口内的切割会导致总透明度<1,否则会闪现白色(详见background: var(--canvas-deep, var(--canvas, #000)))。seam-craft
push-slide4. Waterfall Cut (word-by-word cut-the-curve)
4. Waterfall Cut(逐词版cut-the-curve)
Cut-the-curve at WORD granularity — the strongest leftward cut for text-to-text seams.
Outgoing words ramp out on their own curves; incoming words cascade in mid-flight — a
wave the eye rides across the seam.
Scope: worker-authored inside one multi-beat comp (stacked full-frame layers),
NOT a registry/injector type — it tweens word spans, not clip wrappers. The boundary into
and out of the text-beat block still gets a normal registry transition. Does not count
against the 2–3 transition budget.
.beat| Parameter | Value | Why |
|---|---|---|
| Travel | ±230px (~12% frame) | partial travel + velocity > full-frame push |
| Exit | 0.34s | the acceleration IS the cut |
| Exit fade | 0.18s, starts with x | word gone by ~25–30% of travel — no smear |
| Exit stagger | +0.022s reading order | the line peels, not a block slide |
| Entry | 0.3s | back half of the composite — velocity match |
| Entry start opacity | 0.35 | mid-path ignition; binary 0→1 pops |
| Entry gaps | 0.05s × 0.84 decay | accelerating cascade, resolves composed |
Rules:
- One direction per chain, riding the current. Inverse zoom is the chain's ARRIVAL beat only.
- Pre-set all words to at build time —
x: +230, opacity: 0alone leaves un-started words visible at rest.immediateRender: false - A short first beat may exit whole-line: its fade ends ~0.02s before the cut so it is still streaking when the next words ignite — no dead gap.
- Transform/opacity only (seek-safe); opaque stage ground applies.
以单词为粒度的cut-the-curve——文本到文本过渡中最强的向左切割效果。退出单词沿各自曲线移出;入场单词在飞行中途级联入场——形成视觉上的波浪效果贯穿过渡。
适用范围: 在单个多节拍合成(堆叠全屏图层)内由worker创作,而非注册表/注入器类型——它补间单词跨度,而非剪辑容器。文本节拍块的进出边界仍需使用常规注册表过渡。不计入2–3次过渡的预算限制。
.beat| 参数 | 取值 | 原因 |
|---|---|---|
| 移动距离 | ±230px(约画面12%) | 部分移动+速度>全屏推进 |
| 退出 | 0.34s | 加速度本身就是切割效果 |
| 退出淡入淡出 | 0.18s,与X轴动作同步 | 单词在约25–30%的移动距离内消失——无拖影 |
| 退出交错时间 | +0.022s(按阅读顺序) | 整行文字逐渐移出,而非块级滑动 |
| 入场 | 0.3s | 复合动作的后半段——速度匹配 |
| 入场起始透明度 | 0.35 | 路径中途启动;0→1的突变会显得突兀 |
| 入场间隔 | 0.05s × 0.84衰减 | 加速级联,最终形成组合布局 |
规则:
- 每个序列保持单一方向,跟随整体流动节奏。反向缩放仅用于序列的入场节拍。
- 构建时预设所有单词为——仅使用
x: +230, opacity: 0会导致未启动的单词静止可见。immediateRender: false - 短的首个节拍可整行退出:其淡入淡出在切割前约0.02秒结束,以便在下一组单词启动时仍有运动轨迹——无空白间隙。
- 仅使用变换/透明度(支持seek操作);需应用不透明舞台背景。
5. Rack-Focus Blur-Cut (the visible cut)
5. Rack-Focus Blur-Cut(可见切割)
The one variant where the cut is SEEN: a defocus blur SPIKE hides a single-frame hard
swap — a handheld-DSLR focus-pull. Use as an occasional flourish for a state swap of the
SAME surface within one visual theme; never the default boundary.
Differences from the others: outgoing stays FULLY OPAQUE until the cut (the blur hides
the swap — no early fade); eases / (soft optics, not momentum).
power2.inpower2.outRules:
- Fire only at a narrative beat, ≤ once per ~8s; never mid-caption or during a hold.
- Cut at PEAK blur (≥6px; peak 8–12px, ≤16–18px max) — swapping on the way up shows the cut.
- A subtle scale (~1.06 lens-breathing) sells it as optics.
- Same direction on both sides — the vector law still holds. Entry ≥ exit duration.
- Blur the wrapper; never blur + opacity in one tween on one element (headless
compositing bug); never blur a directly (wrap it).
<video>
唯一刻意让观众感知到的切割变体:失焦模糊峰值隐藏单帧硬切换——类似手持单反的焦点拉动效果。偶尔用于同一视觉主题下同一画面的状态切换;切勿作为默认边界使用。
与其他技术的区别:退出元素在切割前保持完全不透明(模糊效果隐藏切换——无提前淡入淡出);缓动使用 / (模拟柔和光学效果,而非动量)。
power2.inpower2.out规则:
- 仅在叙事节拍处使用,每约8秒最多一次;切勿在字幕中间或静止画面时使用。
- 在峰值模糊处切割(≥6px;峰值8–12px,最大≤16–18px)——在模糊上升过程中切换会暴露切割动作。
- 轻微缩放(约1.06,模拟镜头呼吸)可增强光学效果的真实感。
- 两侧保持同一方向——向量法则依然适用。入场时长≥退出时长。
- 模糊仅作用于容器;切勿在同一元素上同时使用模糊+透明度补间(无头部合成bug);切勿直接模糊(需包装)。
<video>
6. Waterfall Entry (in-scene arrival — not a seam)
6. Waterfall Entry(场景内入场——无过渡)
Staggered ARRIVAL cascade: words/elements whip in from below (one consistent direction),
each starting before the previous settles — an accelerating wave that resolves into a
composed layout. Title cards, segment openers, list/feature intros. The seam sibling is
§4; do not mix their rules:
| §6 Entry (arrival) | §4 Waterfall Cut (seam) | |
|---|---|---|
| Opacity | BINARY 0→1 via | ignites at 0.35 mid-path — the fade IS the velocity trick |
| Axis default | Y, from below | X, riding the current |
| Outgoing side | none | words ramp out on mirrored power4.in |
Choreography:
- Overlap, don't queue — next element starts within ±2 frames of the previous settling; gaps SHRINK across the cascade; the last element snaps.
- Velocity varies by weight — heavy/anchor elements travel further and longer; light words/punctuation snap in tight:
| Parameter | Anchor/heavy | Normal word | Light/punctuation |
|---|---|---|---|
| Y offset | 60–80px | 40–50px | 30–48px |
| Duration | 0.16–0.20s | 0.13–0.16s | 0.10–0.13s |
| Overlap | 0–2f gap | 1f overlap | 1–2f overlap |
- Ease (expo.out for extra snap); never
power4.outon an entry..inOut - One direction per cascade.
- Split the FINAL word into fragments to extend the climax; fragments travel further.
- Post-settle, the group usually slides to make room for the next beat — that's §7.
交错入场级联效果:单词/元素从下方快速进入(单一方向),每个元素在前一个元素未完全静止时启动——形成加速波浪,最终形成组合布局。适用于标题卡、片段开场、列表/功能介绍。与§4是姊妹技术,请勿混淆规则:
| §6 入场效果(到达) | §4 Waterfall Cut(过渡) | |
|---|---|---|
| 透明度 | 入场时通过 | 在路径中途以0.35透明度启动——淡入淡出是速度技巧的核心 |
| 默认轴方向 | Y轴,从下方进入 | X轴,跟随整体流动节奏 |
| 退出侧 | 无 | 单词沿镜像power4.in曲线移出 |
编排规则:
- 重叠而非排队——下一个元素在前一个元素接近静止的±2帧内启动;级联间隔逐渐缩小;最后一个元素快速到位。
- 速度随元素权重变化——重型/锚点元素移动距离更长、时长更久;轻量单词/标点快速到位:
| 参数 | 锚点/重型元素 | 普通单词 | 轻量/标点 |
|---|---|---|---|
| Y轴偏移 | 60–80px | 40–50px | 30–48px |
| 时长 | 0.16–0.20s | 0.13–0.16s | 0.10–0.13s |
| 重叠时间 | 0–2帧间隙 | 1帧重叠 | 1–2帧重叠 |
- 缓动使用(如需更强的爆发力可使用expo.out);入场切勿使用
power4.out缓动。.inOut - 每个级联保持单一方向。
- 将最后一个单词拆分为片段以延长高潮效果;片段移动距离更远。
- 到位后,群组通常会滑动以腾出空间给下一个节拍——这属于§7的内容。
7. Nudge Curve (in-scene group slide — not a seam)
7. Nudge Curve(场景内群组滑动——无过渡)
Slow-fast-slow repositioning of a composed group (word rows, card stacks, lists) to
reveal content or make room. No single built-in ease produces it —
smacks to a stop. Chain three tweens on one property:
power4.inOut| Phase | Ease | Distance | Time | Feel |
|---|---|---|---|---|
| 1 ramp-in | | ~10% | ~20% | barely moves — motion registers, no jolt |
| 2 burst | | ~65% | ~18% | ~2× average px/frame — purposeful |
| 3 tail | | ~25% | ~62% | decaying creep to rest — kills the smack |
Rules:
- The tail is ≥3× the ramp-in in TIME. If it still smacks: extend the tail's time (not
distance) or use .
power5.out - Phase 2 stays linear — easing it loses the burst contrast.
- Reveal new content DURING phase 2 — the burst masks its appearance.
- Same ratios vertical; scale distances proportionally, keep the time ratios.
慢-快-慢的群组重定位(单词行、卡片堆、列表)以展示内容或腾出空间。没有内置缓动可直接实现——会导致突然停顿。需在同一属性上串联三个补间:
power4.inOut| 阶段 | 缓动曲线 | 移动距离占比 | 时间占比 | 感受 |
|---|---|---|---|---|
| 1 加速启动 | | ~10% | ~20% | 几乎不动——感知到运动,但无冲击感 |
| 2 爆发移动 | | ~65% | ~18% | ~2×平均像素/帧——目标明确 |
| 3 减速收尾 | | ~25% | ~62% | 逐渐减速至静止——消除突然停顿感 |
规则:
- 收尾阶段的时长≥启动阶段的3倍。若仍有突然停顿:延长收尾阶段的时长(而非距离),或使用。
power5.out - 第二阶段保持线性——添加缓动会失去爆发的对比感。
- 在第二阶段期间展示新内容——爆发移动会掩盖内容的出现。
- 垂直方向使用相同比例;按比例调整移动距离,保持时间比例不变。
Choosing a Variant
技术变体选择
| Zoom-Through | Inverse Zoom | Cut the Curve | Waterfall Cut | |
|---|---|---|---|---|
| Scope | Within-scene text swap | Arrival/payoff beat | Between scenes | Text-to-text seam |
| Z sign / axis | growing (push) | shrinking (pull) | X / Y | X, per-word |
| Travel/scale | 1→1.2, then 0.75→1 | 1→0.8, then 1.25→1 | ±230px | ±230px |
| Peak blur | 10px text / 18–20 full-frame | 10px text / 18–20 full-frame | 8–10px optional | none |
| Eases | power3.in / expo.out | power3.in / expo.out | power4.in / power4.out | power4.in / power4.out |
| Feel | progressing through | arriving at | carried sideways | a wave across the seam |
| Zoom-Through | Inverse Zoom | Cut the Curve | Waterfall Cut | |
|---|---|---|---|---|
| 适用范围 | 场景内文本切换 | 入场/高潮节拍 | 场景间切换 | 文本到文本过渡 |
| Z轴符号/方向 | 放大(推进) | 缩小(拉远) | X / Y轴 | X轴,逐词 |
| 移动/缩放比例 | 1→1.2,然后0.75→1 | 1→0.8,然后1.25→1 | ±230px | ±230px |
| 峰值模糊 | 文本10px / 全帧18–20px | 文本10px / 全帧18–20px | 可选8–10px | 无 |
| 缓动曲线 | power3.in / expo.out | power3.in / expo.out | power4.in / power4.out | power4.in / power4.out |
| 感受 | 内容递进 | 重点内容呈现 | 横向流畅过渡 | 过渡时的波浪感 |
Anti-Patterns
反模式
| Don't | Instead |
|---|---|
| Two texts visible during a zoom-through | Hard cut at blur peak, one text at a time |
| 20px blur on text-scale subjects | 10px text; 18–20px only full-frame |
| Inverse-zoom exit → grow-from-small entry (or push → oversized retraction) | Match the scale-velocity SIGN; verify at cut±0.1s |
| Incoming comp's own scale-up intro under a Z-seam wrapper tween | Arrive composed; stage entrances after the seam settles or match the sign |
| Mismatched blur/opacity at the swap | Identical values at the cut frame |
Gentle entry easing ( | Mirror the exit: |
| Full off-screen exits/entries | Partial travel (~12%) + early fade |
| Mirrored |
| Lone element fading long before its cut | Fade ends ~0.02s before the cut, or word-cascade |
| Equal gaps across a waterfall cascade | Shrink gaps ×0.84 per word |
| Zoom-through on body text | Headlines and short phrases only |
| Scene cuts without cut-the-curve | It is the default boundary |
| Consecutive boundaries in opposing directions | One current; reserved vectors spent on meaning |
Unpainted | Opaque stage ground |
| Queued entries (each waits for the previous to settle) | Overlap ±1–2 frames — the cascade is a wave, not a queue |
| Same offset/duration for every cascade element | Vary by weight: anchors travel further, punctuation snaps |
| Gradual opacity fade on a §6 arrival | Binary 0→1 via |
Single ease for a group slide ( | The §7 three-phase chain |
| Nudge tail shorter than 3× the ramp-in | Extend the tail's TIME, not its distance |
| 禁止操作 | 替代方案 |
|---|---|
| Zoom-through期间同时显示两段文本 | 在模糊峰值处硬切换,一次仅显示一段文本 |
| 文本缩放对象使用20px模糊 | 文本使用10px模糊;仅全帧画面使用18–20px模糊 |
| 反向缩放退出→从小尺寸放大入场(或推进→超大尺寸缩回) | 匹配缩放速度的符号;在切割前后0.1秒处验证 |
| Z轴过渡容器补间下,入场合成使用自身的放大入场动画 | 以组合画面形式入场;分阶段入场在过渡完成后进行,或匹配符号规则 |
| 切换时模糊/透明度不匹配 | 切割帧处保持完全相同的数值 |
使用平缓的入场缓动( | 镜像退出缓动: |
| 完全移出画面的退出/入场 | 部分移动(约12%)+ 提前淡入淡出 |
切割两侧使用 | 使用镜像 |
| 单个元素在切割前过早淡出 | 淡入淡出在切割前约0.02秒结束,或使用单词级联 |
| 瀑布级联使用相等间隔 | 间隔按每个单词×0.84缩小 |
| 正文文本使用zoom-through | 仅适用于标题和短句 |
| 场景切割不使用cut-the-curve | 这是默认场景边界 |
| 连续边界使用相反方向 | 保持单一流动节奏;特殊方向仅用于表达特定含义 |
过渡窗口切割后 | 使用不透明舞台背景 |
| 排队入场(每个元素等前一个完全静止后启动) | 重叠±1–2帧——级联是波浪效果,而非排队 |
| 级联中每个元素使用相同偏移/时长 | 随权重变化:锚点元素移动更远,标点快速到位 |
| §6入场使用渐变透明度 | 通过 |
群组滑动使用单个缓动( | 使用§7的三阶段串联补间 |
| Nudge收尾阶段时长小于启动阶段的3倍 | 延长收尾阶段的时长,而非距离 |
Code
代码
All GSAP templates — worker-authored versions, registry s, the combined
cut-the-curve + zoom, waterfall DOM/CSS/JS, rack-focus — live in
.
gsap_templateexamples/gsap-implementation.md所有GSAP模板——worker创作版本、注册表s、组合cut-the-curve + zoom、waterfall DOM/CSS/JS、rack-focus——均收录于。
gsap_templateexamples/gsap-implementation.md