Context
#363 was closed after fixing char_* on rich_text/gradient_text, but three requested capabilities were not delivered and are rejected as unknown fields. rules/char-animation-rich-and-gradient-text.md only notes them as absent.
To do
Definition of done
- A test that fails on current
main is written first. For anything visual it is a render test (scenario → frame → pixel assertions); tests that build AnimatedProperties by hand are not enough — that is exactly how the regressions listed here slipped through.
- Each item is verified end to end: scenario JSON,
rustmotion validate, render, image inspected.
cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace pass.
- Vocabulary changes update
crates/rustmotion/skills/SKILL.md, the relevant rules/ file and the exported schema. A field the validator accepts must have an effect, otherwise the validator rejects it or warns.
- No comments in Rust code (repository rule). Commits follow
<type>: <verb> <message>. No AI attribution in commits, PRs or issue comments.
Context
#363 was closed after fixing char_* on
rich_text/gradient_text, but three requested capabilities were not delivered and are rejected as unknown fields.rules/char-animation-rich-and-gradient-text.mdonly notes them as absent.To do
rotate_from(+rotate_origin): each unit starts tilted and straightens while it settles (staircase word reveal).scale_jitter/baseline_jitterwithseed: deterministic per-unit size and baseline variation (letters born at different sizes, then aligning).reflow/reflow_easingon char_* presets andtypewriter: a centred line stays centred while it is being written, instead of growing from a fixed left edge.Definition of done
mainis written first. For anything visual it is a render test (scenario → frame → pixel assertions); tests that buildAnimatedPropertiesby hand are not enough — that is exactly how the regressions listed here slipped through.rustmotion validate, render, image inspected.cargo fmt --all --check,cargo clippy --workspace --all-targets -- -D warnings,cargo test --workspacepass.crates/rustmotion/skills/SKILL.md, the relevantrules/file and the exported schema. A field the validator accepts must have an effect, otherwise the validator rejects it or warns.<type>: <verb> <message>. No AI attribution in commits, PRs or issue comments.