https://github.com/durul/haloprogressbar
A fully SwiftUI-native, customizable, and animated circular progress bar.
https://github.com/durul/haloprogressbar
Last synced: over 1 year ago
JSON representation
A fully SwiftUI-native, customizable, and animated circular progress bar.
- Host: GitHub
- URL: https://github.com/durul/haloprogressbar
- Owner: durul
- License: bsd-2-clause
- Created: 2025-05-05T19:37:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-05T19:39:27.000Z (over 1 year ago)
- Last Synced: 2025-05-05T20:44:18.981Z (over 1 year ago)
- Language: Swift
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HaloProgress
A fully SwiftUI-native, customizable, and animated circular progress bar.

## π Features
- 100% SwiftUI β no UIKit dependency
- Smooth animation with value binding
- Multiple appearance styles:
- `overlaysEmptyLine`
- `aboveEmptyLine`
- `underEmptyLine`
- Fully customizable:
- Line width
- Colors
- Font
- Max value
- Show/hide progress label
# Why HaloProgressBar
Swift Charts currently does not directly support circular/radial progress bars.
βΈ»
π Swift Charts and Circular Visualization
Apple's Swift Charts framework (iOS 16+, macOS 13+) primarily supports Cartesian-based 2D data visualization types like bar, line, area, and point charts. It supports the following:
| Feature | Swift Charts | Description |
| ------------------------- | ------------ | --------------------- |
| Bar Chart | β
| Vertical / horizontal |
| Line Chart | β
| Time series |
| Area Chart | β
| Filled area |
| Scatter Chart | β
| Point-based |
| Pie Chart | β | Not supported |
| Circular Progress / Gauge | β | Not supported |
βΈ»
π What Kinds of Circular Solutions Exist?
| Method | Circular View | SwiftUI Implementation |
| -------------------------------------- | ------------- | --------------------------------------------- |
| Shape + trim + rotationEffect | β
| Our implemented solution |
| Canvas / Path | β
| Lower-level drawing |
| Gauge (iOS 16+) | β οΈ | Only iOS 16+, supports linear and semi-circle |
| 3rd-party chart library (e.g., Charts) | β
| Mixed UIKit/SwiftUI, complex |
βΈ»
π Summary
Swift Charts:
* π― Great for data series
* π« But does not support circular indicators, progress bars, or pie charts
My # HaloProgress solution:
* β
100% compatible with SwiftUI
* β
Full circular progress control
* β
Customization for animation, gradient, text, visuals
βΈ»