FR: Add Animation Support with Timeline Controls

Motion graphics are a fairly standard and popular thing to add in apps, particularly with native frameworks.

It would be nice to have support for the assortment of features that come with the concept:

  • Timelines
    • With properties assigned to a point in time.
    • With support for start, stop, reset, repeat with a number of cycles and infinite cycles.
    • With conversion support between keyframes + frame rates and seconds.
  • Easing
  • Animations within the LookAndFeel to allow complex UIs:
    • Buttons
      • eg: Fade in and out, not just opacity but points in a gradient (or whatever you want).
    • Smoothly scrolling list boxes, viewports, etc…
      • Adding overpull support to the liking.
    • Animations can be locked/synced together (ie incremented per frame) or optionally freely ran

It would also be fun to tie to a ValueTree (or similar or related structure) so you can map property changes - such as visibility, opacity, scale, translation, and rotation - to existing timeline systems (eg: AfterEffects, Figma, Blender, Maya, etc…)

This kind of feature set could/should lend itself to easy representation in a UI for editing, or just for helpful display purposes (ie: with some Component derivative that can control or just show the Timeline's details or whatever).

Existing example approaches in JUCE world: