{"id":22043130,"url":"https://github.com/eranboudjnah/loaders","last_synced_at":"2025-04-10T05:07:21.802Z","repository":{"id":215794760,"uuid":"739791962","full_name":"EranBoudjnah/Loaders","owner":"EranBoudjnah","description":"Jetpack Compose Loaders","archived":false,"fork":false,"pushed_at":"2025-04-09T18:45:55.000Z","size":2988,"stargazers_count":70,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T05:07:13.930Z","etag":null,"topics":["android","android-library","android-loaders","jetpack-compose","kotlin","kotlin-multiplatform","kotlin-multiplatform-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EranBoudjnah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"EranBoudjnah","custom":"https://paypal.me/EranB"}},"created_at":"2024-01-06T15:01:49.000Z","updated_at":"2025-03-26T21:48:37.000Z","dependencies_parsed_at":"2024-01-23T20:25:29.807Z","dependency_job_id":"a639fefd-71f0-46ce-ab9f-7aa531ca45f2","html_url":"https://github.com/EranBoudjnah/Loaders","commit_stats":{"total_commits":146,"total_committers":2,"mean_commits":73.0,"dds":"0.32191780821917804","last_synced_commit":"8ed372e1b7873f6b9b5d85d6be45b4df27f76871"},"previous_names":["eranboudjnah/loaders"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EranBoudjnah%2FLoaders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EranBoudjnah%2FLoaders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EranBoudjnah%2FLoaders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EranBoudjnah%2FLoaders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EranBoudjnah","download_url":"https://codeload.github.com/EranBoudjnah/Loaders/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161273,"owners_count":21057555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","android-loaders","jetpack-compose","kotlin","kotlin-multiplatform","kotlin-multiplatform-library"],"created_at":"2024-11-30T12:15:08.609Z","updated_at":"2025-04-10T05:07:21.784Z","avatar_url":"https://github.com/EranBoudjnah.png","language":"Kotlin","funding_links":["https://github.com/sponsors/EranBoudjnah","https://paypal.me/EranB"],"categories":[],"sub_categories":[],"readme":"# Loaders\n\nA collection of progress indicators/loaders for Jetpack Compose\n\n[![Gradle checks](https://github.com/EranBoudjnah/Loaders/actions/workflows/gradle-checks.yml/badge.svg)](https://github.com/EranBoudjnah/Loaders/actions/workflows/gradle-checks.yml)\n![Gears - Maven Central](https://img.shields.io/maven-central/v/com.mitteloupe.loaders/loaders-gears?label=Gears%20on%20maven-central)\n![Jigsaw - Maven Central](https://img.shields.io/maven-central/v/com.mitteloupe.loaders/loaders-jigsaw?label=Jigsaw%20on%20maven-central)\n\n![Gears](https://github.com/EranBoudjnah/Loaders/blob/ca0d8f703f6b809b02beeeae5696fc5232f54e3b/Assets/main_demo.gif)\n![Jigsaw](https://github.com/EranBoudjnah/Loaders/blob/fd4493f962408b9ec05c6e5c2f1893c0210d81b3/Assets/jigsaw_demo.gif)\n\nDownload\n--------\nUpdate the project build.gradle. You can include one or more of the loaders:\n\n```gradle\ndependencies {\n   implementation 'com.mitteloupe.loaders:loaders-gears:0.4.0'\n   implementation 'com.mitteloupe.loaders:loaders-jigsaw:0.2.0'\n}\n```\n\nThis project is hosted in mavenCentral().\n\n### Usage\n\n```kotlin\nGearsLoader()\nJigsawLoader()\n```\n\n#### Other optional params:\n\n##### Gears\n\n```kotlin\n@Composable\nfun GearsLoader(\n    modifier: Modifier = Modifier,\n    gearConfiguration: GearConfiguration = GearsLoaderDefaults.gearConfiguration,\n    @FloatRange(from = 0.0, to = 1.0) toothRoundness: Float = GearsLoaderDefaults.TOOTH_ROUNDNESS,\n    holeRadius: Dp = GearsLoaderDefaults.holeRadius,\n    rotationTimeMilliseconds: Int = GearsLoaderDefaults.ROTATION_TIME_MILLISECONDS,\n    color: Color = GearsLoaderDefaults.color,\n    trackColor: Color = GearsLoaderDefaults.trackColor,\n    gearType: GearType = GearsLoaderDefaults.gearType,\n    progressState: ProgressState = ProgressState.Indeterminate,\n    transitionTimeMilliseconds: Int = DefaultDurationMillis,\n    rectangleFiller: RectangleFiller = RectangleFiller(GearMesher())\n)\n```\n\n##### Jigsaw\n\n```kotlin\n@Composable\nfun JigsawLoader(\n    modifier: Modifier = Modifier,\n    progressState: ProgressState = Indeterminate(),\n    horizontalPieces: Int = JigsawLoaderDefaults.horizontalPieces,\n    verticalPieces: Int = JigsawLoaderDefaults.verticalPieces,\n    puzzleBrushProvider: BrushProvider =\n        ColorBrushProvider(JigsawLoaderDefaults.color),\n    lightBrush: Brush = SolidColor(Color.White.copy(alpha = .4f)),\n    darkBrush: Brush = SolidColor(Color.Black.copy(alpha = .6f)),\n    trackColor: Color = JigsawLoaderDefaults.trackColor,\n    piecePresenceResolver: PiecePresenceResolver = JigsawLoaderDefaults.piecePresenceResolver(\n        progressState = progressState,\n        horizontalPieces = horizontalPieces,\n        verticalPieces = verticalPieces\n    ),\n    transitionTimeMilliseconds: Int = AnimationConstants.DefaultDurationMillis,\n    @FloatRange(from = 0.0, to = 1.0) trackSaturation: Float = 1f,\n    knobInversionEvaluator: (placeX: Int, placeY: Int) -\u003e Boolean =\n        JigsawLoaderDefaults.knobInversionEvaluator,\n    knobConfiguration: KnobConfiguration = JigsawLoaderDefaults.knobConfiguration,\n    overflow: Boolean = false\n)\n```\n\n### Show some ❤ and support\n\nIf this project helped you, give it a ⭐️!\n\n### Contributing\n\nContributions to this project are welcome. Please feel free to report any issues or fork to\nmake changes and raise a pull request.\n\n### License\n\nThis project is distributed under the terms of the MIT License. See [LICENSE](LICENSE) for\ndetails.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feranboudjnah%2Floaders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feranboudjnah%2Floaders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feranboudjnah%2Floaders/lists"}