SSJetPackComposeProgressButton
SSJetPackComposeProgressButton is an elegant button with a different loading animations. 🚀
Install / Use
/learn @SimformSolutionsPvtLtd/SSJetPackComposeProgressButtonREADME

SSJetPackComposeProgressButton
SSJetPackComposeProgressButton is an elegant button with a different loading animations which makes your app attractive.
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
-
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
blinkingIconColorto animate with your custom color. - You can now apply different tints by using these updated variables:
leftImageIconTintColorrightImageTintColorsuccessIconTintColorfailureIconTintColorThese variables allow you to customize tints as per your specific requirements, while defaulting tonullif not specified. - Changed default
cornerRadiusvalue to0from20. - Renamed
blinkingIcontoisBlinkingIconinSSJetPackComposeProgressButton. - Renamed
colorChangerinfadeInOutinSSCustomLoadingEffect. - Removed
buttonBorderStrokeand instead usebuttonBorderWidth,buttonBorderColorandanimatedButtonBorderColorto offer more control over button borders. - Removed default values for
successIconPainterandfailureIconPainterand set tonullto offer more control over what is displayed when animation is completed. - Removed default value for
customLoadingIconPainterand set tonullto 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
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
Languages
Security Score
Audited on Mar 18, 2026
