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 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-20 14:26:21 -06:00
parent c52b70089e
commit b062ced000
4 changed files with 8 additions and 12 deletions

View File

@@ -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")

View File

@@ -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)

View File

@@ -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
}
}

View File

@@ -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
}
}