The animation system is good for most use cases but it's also super hard to do anything procedural like UI animation. If you want to animate a button you need to write 5 helpers to make it less painful. It's mostly designed for importing from a file.
A bit off topic but their handling of async IO tasks is awful. The engine polls them for you but you also need to poll them yourself in a separate system, because you can't access a `Commands` instance from inside the future without blocking the main thread and there is no way to pass a callback that runs when it's finished. That's not a problem most games will see but for anyone loading content from a server (like patch notes or server lists) or using Bevy as a UI library it can add up.
I don't know about animation, but it seems the UI system and their widget library was overhauled.
"The Feathers widgets have migrated to BSN, Bevy's next-generation scene system. BSN is a better foundation for widgets than the old spawn-function approach: it reduces boilerplate, lets you compose widgets together, parameterize widgets with SceneComponent props, reference font/image assets, and register observers in the same declaration."
https://bevy.org/news/bevy-0-19/