78 lines
2.3 KiB
Swift
78 lines
2.3 KiB
Swift
//
|
|
// UIConstants.swift
|
|
// TheNoiseClock
|
|
//
|
|
// Created by Matt Bruce on 9/7/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
/// UI-specific constants for colors, sizes, and styling
|
|
enum UIConstants {
|
|
|
|
// MARK: - Colors
|
|
enum Colors {
|
|
static let accentColor = Color.blue
|
|
static let primaryText = Color.white
|
|
static let secondaryText = Color.gray
|
|
static let background = Color.black
|
|
static let overlayBackground = Color.black.opacity(0.25)
|
|
static let overlayBorder = Color.white.opacity(0.05)
|
|
}
|
|
|
|
// MARK: - Font Sizes
|
|
enum FontSizes {
|
|
static let largeTitle: CGFloat = 34
|
|
static let title: CGFloat = 28
|
|
static let title2: CGFloat = 22
|
|
static let title3: CGFloat = 20
|
|
static let headline: CGFloat = 17
|
|
static let body: CGFloat = 17
|
|
static let callout: CGFloat = 16
|
|
static let subheadline: CGFloat = 15
|
|
static let footnote: CGFloat = 13
|
|
static let caption: CGFloat = 12
|
|
static let caption2: CGFloat = 11
|
|
}
|
|
|
|
// MARK: - Spacing
|
|
enum Spacing {
|
|
static let extraSmall: CGFloat = 4
|
|
static let small: CGFloat = 8
|
|
static let medium: CGFloat = 12
|
|
static let large: CGFloat = 16
|
|
static let extraLarge: CGFloat = 20
|
|
static let huge: CGFloat = 24
|
|
}
|
|
|
|
// MARK: - Corner Radius
|
|
enum CornerRadius {
|
|
static let small: CGFloat = 8
|
|
static let medium: CGFloat = 12
|
|
static let large: CGFloat = 16
|
|
static let extraLarge: CGFloat = 20
|
|
}
|
|
|
|
// MARK: - Border Width
|
|
enum BorderWidth {
|
|
static let thin: CGFloat = 0.5
|
|
static let normal: CGFloat = 1
|
|
static let thick: CGFloat = 2
|
|
}
|
|
|
|
// MARK: - Opacity
|
|
enum Opacity {
|
|
static let disabled: Double = 0.3
|
|
static let secondary: Double = 0.6
|
|
static let primary: Double = 0.8
|
|
static let full: Double = 1.0
|
|
}
|
|
|
|
// MARK: - Animation Curves
|
|
enum AnimationCurves {
|
|
static let smooth = Animation.smooth(duration: AppConstants.AnimationDurations.medium)
|
|
static let bouncy = Animation.bouncy(duration: AppConstants.AnimationDurations.bouncy)
|
|
static let quick = Animation.easeInOut(duration: AppConstants.AnimationDurations.short)
|
|
}
|
|
}
|