From b062ced0006c938cc68df7300029c5f41072cc89 Mon Sep 17 00:00:00 2001 From: Trey t Date: Fri, 20 Feb 2026 14:26:21 -0600 Subject: [PATCH] fix: improve text contrast for badges, category chips, and separators - Change attraction category color from .yellow to orange variant for readable text in both light and dark mode (QuickAddItemSheet, POIDetailSheet) - Fix "optional" badge to use textPrimary-based colors for strong contrast - Bump paywall dashed separator from 0.4 to 0.6 opacity - Fix SuggestedTripCard bullet separator from textMuted(0.5) to textSecondary Co-Authored-By: Claude Opus 4.6 --- .../Features/Home/Views/SuggestedTripCard.swift | 2 +- .../Features/Paywall/Views/PaywallView.swift | 2 +- .../Trip/Views/AddItem/POIDetailSheet.swift | 2 +- .../Trip/Views/AddItem/QuickAddItemSheet.swift | 14 +++++--------- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/SportsTime/Features/Home/Views/SuggestedTripCard.swift b/SportsTime/Features/Home/Views/SuggestedTripCard.swift index 48b466f..2854c9d 100644 --- a/SportsTime/Features/Home/Views/SuggestedTripCard.swift +++ b/SportsTime/Features/Home/Views/SuggestedTripCard.swift @@ -51,7 +51,7 @@ struct SuggestedTripCard: View { } Text("•") - .foregroundStyle(Theme.textMuted(colorScheme).opacity(0.5)) + .foregroundStyle(Theme.textSecondary(colorScheme)) Label { Text(suggestedTrip.trip.stops.count == 1 ? "1 city" : "\(suggestedTrip.trip.stops.count) cities") diff --git a/SportsTime/Features/Paywall/Views/PaywallView.swift b/SportsTime/Features/Paywall/Views/PaywallView.swift index 4b1fc64..6e6da67 100644 --- a/SportsTime/Features/Paywall/Views/PaywallView.swift +++ b/SportsTime/Features/Paywall/Views/PaywallView.swift @@ -66,7 +66,7 @@ struct PaywallView: View { // Dashed ticket perforation separator Line() .stroke(style: StrokeStyle(lineWidth: 1.5, dash: [6, 4])) - .foregroundStyle(Theme.textMuted(colorScheme).opacity(0.4)) + .foregroundStyle(Theme.textMuted(colorScheme).opacity(0.6)) .frame(height: 1) .padding(.horizontal, Theme.Spacing.lg) .padding(.top, Theme.Spacing.lg) diff --git a/SportsTime/Features/Trip/Views/AddItem/POIDetailSheet.swift b/SportsTime/Features/Trip/Views/AddItem/POIDetailSheet.swift index 3844f27..3c19985 100644 --- a/SportsTime/Features/Trip/Views/AddItem/POIDetailSheet.swift +++ b/SportsTime/Features/Trip/Views/AddItem/POIDetailSheet.swift @@ -175,7 +175,7 @@ struct POIDetailSheet: View { case .coffee: return .brown case .hotel: return .blue case .parking: return .green - case .attraction: return .yellow + case .attraction: return Color.orange.opacity(0.85) case .entertainment: return .purple } } diff --git a/SportsTime/Features/Trip/Views/AddItem/QuickAddItemSheet.swift b/SportsTime/Features/Trip/Views/AddItem/QuickAddItemSheet.swift index d359728..ed979e9 100644 --- a/SportsTime/Features/Trip/Views/AddItem/QuickAddItemSheet.swift +++ b/SportsTime/Features/Trip/Views/AddItem/QuickAddItemSheet.swift @@ -345,7 +345,7 @@ struct QuickAddItemSheet: View { case .coffee: return .brown case .hotel: return .blue case .parking: return .green - case .attraction: return .yellow + case .attraction: return Color.orange.opacity(0.85) case .entertainment: return .purple } } @@ -366,16 +366,12 @@ struct QuickAddItemSheet: View { if optional { Text("optional") - .font(.caption) - .foregroundStyle(Theme.textSecondary(colorScheme)) + .font(.caption2.weight(.medium)) + .foregroundStyle(Theme.textPrimary(colorScheme).opacity(0.7)) .padding(.horizontal, 8) .padding(.vertical, 3) - .background(Theme.surfaceGlow(colorScheme).opacity(1.5)) + .background(Theme.textPrimary(colorScheme).opacity(0.1)) .clipShape(Capsule()) - .overlay( - Capsule() - .strokeBorder(Theme.textMuted(colorScheme).opacity(0.3), lineWidth: 0.5) - ) } } } @@ -681,7 +677,7 @@ private struct POIRow: View { case .coffee: return .brown case .hotel: return .blue case .parking: return .green - case .attraction: return .yellow + case .attraction: return Color.orange.opacity(0.85) case .entertainment: return .purple } }