// 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 Foundation struct Dimensions { // MARK: - Fonts struct FontSize { static let body: CGFloat = 13 static let title: CGFloat = 32 static let caption: CGFloat = 11 static let smallControl: CGFloat = 11 static var editor: CGFloat { let fontSize = UserDefaults.standard.double(forKey: "editorFontSize") return fontSize > 0 ? CGFloat(fontSize) : 14 } struct Map { static let note: CGFloat = 12 static let axisLabel: CGFloat = 14 static let vertexLabel: CGFloat = 12 } } struct LineHeight { static let body: CGFloat = 18 static let title: CGFloat = 38 static let caption: CGFloat = 18 static let smallControl: CGFloat = 18 static var editor: CGFloat { let fontSize = UserDefaults.standard.double(forKey: "editorFontSize") let actualSize = fontSize > 0 ? fontSize : 14 return actualSize >= 16 ? 38 : 18 } struct Map { static let note: CGFloat = 18 static let axisLabel: CGFloat = 18 static let vertexLabel: CGFloat = 18 } } struct Kerning { static let body: CGFloat = 0.4 } // MARK: - Spacing struct Spacing { static let coziest: CGFloat = 3.0 static let cozy: CGFloat = 5.0 static let regular: CGFloat = 8.0 static let loose: CGFloat = 12.0 static let indulgent: CGFloat = 16.0 } // MARK: - The Map struct Map { static let size = CGSize(width: 1300.0, height: 1000.0) static let padding: CGFloat = 42.0 } // MARK: - Assorted Controls struct EvolutionPicker { static let radius = 8.0 static let controlSize = 8.0 static let controlSpacing = 3.0 } struct Preferences { struct Window { static let width: CGFloat = 600.0 static let height: CGFloat = 400.0 } struct Toolbar { static let radius: CGFloat = 8.0 static let size: CGFloat = 16.0 static let width: CGFloat = 60.0 static let height: CGFloat = 40.0 } struct Sidebar { static let radius: CGFloat = 8.0 static let width: CGFloat = 200.0 } } }