Near-monochrome palette (ink tokens), black primary buttons, spring animations, 0.5pt hairline dividers, shadow cards, squircle corners. Replaces all blue/coloured accents. Adds ButtonStyles component. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
757 B
Swift
24 lines
757 B
Swift
import SwiftUI
|
|
|
|
struct ProgressRing: View {
|
|
let progress: Double
|
|
var lineWidth: CGFloat = 8
|
|
var size: CGFloat = 200
|
|
var color: Color = AppTheme.ink
|
|
var backgroundColor: Color = Color(hex: "#EBEBEB")
|
|
|
|
var body: some View {
|
|
ZStack {
|
|
Circle()
|
|
.stroke(backgroundColor, style: StrokeStyle(lineWidth: lineWidth, lineCap: .round))
|
|
|
|
Circle()
|
|
.trim(from: 0, to: CGFloat(min(progress, 1.0)))
|
|
.stroke(color, style: StrokeStyle(lineWidth: lineWidth, lineCap: .round))
|
|
.rotationEffect(.degrees(-90))
|
|
.animation(.spring(response: 0.5, dampingFraction: 0.8), value: progress)
|
|
}
|
|
.frame(width: size, height: size)
|
|
}
|
|
}
|