BusinessCard/BusinessCardClip/Design/ClipDesignConstants.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")
}
}