feat: redesign all share cards, remove unused achievement types, fix sport selector

Redesign trip, progress, and achievement share cards with premium
sports-media aesthetic. Remove unused milestone/context achievement card
types (only used in debug exporter). Fix gold text unreadable in light
mode. Fix sport selector to only show stroke on selected sport.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-09 14:55:53 -06:00
parent 1a7ce78ae4
commit 244ea5e107
16 changed files with 3441 additions and 748 deletions

View File

@@ -177,29 +177,20 @@ struct SportProgressButton: View {
Button(action: action) {
VStack(spacing: 6) {
ZStack {
// Background circle with progress ring
Circle()
.stroke(sport.themeColor.opacity(0.2), lineWidth: 3)
.fill(isSelected ? sport.themeColor.opacity(0.08) : Color.clear)
.frame(width: 48, height: 48)
Circle()
.trim(from: 0, to: progress)
.stroke(sport.themeColor, style: StrokeStyle(lineWidth: 3, lineCap: .round))
.frame(width: 48, height: 48)
.rotationEffect(.degrees(-90))
if isSelected {
Circle()
.stroke(sport.themeColor, lineWidth: 3)
.frame(width: 48, height: 48)
}
// Sport icon
Image(systemName: sport.iconName)
.font(.title3)
.foregroundStyle(isSelected ? sport.themeColor : Theme.textMuted(colorScheme))
}
.overlay {
if isSelected {
Circle()
.stroke(sport.themeColor, lineWidth: 2)
.frame(width: 54, height: 54)
}
}
Text(sport.rawValue)
.font(.caption2)