68 lines
2.2 KiB
Swift
68 lines
2.2 KiB
Swift
//
|
||
// AppMetrics.swift
|
||
// suixinkan
|
||
//
|
||
// Created by Codex on 2026/6/20.
|
||
//
|
||
|
||
import CoreGraphics
|
||
|
||
/// App 内通用尺寸定义。这里只放跨页面复用的字号和间距,具体业务页面的特殊尺寸仍留在页面本地。
|
||
final class AppMetrics {
|
||
private init() {}
|
||
|
||
/// 字体尺寸实体,统一维护 App 内常用字号。
|
||
enum FontSize {
|
||
static let caption: CGFloat = 12
|
||
static let footnote: CGFloat = 13
|
||
static let subheadline: CGFloat = 14
|
||
static let body: CGFloat = 16
|
||
static let callout: CGFloat = 17
|
||
static let title3: CGFloat = 18
|
||
static let title2: CGFloat = 20
|
||
static let title: CGFloat = 24
|
||
static let largeTitle: CGFloat = 30
|
||
}
|
||
|
||
/// 间距实体,统一维护页面边距和组件间距。
|
||
enum Spacing {
|
||
static let xxxSmall: CGFloat = 2
|
||
static let xxSmall: CGFloat = 4
|
||
static let xSmall: CGFloat = 8
|
||
static let small: CGFloat = 12
|
||
static let medium: CGFloat = 16
|
||
static let mediumLarge: CGFloat = 18
|
||
static let large: CGFloat = 20
|
||
static let sheet: CGFloat = 22
|
||
static let xLarge: CGFloat = 24
|
||
static let xxLarge: CGFloat = 30
|
||
static let pageHorizontal: CGFloat = 16
|
||
static let pageVertical: CGFloat = 24
|
||
}
|
||
|
||
/// 控件尺寸实体,统一维护按钮、输入框和图标点击区尺寸。
|
||
enum ControlSize {
|
||
static let smallIcon: CGFloat = 16
|
||
static let checkboxIcon: CGFloat = 20
|
||
static let passwordIcon: CGFloat = 22
|
||
static let progressWidth: CGFloat = 22
|
||
static let checkboxTapArea: CGFloat = 28
|
||
static let iconTapArea: CGFloat = 32
|
||
static let sheetButtonHeight: CGFloat = 48
|
||
static let primaryButtonHeight: CGFloat = 50
|
||
static let inputHeight: CGFloat = 52
|
||
}
|
||
|
||
/// 行距实体,统一维护多行文本的常用行间距。
|
||
enum LineSpacing {
|
||
static let title: CGFloat = 3
|
||
}
|
||
|
||
/// 圆角尺寸实体,统一维护输入框、按钮和卡片圆角。
|
||
enum CornerRadius {
|
||
static let input: CGFloat = 12
|
||
static let button: CGFloat = 12
|
||
static let card: CGFloat = 16
|
||
}
|
||
}
|