| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import Cocoa
- enum AppTheme {
- static let windowWidth: CGFloat = 680
- static let windowHeight: CGFloat = 720
- static let windowMinWidth: CGFloat = 600
- static let windowMinHeight: CGFloat = windowHeight
- static let sidebarWidth: CGFloat = 200
- static let contentPadding: CGFloat = 20
- static let quickStartSpacing: CGFloat = 12
- static let featureGridSpacing: CGFloat = 10
- static let quickStartIconMax: CGFloat = 80
- static let quickStartIconMin: CGFloat = 56
- static let featureIconMax: CGFloat = 48
- static let featureIconMin: CGFloat = 36
- static func quickStartIconSize(forCardWidth width: CGFloat) -> CGFloat {
- min(quickStartIconMax, max(quickStartIconMin, width * 0.58))
- }
- static func featureIconSize(forCardWidth width: CGFloat) -> CGFloat {
- min(featureIconMax, max(featureIconMin, width * 0.24))
- }
- static let cornerRadius: CGFloat = 14
- static let cardCornerRadius: CGFloat = 20
- static let featureCardCornerRadius: CGFloat = 16
- static let background = NSColor(calibratedWhite: 0.965, alpha: 1)
- static let sidebarBackground = NSColor.white
- static let cardBackground = NSColor.white
- static let textPrimary = NSColor(calibratedWhite: 0.12, alpha: 1)
- static let textSecondary = NSColor(calibratedWhite: 0.48, alpha: 1)
- static let homeActiveBackground = NSColor(red: 0.91, green: 0.94, blue: 1.0, alpha: 1)
- static let homeActiveForeground = NSColor(red: 0.22, green: 0.47, blue: 0.96, alpha: 1)
- static let premiumBackground = NSColor(red: 0.95, green: 0.93, blue: 1.0, alpha: 1)
- static let premiumForeground = NSColor(red: 0.55, green: 0.36, blue: 0.96, alpha: 1)
- static let blue = NSColor(red: 0.22, green: 0.47, blue: 0.96, alpha: 1)
- static let blueLight = NSColor(red: 0.88, green: 0.93, blue: 1.0, alpha: 1)
- static let green = NSColor(red: 0.13, green: 0.68, blue: 0.42, alpha: 1)
- static let greenLight = NSColor(red: 0.88, green: 0.97, blue: 0.91, alpha: 1)
- static let orange = NSColor(red: 0.96, green: 0.52, blue: 0.18, alpha: 1)
- static let orangeLight = NSColor(red: 1.0, green: 0.94, blue: 0.88, alpha: 1)
- static let purple = NSColor(red: 0.55, green: 0.36, blue: 0.96, alpha: 1)
- static let teal = NSColor(red: 0.18, green: 0.72, blue: 0.82, alpha: 1)
- static let navy = NSColor(red: 0.12, green: 0.18, blue: 0.32, alpha: 1)
- static let paywallPink = NSColor(red: 0.98, green: 0.85, blue: 0.90, alpha: 1)
- static let paywallPinkText = NSColor(red: 0.75, green: 0.30, blue: 0.45, alpha: 1)
- static let paywallGold = NSColor(red: 0.96, green: 0.90, blue: 0.78, alpha: 1)
- static let paywallGoldText = NSColor(red: 0.65, green: 0.48, blue: 0.22, alpha: 1)
- static let paywallBorder = NSColor(calibratedWhite: 0.88, alpha: 1)
- static func semiboldFont(size: CGFloat) -> NSFont {
- .systemFont(ofSize: size, weight: .semibold)
- }
- static func mediumFont(size: CGFloat) -> NSFont {
- .systemFont(ofSize: size, weight: .medium)
- }
- static func regularFont(size: CGFloat) -> NSFont {
- .systemFont(ofSize: size, weight: .regular)
- }
- }
- extension NSView {
- func applyCardShadow() {
- wantsLayer = true
- layer?.shadowColor = NSColor.black.cgColor
- layer?.shadowOpacity = 0.07
- layer?.shadowOffset = NSSize(width: 0, height: -3)
- layer?.shadowRadius = 14
- layer?.masksToBounds = false
- }
- func roundCorners(_ radius: CGFloat) {
- wantsLayer = true
- layer?.cornerRadius = radius
- layer?.masksToBounds = true
- }
- }
|