chart.waterfall-reveal

瀑布图揭示

Waterfall Reveal

仅本次打开有效
范围
效果
复杂度
进阶
建议时长
3.6s
画幅
16:9 · 9:16 · 1:1
01
Live preview

真实渲染预览

实机渲染 · HyperFrames
02
Purpose

这个动效用来做什么

起始值经过正负变化逐段累积,连接线传递路径并在终点强调最终总值。

A starting value accumulates through positive and negative changes while connectors carry the path to a focused final total.

图表
解释强调
数据叙事产品演示演示文稿教育
03
Inputs

可替换参数

start_value必填 · number

Starting total before the change sequence.

默认值
120
changes必填 · number-list

Ordered positive or negative changes applied to the running total.

默认值
[24,-12,36,-18,28]
label必填 · string

Chart headline.

默认值
Conversion path
04
Motion timeline

归一化动作时间线

所有事件都使用 0 到 1 的归一化进度:0 是镜头开始,1 是镜头结束;事件可以重叠,适配器再把相同比例映射到秒或帧。

chart.fadeopacity.fade
0.06–0.24
bars.revealcollection.reveal
0.14–0.68
bars.staggercollection.stagger
0.14–0.68
connectors.drawpath.draw
0.24–0.72
total.settlespring.settle
0.64–0.82
chart.holdstate.hold
0.84–1.00
05
Copy to Agent

复制执行上下文

三个版本共享同一份可机器校验核心;引擎标签只追加已验证 Adapter 路由、能力与实现纪律。

<!-- motion-registry-context:{"format":"1.0.0","recipe_id":"chart.waterfall-reveal","recipe_version":"0.2.0","recipe_source":"recipes/chart/waterfall-reveal/recipe.yaml"} -->
# Motion Registry Context

<!-- motion-registry-section:recipe-identity:start -->
## Recipe identity
- Recipe ID: chart.waterfall-reveal
- Schema version: 0.2.0
- Recipe source: recipes/chart/waterfall-reveal/recipe.yaml
<!-- motion-registry-section:recipe-identity:end -->

<!-- motion-registry-section:motion-intent:start -->
## Motion intent and scope
- Purpose (zh): 起始值经过正负变化逐段累积,连接线传递路径并在终点强调最终总值。
- Purpose (en): A starting value accumulates through positive and negative changes while connectors carry the path to a focused final total.
- Scope: effect
- Complexity: intermediate
- Subjects: chart
- Intents: explain, emphasize
- Use cases: data-story, product-demo, presentation, education
- Recipe capabilities: cumulative-steps, positive-negative-changes, running-connectors, terminal-total
<!-- motion-registry-section:motion-intent:end -->

<!-- motion-registry-section:inputs:start -->
## Inputs
- start_value: number (required; default=120) — Starting total before the change sequence.
- changes: number-list (required; default=[24,-12,36,-18,28]) — Ordered positive or negative changes applied to the running total.
- label: string (required; default=Conversion path) — Chart headline.
<!-- motion-registry-section:inputs:end -->

<!-- motion-registry-section:normalized-timeline:start -->
## Normalized motion timeline (0 to 1)
- 0.06–0.24 · chart.fade · opacity.fade → chart · parameters={"from":0,"to":1}
- 0.14–0.68 · bars.reveal · collection.reveal → bars · parameters={"order":"source","opacity_from":0,"opacity_to":1}
- 0.14–0.68 · bars.stagger · collection.stagger → bars · parameters={"order":"source","fraction":0.12}
- 0.24–0.72 · connectors.draw · path.draw → connectors · parameters={"from":0,"to":1}
- 0.64–0.82 · total.settle · spring.settle → total · parameters={"from":0.84,"to":1,"strength":"normal"}
- 0.84–1.00 · chart.hold · state.hold → chart · parameters={}
<!-- motion-registry-section:normalized-timeline:end -->

<!-- motion-registry-section:output-envelope:start -->
## Output envelope
- Aspect ratios: 16:9, 9:16, 1:1
- Duration: min 2.6s; preferred 3.6s; max 5s
<!-- motion-registry-section:output-envelope:end -->

<!-- motion-registry-section:acceptance:start -->
## Acceptance constraints
- cumulative-steps: Each change bar begins at the previous cumulative level and the final total equals the start value plus all changes.
- signed-direction: Positive changes extend upward and negative changes extend downward from their cumulative anchor.
- running-connectors: Horizontal connectors link adjacent cumulative levels without covering bar labels.
- terminal-total: The final cumulative value receives a distinct readable emphasis after the change sequence is visible.
- stable-hold: Bars, connectors, labels, and final total remain still and readable during the final hold.
<!-- motion-registry-section:acceptance:end -->

<!-- motion-registry-section:handoff-invariants:start -->
## Handoff invariants
- Preserve the subject, input meaning, event order, overlaps, final state, and approximate normalized timing.
- Keep the implementation deterministic and retain a readable, stable final hold.
- Treat the Recipe document as the source of truth; do not infer engine APIs in this shared core.
<!-- motion-registry-section:handoff-invariants:end -->
06
Engine implementations

双引擎实现

gsap-timeline

HyperFrames

已验证
Composition
waterfall-reveal
入口文件
index.html
确定性
  • lint通过
  • validate通过
  • inspect通过
  • render通过
frame-based

Remotion

已验证
Composition
WaterfallReveal
入口文件
WaterfallReveal.tsx
确定性
  • typecheck通过
  • build通过
  • render通过
07
Source, reference & rights

来源与使用边界

再分发状态
original
来源说明
Self-authored G6 waterfall data-story design.
Recipe 文件
recipes/chart/waterfall-reveal/recipe.yaml

参考

无外部参考;该 Recipe 与测试素材为项目原创。

08
Verification

验收标准

01
cumulative-steps

Each change bar begins at the previous cumulative level and the final total equals the start value plus all changes.

02
signed-direction

Positive changes extend upward and negative changes extend downward from their cumulative anchor.

03
running-connectors

Horizontal connectors link adjacent cumulative levels without covering bar labels.

04
terminal-total

The final cumulative value receives a distinct readable emphasis after the change sequence is visible.

05
stable-hold

Bars, connectors, labels, and final total remain still and readable during the final hold.

2 个实现已通过真实渲染理解验证模型