83 lines
2.2 KiB
Swift
83 lines
2.2 KiB
Swift
import SwiftUI
|
|
|
|
/// Design constants for the App Clip.
|
|
/// Mirrors the main app's centralized constant patterns.
|
|
enum ClipDesign {
|
|
|
|
// MARK: - Spacing
|
|
|
|
enum Spacing {
|
|
static let xSmall: CGFloat = 4
|
|
static let small: CGFloat = 8
|
|
static let medium: CGFloat = 12
|
|
static let large: CGFloat = 16
|
|
static let xLarge: CGFloat = 24
|
|
static let xxLarge: CGFloat = 32
|
|
}
|
|
|
|
// MARK: - Corner Radius
|
|
|
|
enum CornerRadius {
|
|
static let small: CGFloat = 8
|
|
static let medium: CGFloat = 12
|
|
static let large: CGFloat = 16
|
|
static let xLarge: CGFloat = 24
|
|
}
|
|
|
|
// MARK: - Sizes
|
|
|
|
enum Size {
|
|
static let avatar: CGFloat = 80
|
|
static let avatarLarge: CGFloat = 112
|
|
static let buttonHeight: CGFloat = 50
|
|
static let previewBannerHeight: CGFloat = 132
|
|
static let previewAvatarSize: CGFloat = 96
|
|
static let previewAvatarOverlap: CGFloat = 48
|
|
static let previewMaxWidth: CGFloat = 460
|
|
static let previewCardMinHeight: CGFloat = 320
|
|
static let avatarFallbackSymbolSize: CGFloat = 42
|
|
static let avatarStrokeWidth: CGFloat = 4
|
|
static let cardStrokeWidth: CGFloat = 1
|
|
static let contactRowIconSize: CGFloat = 14
|
|
}
|
|
|
|
// MARK: - Opacity
|
|
|
|
enum Opacity {
|
|
static let subtle: Double = 0.3
|
|
static let medium: Double = 0.5
|
|
static let strong: Double = 0.7
|
|
static let faint: Double = 0.12
|
|
}
|
|
|
|
// MARK: - Shadow
|
|
|
|
enum Shadow {
|
|
static let radius: CGFloat = 14
|
|
static let y: CGFloat = 8
|
|
}
|
|
|
|
// MARK: - URLs
|
|
|
|
enum URL {
|
|
static let appStore = "https://apps.apple.com/app/id1234567890"
|
|
static let contactsScheme = "contacts://"
|
|
static let recordQueryName = "id"
|
|
}
|
|
}
|
|
|
|
// MARK: - Colors
|
|
|
|
extension Color {
|
|
|
|
enum Clip {
|
|
static let background = Color("ClipBackground")
|
|
static let cardBackground = Color("ClipSurface")
|
|
static let text = Color("ClipTextPrimary")
|
|
static let secondaryText = Color("ClipTextSecondary")
|
|
static let accent = Color("ClipAccent")
|
|
static let success = Color("ClipSuccess")
|
|
static let error = Color("ClipError")
|
|
}
|
|
}
|