diff --git a/TheNoiseClock/Core/Utilities/FontFamily.swift b/TheNoiseClock/Core/Utilities/FontFamily.swift index 34d84c1..69e6e33 100644 --- a/TheNoiseClock/Core/Utilities/FontFamily.swift +++ b/TheNoiseClock/Core/Utilities/FontFamily.swift @@ -35,6 +35,15 @@ enum FontFamily: String, CaseIterable { } } + var percentageDownsize: CGFloat { + switch self { + case .system: + return 0.99 + case .georgia: + return 0.90 + default: return 1 + } + } var fontWeights: [Font.Weight] { guard let weightDict = Self.fontMapWeights[self.rawValue] else { return [] diff --git a/TheNoiseClock/Core/Utilities/FontUtils.swift b/TheNoiseClock/Core/Utilities/FontUtils.swift index 51f727c..bda749a 100644 --- a/TheNoiseClock/Core/Utilities/FontUtils.swift +++ b/TheNoiseClock/Core/Utilities/FontUtils.swift @@ -39,7 +39,7 @@ struct FontUtils { } } - return low + return low * fontName.percentageDownsize } static func createFont( diff --git a/TheNoiseClock/Views/Clock/Components/DigitView.swift b/TheNoiseClock/Views/Clock/Components/DigitView.swift index 62afa5c..af67864 100644 --- a/TheNoiseClock/Views/Clock/Components/DigitView.swift +++ b/TheNoiseClock/Views/Clock/Components/DigitView.swift @@ -127,12 +127,9 @@ struct DigitView: View { for: size) // Only update if the size is significantly different to prevent micro-adjustments - if abs(optimalSize - fontSize) > 0.1 { - fontSize = optimalSize - } - + fontSize = optimalSize lastCalculatedSize = size - + // Reset calculation flag after a brief delay to allow for frame completion DispatchQueue.main.asyncAfter(deadline: .now() + 0.016) { // ~60fps isCalculating = false