// Copyright (C) 2024 Rubén Beltrán del Río // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see https://map.tranquil.systems. import SwiftUI extension Font { static func libertinus(size: CGFloat) -> Font { return .custom("Libertinus Serif", size: size) } static func ronzino(size: CGFloat) -> Font { return .custom("Ronzino", size: size) } public struct Theme { struct Body { static let regular = Font.ronzino(size: Dimensions.FontSize.body).weight(.regular) static let emphasized = Font.ronzino(size: Dimensions.FontSize.body).weight(.medium) } struct Caption { static let emphasized = Font.ronzino(size: Dimensions.FontSize.caption).weight(.medium) } struct SmallControl { static let regular = Font.ronzino(size: Dimensions.FontSize.smallControl).weight(.regular) } struct Map { static var note: Font { if UserDefaults.standard.bool(forKey: "useCustomFont"), let customFontName = UserDefaults.standard.string(forKey: "customFontName"), !customFontName.isEmpty { return Font.custom(customFontName, size: Dimensions.FontSize.Map.note).weight(.regular) } return Font.libertinus(size: Dimensions.FontSize.Map.note).weight(.regular) } static var axisLabel: Font { if UserDefaults.standard.bool(forKey: "useCustomFont"), let customFontName = UserDefaults.standard.string(forKey: "customFontName"), !customFontName.isEmpty { return Font.custom(customFontName, size: Dimensions.FontSize.Map.axisLabel).weight( .regular) } return Font.libertinus(size: Dimensions.FontSize.Map.axisLabel).weight(.regular) } static var vertexLabel: Font { if UserDefaults.standard.bool(forKey: "useCustomFont"), let customFontName = UserDefaults.standard.string(forKey: "customFontName"), !customFontName.isEmpty { return Font.custom(customFontName, size: Dimensions.FontSize.Map.vertexLabel).weight( .regular) } return Font.libertinus(size: Dimensions.FontSize.Map.vertexLabel).weight(.regular) } } } }