mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-09-25 05:00:00 +00:00
153 lines
5.1 KiB
Swift
153 lines
5.1 KiB
Swift
import SwiftUI
|
|
|
|
public let availableColorsSets: [ColorSetCouple] =
|
|
[.init(light: IceCubeLight(), dark: IceCubeDark()),
|
|
.init(light: IceCubeNeonLight(), dark: IceCubeNeonDark()),
|
|
.init(light: DesertLight(), dark: DesertDark()),
|
|
.init(light: NemesisLight(), dark: NemesisDark()),
|
|
.init(light: MediumLight(), dark: MediumDark())]
|
|
|
|
public protocol ColorSet {
|
|
var name: ColorSetName { get }
|
|
var scheme: ColorScheme { get }
|
|
var tintColor: Color { get set }
|
|
var primaryBackgroundColor: Color { get set }
|
|
var secondaryBackgroundColor: Color { get set }
|
|
var labelColor: Color { get set }
|
|
}
|
|
|
|
public enum ColorScheme: String {
|
|
case dark, light
|
|
}
|
|
|
|
public enum ColorSetName: String {
|
|
case iceCubeDark = "Ice Cube - Dark"
|
|
case iceCubeLight = "Ice Cube - Light"
|
|
case iceCubeNeonDark = "Ice Cube Neon - Dark"
|
|
case iceCubeNeonLight = "Ice Cube Neon - Light"
|
|
case desertDark = "Desert - Dark"
|
|
case desertLight = "Desert - Light"
|
|
case nemesisDark = "Nemesis - Dark"
|
|
case nemesisLight = "Nemesis - Light"
|
|
case mediumLight = "Medium - Light"
|
|
case mediumDark = "Medium - Dark"
|
|
}
|
|
|
|
public struct ColorSetCouple: Identifiable {
|
|
public var id: String {
|
|
dark.name.rawValue + light.name.rawValue
|
|
}
|
|
|
|
public let light: ColorSet
|
|
public let dark: ColorSet
|
|
}
|
|
|
|
public struct IceCubeDark: ColorSet {
|
|
public var name: ColorSetName = .iceCubeDark
|
|
public var scheme: ColorScheme = .dark
|
|
public var tintColor: Color = .init(red: 187 / 255, green: 59 / 255, blue: 226 / 255)
|
|
public var primaryBackgroundColor: Color = .init(red: 16 / 255, green: 21 / 255, blue: 35 / 255)
|
|
public var secondaryBackgroundColor: Color = .init(red: 30 / 255, green: 35 / 255, blue: 62 / 255)
|
|
public var labelColor: Color = .white
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct IceCubeLight: ColorSet {
|
|
public var name: ColorSetName = .iceCubeLight
|
|
public var scheme: ColorScheme = .light
|
|
public var tintColor: Color = .init(red: 187 / 255, green: 59 / 255, blue: 226 / 255)
|
|
public var primaryBackgroundColor: Color = .white
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0xF0F1F2)
|
|
public var labelColor: Color = .black
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct IceCubeNeonDark: ColorSet {
|
|
public var name: ColorSetName = .iceCubeNeonDark
|
|
public var scheme: ColorScheme = .dark
|
|
public var tintColor: Color = .init(red: 213 / 255, green: 46 / 255, blue: 245 / 255)
|
|
public var primaryBackgroundColor: Color = .black
|
|
public var secondaryBackgroundColor: Color = .init(red: 0 / 255, green: 0 / 255, blue: 21 / 255)
|
|
public var labelColor: Color = .white
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct IceCubeNeonLight: ColorSet {
|
|
public var name: ColorSetName = .iceCubeNeonLight
|
|
public var scheme: ColorScheme = .light
|
|
public var tintColor: Color = .init(red: 213 / 255, green: 46 / 255, blue: 245 / 255)
|
|
public var primaryBackgroundColor: Color = .white
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0xF0F1F2)
|
|
public var labelColor: Color = .black
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct DesertDark: ColorSet {
|
|
public var name: ColorSetName = .desertDark
|
|
public var scheme: ColorScheme = .dark
|
|
public var tintColor: Color = .init(hex: 0xDF915E)
|
|
public var primaryBackgroundColor: Color = .init(hex: 0x433744)
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0x654868)
|
|
public var labelColor: Color = .white
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct DesertLight: ColorSet {
|
|
public var name: ColorSetName = .desertLight
|
|
public var scheme: ColorScheme = .light
|
|
public var tintColor: Color = .init(hex: 0xDF915E)
|
|
public var primaryBackgroundColor: Color = .init(hex: 0xFCF2EB)
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0xEEEDE7)
|
|
public var labelColor: Color = .black
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct NemesisDark: ColorSet {
|
|
public var name: ColorSetName = .nemesisDark
|
|
public var scheme: ColorScheme = .dark
|
|
public var tintColor: Color = .init(hex: 0x17A2F2)
|
|
public var primaryBackgroundColor: Color = .init(hex: 0x000000)
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0x151E2B)
|
|
public var labelColor: Color = .white
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct NemesisLight: ColorSet {
|
|
public var name: ColorSetName = .nemesisLight
|
|
public var scheme: ColorScheme = .light
|
|
public var tintColor: Color = .init(hex: 0x17A2F2)
|
|
public var primaryBackgroundColor: Color = .init(hex: 0xFFFFFF)
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0xE8ECEF)
|
|
public var labelColor: Color = .black
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct MediumDark: ColorSet {
|
|
public var name: ColorSetName = .mediumDark
|
|
public var scheme: ColorScheme = .dark
|
|
public var tintColor: Color = .init(hex: 0x1A8917)
|
|
public var primaryBackgroundColor: Color = .init(hex: 0x121212)
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0x191919)
|
|
public var labelColor: Color = .white
|
|
|
|
public init() {}
|
|
}
|
|
|
|
public struct MediumLight: ColorSet {
|
|
public var name: ColorSetName = .mediumLight
|
|
public var scheme: ColorScheme = .light
|
|
public var tintColor: Color = .init(hex: 0x1A8917)
|
|
public var primaryBackgroundColor: Color = .init(hex: 0xFFFFFF)
|
|
public var secondaryBackgroundColor: Color = .init(hex: 0xFAFAFA)
|
|
public var labelColor: Color = .black
|
|
|
|
public init() {}
|
|
}
|