IceCubesApp/Packages/DesignSystem/Sources/DesignSystem/Resources/Colors.swift

52 lines
1.4 KiB
Swift
Raw Normal View History

2022-12-20 15:08:09 +00:00
import SwiftUI
2023-01-17 10:36:01 +00:00
public extension Color {
static var brand: Color {
Color(red: 187 / 255, green: 59 / 255, blue: 226 / 255)
2022-12-20 15:08:09 +00:00
}
2023-01-17 10:36:01 +00:00
static var primaryBackground: Color {
Color(red: 16 / 255, green: 21 / 255, blue: 35 / 255)
2022-12-24 13:55:04 +00:00
}
2023-01-17 10:36:01 +00:00
static var secondaryBackground: Color {
Color(red: 30 / 255, green: 35 / 255, blue: 62 / 255)
2022-12-24 13:55:04 +00:00
}
2023-01-17 10:36:01 +00:00
static var label: Color {
2022-12-24 13:55:04 +00:00
Color("label", bundle: .module)
}
}
extension Color: RawRepresentable {
public init?(rawValue: Int) {
2023-01-17 10:36:01 +00:00
let red = Double((rawValue & 0xFF0000) >> 16) / 0xFF
2022-12-24 13:55:04 +00:00
let green = Double((rawValue & 0x00FF00) >> 8) / 0xFF
2023-01-17 10:36:01 +00:00
let blue = Double(rawValue & 0x0000FF) / 0xFF
2022-12-24 13:55:04 +00:00
self = Color(red: red, green: green, blue: blue)
}
public var rawValue: Int {
guard let coreImageColor = coreImageColor else {
return 0
}
let red = Int(coreImageColor.red * 255 + 0.5)
let green = Int(coreImageColor.green * 255 + 0.5)
let blue = Int(coreImageColor.blue * 255 + 0.5)
return (red << 16) | (green << 8) | blue
}
private var coreImageColor: CIColor? {
return CIColor(color: .init(self))
}
2022-12-20 15:08:09 +00:00
}
extension Color {
2023-01-17 10:36:01 +00:00
init(hex: Int, opacity: Double = 1.0) {
let red = Double((hex & 0xFF0000) >> 16) / 255.0
let green = Double((hex & 0xFF00) >> 8) / 255.0
let blue = Double((hex & 0xFF) >> 0) / 255.0
self.init(.sRGB, red: red, green: green, blue: blue, opacity: opacity)
}
}