SkillAgentSearch skills...

SSJetPackComposeProgressButton

SSJetPackComposeProgressButton is an elegant button with a different loading animations. 🚀

Install / Use

/learn @SimformSolutionsPvtLtd/SSJetPackComposeProgressButton

README

alt text

SSJetPackComposeProgressButton

SSJetPackComposeProgressButton is an elegant button with a different loading animations which makes your app attractive.

CI Status Kotlin Version Platform API Android Arsenal

Features

  • Android’s modern toolkit - Jetpack Compose support.
  • Newly designed loading animation make your app attractive.
  • Blinking icon button for your hot-feature.
  • Button with text, right and left icon.
  • Different types of state makes it easy to manage button. (Idle, Loading, Success, Failure)
  • Fully customized button (Corner radius, background, colors, animation speed etc.)
  • Customize button loading animation with your logo and special animation effect.
  • Supports displaying GIFs via URL or local file in the button's loading state.
  • Supports swipe to animate buttons.

🎬 Preview

| On Success | On Failure | |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <a href="https://github.com/SimformSolutionsPvtLtd/SSJetPackComposeProgressButton/blob/579c837bbb3a9d3d11523368c96229dac6a9e287/app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/base/BaseProgressButton.kt#L30" target="_blank"><img src="/gif/success.gif" height="850px"/></a> | <a href="https://github.com/SimformSolutionsPvtLtd/SSJetPackComposeProgressButton/blob/579c837bbb3a9d3d11523368c96229dac6a9e287/app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/base/BaseProgressButton.kt#L30" target="_blank"><img src="/gif/failure.gif" height="850px"/></a> |

🎬 Swipeable Buttons

| On Success | On Failure | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <a href="https://github.com/SimformSolutionsPvtLtd/SSJetPackComposeProgressButton/blob/579c837bbb3a9d3d11523368c96229dac6a9e287/app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/base/BaseSwipeAbleProgressButton.kt#L30" target="_blank"><img src="/gif/swipeToAnimateSuccess.gif" height="450px"/></a> | <a href="https://github.com/SimformSolutionsPvtLtd/SSJetPackComposeProgressButton/blob/579c837bbb3a9d3d11523368c96229dac6a9e287/app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/base/BaseSwipeAbleProgressButton.kt#L30" target="_blank"><img src="/gif/swipeToAnimateFailure.gif" height="450px"/></a> |

🎬 Customized loading animation

| On Success | On Failure | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | <a href="https://github.com/SimformSolutionsPvtLtd/SSJetPackComposeProgressButton/blob/579c837bbb3a9d3d11523368c96229dac6a9e287/app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/base/BaseCustomProgressButton.kt#L27" target="_blank"><img src="/gif/custom_success.gif" height="450px"/></a> | <a href="https://github.com/SimformSolutionsPvtLtd/SSJetPackComposeProgressButton/blob/579c837bbb3a9d3d11523368c96229dac6a9e287/app/src/main/java/com/simform/ssjetpackcomposeprogressbutton/base/BaseCustomProgressButton.kt#L27" target="_blank"><img src="/gif/custom_fail.gif" height="450px"/></a> |

Installation

  1. Add it in your root build.gradle at the end of repositories:

    allprojects {
    	repositories {
    		...
    		maven { url 'https://jitpack.io' }
    	}
    }
    
  • Add the dependency in your app's build.gradle file

    dependencies {
            implementation 'com.github.SimformSolutionsPvtLtd:SSJetPackComposeProgressButton:<LATEST_TAG>'
    }
    

Usage

  • Just use SSJetPackComposeProgressButton where you want button.

    var submitButtonState by remember { mutableStateOf(SSButtonState.IDLE) }
    SSJetPackComposeProgressButton(
        type = SSButtonType.CLOCK,
        width = 300.dp,
        height = 50.dp,
        onClick = {
            //Perform action on click of button and make it's state to LOADING
            submitButtonState = SSButtonState.LOADING
        },
        assetColor = Color.Red,
        buttonState = submitButtonState
    )
    
    // On Success change submitButtonState to success state
    submitButtonState = SSButtonState.SUCCESS
    
    // On Failure change submitButtonState to failure state
    submitButtonState = SSButtonState.FAILIURE
    

Migration guide from release v1.0.9

  • Added support displaying GIFs via URL or local file in the button's loading state.
  • Added blinkingIconColor to animate with your custom color.
  • You can now apply different tints by using these updated variables: leftImageIconTintColor rightImageTintColor successIconTintColor failureIconTintColor These variables allow you to customize tints as per your specific requirements, while defaulting to null if not specified.
  • Changed default cornerRadius value to 0 from 20.
  • Renamed blinkingIcon to isBlinkingIcon in SSJetPackComposeProgressButton.
  • Renamed colorChanger in fadeInOut in SSCustomLoadingEffect.
  • Removed buttonBorderStroke and instead use buttonBorderWidth, buttonBorderColor and animatedButtonBorderColor to offer more control over button borders.
  • Removed default values for successIconPainter and failureIconPainter and set to null to offer more control over what is displayed when animation is completed.
  • Removed default value for customLoadingIconPainter and set to null to offer more control over what is displayed when animation is in progress.

Customization

  • You can customize loading icon and animation effect according to your requirement.You can apply multiple animation effect from rotation, zoom-in-out and fade-in-out too.

    
    var submitButtonState by remember { mutableStateOf(SSButtonState.IDLE) }
    SSJetPackComposeProgressButton(
                    type = SSButtonType.CUSTOM,
              
    

Related Skills

View on GitHub
GitHub Stars326
CategoryDevelopment
Updated14d ago
Forks16

Languages

Kotlin

Security Score

100/100

Audited on Mar 18, 2026

No findings