SmoothMotion ๐Ÿš€

September 25, 2025 ยท View on GitHub

SmoothMotion is a Kotlin library for Jetpack Compose that makes animations and transitions effortless.
It provides pre-built animations for common UI interactions and utility functions for complex effects โ€” so you can focus on building beautiful UIs faster.

GitHub stars JitPack License PRs Welcome


โœจ Features

  • ๐ŸŽฌ Ready-to-use loading & progress animations
  • โšก Built for Jetpack Compose โ€” clean & modern API
  • ๐ŸŽจ Customizable colors, sizes, and speeds
  • ๐Ÿชถ Lightweight, no unnecessary dependencies
  • ๐Ÿ”ง Utility functions for advanced motion

โ–ถ๏ธ Demo

https://github.com/user-attachments/assets/68e449a0-e938-4598-a290-958ba33e150a

Installation

Add the JitPack repository to your settings.gradle.kts

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://jitpack.io") }
    }
}

Add the dependency to your build.gradle.kts

dependencies {
    implementation ("com.github.abdullahalhakimi:SmoothMotion:1.0.1")
}

Examples

Drop Circle Progress

DropCircleProgress(
    modifier = Modifier.size(90.dp),
    backgroundColor = Color.Gray.copy(alpha = 0.2f),
    color = MaterialTheme.colorScheme.primary,
)

Circled Dots Progress

CircledDotsProgress(
    modifier = Modifier.size(90.dp),
    backgroundColor = Color.Gray.copy(alpha = 0.2f),
    color = MaterialTheme.colorScheme.primary,
)

Rotating Circle Progress

RotatingCircleProgress(
    modifier = Modifier.size(90.dp),
    color = MaterialTheme.colorScheme.primary
)

Rotating Filled Circle Progress

RotatingFilledCircleProgress(
    modifier = Modifier.size(90.dp),
    color = MaterialTheme.colorScheme.primary
)

Loading DotsAnimation

LoadingDotsAnimation(
    circleSize = 20.dp,
    spaceBetween = 10.dp,
    travelDistance = 15.dp,
    circleColor = MaterialTheme.colorScheme.primary
)

Outlined Loading Dots Animation

OutlinedLoadingDotsAnimation(
    color = MaterialTheme.colorScheme.primary
)

โœจ Requirements

  • Any IDE with SDK installed (ie. Android Studio, VSCode, IntelliJ, etc)
  • A little knowledge of Kotlin and Jetpack Compose.
  • A brain to think ๐Ÿค“๐Ÿค“

๐Ÿ“„ License

This project is licensed under the Apache License 2.0.