Skip to content

Animations touching only border_radius, clip_path_progress or font_size are never applied #426

Description

@LeadcodeDev

Context

Found while verifying #373 and #384 (both closed), and reported independently by a user for font_size.

Cause

props_has_paint_overrides (crates/rustmotion-components/src/box_builder.rs, around line 1039) is an allow-list (translate, scale, rotation, opacity, blur, glow, perspective, width, height). apply_animated_props is only called when it returns true, so an animation that touches only a property missing from that list is dropped. Adding any translate_x track to the same node "unlocks" it.

Repros

To do

  • Make every animated property reach the render, without a hand-maintained allow-list.
  • Audit every animatable property for the same defect (letter_spacing, stroke_width, gap, padding, …) with one render test per property animated alone.
  • border_radius animation on shape.
  • font_size animation applied to text layout and rendering.

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions