瀑布图揭示
Waterfall Reveal
- 范围
- 效果
- 复杂度
- 进阶
- 建议时长
- 3.6s
- 画幅
- 16:9 · 9:16 · 1:1
真实渲染预览
这个动效用来做什么
起始值经过正负变化逐段累积,连接线传递路径并在终点强调最终总值。
A starting value accumulates through positive and negative changes while connectors carry the path to a focused final total.
可替换参数
start_value必填 · numberStarting total before the change sequence.
- 默认值
120
changes必填 · number-listOrdered positive or negative changes applied to the running total.
- 默认值
[24,-12,36,-18,28]
label必填 · stringChart headline.
- 默认值
Conversion path
归一化动作时间线
所有事件都使用 0 到 1 的归一化进度:0 是镜头开始,1 是镜头结束;事件可以重叠,适配器再把相同比例映射到秒或帧。
0.06–0.240.14–0.680.14–0.680.24–0.720.64–0.820.84–1.00复制执行上下文
三个版本共享同一份可机器校验核心;引擎标签只追加已验证 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 -->双引擎实现
HyperFrames
- Composition
waterfall-reveal- 入口文件
index.html- 确定性
- 是
- lint通过
- validate通过
- inspect通过
- render通过
Remotion
- Composition
WaterfallReveal- 入口文件
WaterfallReveal.tsx- 确定性
- 是
- typecheck通过
- build通过
- render通过
来源与使用边界
- 再分发状态
- original
- 来源说明
- Self-authored G6 waterfall data-story design.
- Recipe 文件
recipes/chart/waterfall-reveal/recipe.yaml
参考
无外部参考;该 Recipe 与测试素材为项目原创。
验收标准
cumulative-stepsEach change bar begins at the previous cumulative level and the final total equals the start value plus all changes.
signed-directionPositive changes extend upward and negative changes extend downward from their cumulative anchor.
running-connectorsHorizontal connectors link adjacent cumulative levels without covering bar labels.
terminal-totalThe final cumulative value receives a distinct readable emphasis after the change sequence is visible.
stable-holdBars, connectors, labels, and final total remain still and readable during the final hold.