What problem does it solve? Choosing the right Jetpack Compose animation API is confusing—AnimatedVisibility, animateAsState, rememberTransition, AnimatedContent, and Crossfade overlap in capability, and picking the wrong one leads to desynchronized motion, unnecessary recomposition, or composables that never leave the tree. ## Core Features & Use Cases - API selection guidance: Decision tables and a flowchart map each motion need (show/hide, single property, multi-property, content swap) to the smallest appropriate Compose animation API. - Implementation patterns: Copy-ready Kotlin snippets for AnimatedVisibility, animateColorAsState with drawBehind, animateContentSize, rememberTransition with child animations, and AnimatedContent with contentKey for state-holder wrappers like AsyncResult. - Common mistake fixes: A troubleshooting table covers pitfalls like fading with alpha while expecting unmounting, drifting independent animateAsState calls, and AnimatedContent re-animating on every data refresh. - Use Case: When building a profile screen that transitions between loading, content, and error states, use the contentKey guidance to animate only on shape changes instead of every payload update. ## Quick Start Ask the AI to help you animate a composable in Jetpack Compose, for example to add an enter/exit transition to an expanding details panel or to coordinate multiple animated properties from one state enum.