diff --git a/SunHat/Views/Components/SettingsIconLabel.swift b/SunHat/Views/Components/SettingsIconLabel.swift index 0d66962..43ac2fa 100644 --- a/SunHat/Views/Components/SettingsIconLabel.swift +++ b/SunHat/Views/Components/SettingsIconLabel.swift @@ -14,14 +14,21 @@ struct SettingsIconLabel: View { let systemImage: String let color: Color + // A fixed-point icon frame stops scaling once the row's text grows with + // Dynamic Type, which the accessibility audit flags as "Dynamic Type + // font sizes are partially unsupported". @ScaledMetric ties the icon + // frame to the same text-size setting so it grows with the row. + @ScaledMetric(relativeTo: .body) private var iconDimension: CGFloat = 29 + @ScaledMetric(relativeTo: .body) private var symbolSize: CGFloat = 14 + var body: some View { Label { Text(title) } icon: { Image(systemName: systemImage) - .font(.system(size: 14, weight: .semibold)) + .font(.system(size: symbolSize, weight: .semibold)) .foregroundStyle(.white) - .frame(width: 29, height: 29) + .frame(width: iconDimension, height: iconDimension) .background(color.gradient, in: RoundedRectangle(cornerRadius: 6.5, style: .continuous)) } } diff --git a/SunHat/Views/Reminders/AllRemindersView.swift b/SunHat/Views/Reminders/AllRemindersView.swift index f80804b..16066fb 100644 --- a/SunHat/Views/Reminders/AllRemindersView.swift +++ b/SunHat/Views/Reminders/AllRemindersView.swift @@ -275,7 +275,7 @@ struct AllRemindersView: View { .padding(.horizontal, 20) .padding(.vertical, 10) } - .buttonStyle(.glass) + .buttonStyle(.glassProminent) .padding(.bottom, 20) } .sunHatSurface(tint: .accentColor, cornerRadius: 24, prominence: 0.70) diff --git a/SunHat/Views/Weather/WeatherView.swift b/SunHat/Views/Weather/WeatherView.swift index 8b2143a..bfcd472 100644 --- a/SunHat/Views/Weather/WeatherView.swift +++ b/SunHat/Views/Weather/WeatherView.swift @@ -126,7 +126,7 @@ struct WeatherView: View { } label: { Text("Try Again", comment: "Retry button in the weather tab's unavailable state") } - .buttonStyle(.glass) + .buttonStyle(.glassProminent) } .padding(.top, 60) }