feat: implement Dynamic Type with Apple text styles

Replace all custom Theme.FontSize values and hardcoded font sizes with
Apple's built-in text styles (.largeTitle, .title2, .headline, .body,
.subheadline, .caption, .caption2) to support accessibility scaling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-11 10:23:16 -06:00
parent 8affa3ce0d
commit 2d48f1411a
16 changed files with 273 additions and 284 deletions

View File

@@ -410,7 +410,7 @@ struct ProgressShareView: View {
private var previewCard: some View {
VStack(spacing: Theme.Spacing.md) {
Text("Preview")
.font(.system(size: Theme.FontSize.caption, weight: .medium))
.font(.subheadline)
.foregroundStyle(Theme.textMuted(colorScheme))
// Mini preview
@@ -486,7 +486,7 @@ struct ProgressShareView: View {
// Style selector
VStack(alignment: .leading, spacing: Theme.Spacing.xs) {
Text("Style")
.font(.system(size: Theme.FontSize.caption, weight: .medium))
.font(.subheadline)
.foregroundStyle(Theme.textMuted(colorScheme))
HStack(spacing: Theme.Spacing.sm) {
@@ -499,7 +499,7 @@ struct ProgressShareView: View {
// Username toggle
Toggle(isOn: $includeUsername) {
Text("Include Username")
.font(.system(size: Theme.FontSize.body))
.font(.body)
}
.padding(.horizontal)
@@ -512,7 +512,7 @@ struct ProgressShareView: View {
// Map toggle
Toggle(isOn: $includeMap) {
Text("Include Map")
.font(.system(size: Theme.FontSize.body))
.font(.body)
}
.padding(.horizontal)
}
@@ -525,7 +525,7 @@ struct ProgressShareView: View {
withAnimation { cardStyle = style }
} label: {
Text(label)
.font(.system(size: Theme.FontSize.caption, weight: .medium))
.font(.subheadline)
.foregroundStyle(cardStyle == style ? .white : Theme.textPrimary(colorScheme))
.padding(.horizontal, Theme.Spacing.md)
.padding(.vertical, Theme.Spacing.sm)