{"id":22829351,"url":"https://github.com/swiftfulthinking/swiftfulloadingindicators","last_synced_at":"2025-04-13T10:44:14.634Z","repository":{"id":40490024,"uuid":"329379579","full_name":"SwiftfulThinking/SwiftfulLoadingIndicators","owner":"SwiftfulThinking","description":"A collection of lightweight SwiftUI loading animations.","archived":false,"fork":false,"pushed_at":"2021-03-29T18:54:09.000Z","size":47,"stargazers_count":290,"open_issues_count":0,"forks_count":25,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-27T02:09:38.487Z","etag":null,"topics":["loading-animations","loading-indicator","loading-spinner","swift-animation","swiftui","swiftui-animation","swiftui-animations"],"latest_commit_sha":null,"homepage":"https://www.swiftful-thinking.com","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SwiftfulThinking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-13T17:16:27.000Z","updated_at":"2025-03-23T20:01:43.000Z","dependencies_parsed_at":"2022-07-10T14:46:18.466Z","dependency_job_id":null,"html_url":"https://github.com/SwiftfulThinking/SwiftfulLoadingIndicators","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwiftfulThinking%2FSwiftfulLoadingIndicators","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwiftfulThinking%2FSwiftfulLoadingIndicators/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwiftfulThinking%2FSwiftfulLoadingIndicators/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwiftfulThinking%2FSwiftfulLoadingIndicators/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwiftfulThinking","download_url":"https://codeload.github.com/SwiftfulThinking/SwiftfulLoadingIndicators/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248702083,"owners_count":21148114,"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":["loading-animations","loading-indicator","loading-spinner","swift-animation","swiftui","swiftui-animation","swiftui-animations"],"created_at":"2024-12-12T19:15:22.689Z","updated_at":"2025-04-13T10:44:14.613Z","avatar_url":"https://github.com/SwiftfulThinking.png","language":"Swift","readme":"# SwiftfulLoadingIndicators\n\nA collection of lightweight loading animations that can be applied to any SwiftUI view with 1 line of code. All animations are built using the SwiftUI framework (and in a few cases, the Combine framework).\n\n:thumbsup: **20+ animations!**\n\n:art: **Works with any Color**\n\n:toolbox: **Customize speed \u0026 size**\n\n:white_check_mark: **No keyframe animations or DispatchQueue calls** that could negatively affect the UI\n\n:white_check_mark: **Source files have no depencendies** and can be extracted without issue\n\n![Imgur](https://i.imgur.com/729d9U0.gif) \n\n![Imgur](https://imgur.com/11BVcV2.gif) ![Imgur](https://imgur.com/BjPd3bC.gif)\n\n## Installation\n\n**Swift Package Manager** \n\nThe Swift Package Manager is a tool for managing the distribution of Swift code. To use SwiftfulLoadingIndicators with Swift Package Manager in an Xcode project:\n\n* File -\u003e Swift Packages -\u003e Add Package Dependency -\u003e\n* Add URL for this repository: https://github.com/SwiftfulThinking/SwiftfulLoadingIndicators.git\n\n## Usage\n\nFirstly, import the package to your file.\n```swift\nimport SwiftfulLoadingIndicators\n```\nThen add a LoadingIndicator to your SwiftUI view.\n\n```swift\nLoadingIndicator()\n```\n\nThe indicators are customizable in terms of animation, color, size, and speed. All parameters are optional and will init with default values if not included. Example implementations:\n\n```swift\n// DEFAULT PARAMETERS:\n// Animation == .threeBalls\n// Color == .primary\n// Size == .medium\n// Speed == .normal\nLoadingIndicator()\nLoadingIndicator(animation: .fiveLines)\nLoadingIndicator(animation: .fiveLines, color: .red)\nLoadingIndicator(animation: .fiveLines, color: .red, size: .large)\nLoadingIndicator(animation: .fiveLines, color: .red, size: .large, speed: .fast)\nLoadingIndicator(color: .red)\nLoadingIndicator(size: .large)\nLoadingIndicator(speed: .slow)\n```\n\nThe indicators will animate as soon as they appear on the screen, similar to the native ProgressView(). Recommended approach is to add the indicator to the View only when it is required:\n```swift\nif isLoading {\n    LoadingIndicator()\n}\n```\n\nTo quickly see all animation options, simply add a LoadingShowcaseView.\n\n```swift\nLoadingShowcaseView()\n```\n\nTo quickly see all size and speed options for a single animation, simply add a LoadingPreviewView.\n```swift\nLoadingPreviewView(animation: .threeBalls)\n```\n\n## Additional Configuration \u0026 Notes\n\nAll loading indicators are built for SwiftUI. The majority of animations are triggered by toggling a very simple @State variable when they appear. A few of the more complex animations use a Publisher through the  Combine framework.\n\nThe animations are meant to be highly customizable and each animation file does not have any external dependencies. If you would prefer to (1) customize one of the animations or (2) only include one of the animations in your project, you can simple copy + paste the source file directly.\n* path: SwiftfulLoadingIndicators/Sources/SwiftfulLoadingIndicators/Animations/\n\n**Supported Platforms:**\n\n* .macOS(.v11)\n* .iOS(.v13)\n* .tvOS(.v14)\n* .watchOS(.v7)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswiftfulthinking%2Fswiftfulloadingindicators","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswiftfulthinking%2Fswiftfulloadingindicators","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswiftfulthinking%2Fswiftfulloadingindicators/lists"}