// // DesignConstants.swift // Blackjack // // Centralized design constants for the Blackjack app. // import SwiftUI import CasinoKit // MARK: - Design Namespace enum Design { // Reuse CasinoDesign where appropriate typealias Animation = CasinoDesign.Animation typealias Scale = CasinoDesign.Scale typealias MinScaleFactor = CasinoDesign.MinScaleFactor // MARK: - Spacing enum Spacing { static let xxSmall: CGFloat = 2 static let xSmall: CGFloat = 4 static let small: CGFloat = 8 static let medium: CGFloat = 12 static let large: CGFloat = 16 static let xLarge: CGFloat = 20 static let xxLarge: CGFloat = 24 static let xxxLarge: CGFloat = 32 } // MARK: - Corner Radius enum CornerRadius { static let xSmall: CGFloat = 4 static let small: CGFloat = 8 static let medium: CGFloat = 12 static let large: CGFloat = 16 static let xLarge: CGFloat = 20 static let xxLarge: CGFloat = 24 static let xxxLarge: CGFloat = 32 } // MARK: - Base Font Sizes enum BaseFontSize { static let xxSmall: CGFloat = 8 static let xSmall: CGFloat = 10 static let small: CGFloat = 12 static let body: CGFloat = 14 static let medium: CGFloat = 16 static let large: CGFloat = 18 static let xLarge: CGFloat = 20 static let xxLarge: CGFloat = 24 static let title: CGFloat = 28 static let largeTitle: CGFloat = 32 static let display: CGFloat = 48 } // MARK: - Opacity enum Opacity { static let verySubtle: Double = 0.05 static let subtle: Double = 0.1 static let hint: Double = 0.2 static let light: Double = 0.3 static let medium: Double = 0.5 static let accent: Double = 0.6 static let strong: Double = 0.7 static let heavy: Double = 0.8 static let almostFull: Double = 0.9 } // MARK: - Line Width enum LineWidth { static let thin: CGFloat = 1 static let medium: CGFloat = 2 static let thick: CGFloat = 3 static let heavy: CGFloat = 4 } // MARK: - Shadow enum Shadow { static let radiusSmall: CGFloat = 2 static let radiusMedium: CGFloat = 6 static let radiusLarge: CGFloat = 10 static let radiusXLarge: CGFloat = 15 static let offsetSmall: CGFloat = 1 static let offsetMedium: CGFloat = 3 static let offsetLarge: CGFloat = 5 } // MARK: - Sizes enum Size { // Cards static let cardWidth: CGFloat = 55 static let cardWidthSmall: CGFloat = 45 static let cardOverlap: CGFloat = -15 // Table static let tableHeight: CGFloat = 280 static let bettingZoneHeight: CGFloat = 80 static let chipBadgeSize: CGFloat = 32 // Buttons static let actionButtonHeight: CGFloat = 50 static let actionButtonMinWidth: CGFloat = 80 // Responsive static let maxContentWidthPortrait: CGFloat = 500 static let maxContentWidthLandscape: CGFloat = 800 static let maxModalWidth: CGFloat = 450 } // MARK: - Icon Sizes enum IconSize { static let small: CGFloat = 16 static let medium: CGFloat = 20 static let large: CGFloat = 24 static let xLarge: CGFloat = 32 } } // MARK: - Color Extensions extension Color { // MARK: - Table Colors enum Table { static let felt = Color(red: 0.05, green: 0.35, blue: 0.15) static let feltDark = Color(red: 0.03, green: 0.25, blue: 0.1) static let feltLight = Color(red: 0.08, green: 0.45, blue: 0.2) static let border = Color(red: 0.6, green: 0.5, blue: 0.3) } // MARK: - Betting Zone Colors enum BettingZone { static let main = Color(red: 0.2, green: 0.4, blue: 0.3) static let mainBorder = Color(red: 0.4, green: 0.6, blue: 0.4) static let insurance = Color(red: 0.5, green: 0.4, blue: 0.2) static let insuranceBorder = Color(red: 0.7, green: 0.6, blue: 0.3) } // MARK: - Hand Colors enum Hand { static let player = Color(red: 0.2, green: 0.5, blue: 0.8) static let dealer = Color(red: 0.8, green: 0.3, blue: 0.3) static let active = Color.yellow static let inactive = Color.white.opacity(0.5) } // MARK: - Result Colors enum Result { static let win = Color.green static let lose = Color.red static let push = Color.blue static let blackjack = Color.yellow } // MARK: - Button Colors enum Button { static let hit = Color(red: 0.2, green: 0.6, blue: 0.3) static let stand = Color(red: 0.6, green: 0.4, blue: 0.1) static let doubleDown = Color(red: 0.5, green: 0.3, blue: 0.6) static let split = Color(red: 0.3, green: 0.5, blue: 0.7) static let surrender = Color(red: 0.6, green: 0.3, blue: 0.3) static let insurance = Color(red: 0.7, green: 0.6, blue: 0.2) static let goldLight = Color(red: 1.0, green: 0.85, blue: 0.3) static let goldDark = Color(red: 0.9, green: 0.7, blue: 0.2) } // MARK: - Settings Colors enum Settings { static let background = Color(red: 0.08, green: 0.12, blue: 0.18) static let cardBackground = Color.white.opacity(Design.Opacity.verySubtle) static let accent = Color(red: 0.9, green: 0.75, blue: 0.3) } // MARK: - Modal Colors enum Modal { static let backgroundLight = Color(red: 0.15, green: 0.2, blue: 0.3) static let backgroundDark = Color(red: 0.1, green: 0.15, blue: 0.25) } // MARK: - TopBar Colors enum TopBar { static let balance = Color(red: 0.95, green: 0.85, blue: 0.4) } }