diff --git a/nirvana-ios/Globals/colors.swift b/nirvana-ios/Globals/colors.swift index 44c23fb..675f9e6 100644 --- a/nirvana-ios/Globals/colors.swift +++ b/nirvana-ios/Globals/colors.swift @@ -8,31 +8,30 @@ import Foundation import SwiftUI -extension UIColor { - public convenience init?(hex: String) { - let r, g, b, a: CGFloat - - if hex.hasPrefix("#") { - let start = hex.index(hex.startIndex, offsetBy: 1) - let hexColor = String(hex[start...]) - - if hexColor.count == 8 { - let scanner = Scanner(string: hexColor) - var hexNumber: UInt64 = 0 - - if scanner.scanHexInt64(&hexNumber) { - r = CGFloat((hexNumber & 0xff000000) >> 24) / 255 - g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255 - b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255 - a = CGFloat(hexNumber & 0x000000ff) / 255 - - self.init(red: r, green: g, blue: b, alpha: a) - return - } - } +extension Color { + init(hex: String) { + let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) + var int: UInt64 = 0 + Scanner(string: hex).scanHexInt64(&int) + let a, r, g, b: UInt64 + switch hex.count { + case 3: // RGB (12-bit) + (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) + case 6: // RGB (24-bit) + (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) + case 8: // ARGB (32-bit) + (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) + default: + (a, r, g, b) = (1, 1, 1, 0) } - return nil + self.init( + .sRGB, + red: Double(r) / 255, + green: Double(g) / 255, + blue: Double(b) / 255, + opacity: Double(a) / 255 + ) } } @@ -41,4 +40,11 @@ final class NirvanaColor { static let bgLightGrey:Color = Color(red: 0.898, green: 0.898, blue: 0.898) static let white: Color = Color.white static let black: Color = Color.black + + // turqouise and stones color palettes + static let light:Color = Color(hex: "2a416a") + static let orangy:Color = Color(hex: "305955") + static let solidTeal:Color = Color(hex: "258786") + static let dimTeal:Color = Color(hex: "ca7558") + static let solidBlue:Color = Color(hex: "9ec2b6") } diff --git a/nirvana-ios/Views/Templates/HeaderView.swift b/nirvana-ios/Views/Templates/HeaderView.swift index f98dd1a..9bb2cc9 100644 --- a/nirvana-ios/Views/Templates/HeaderView.swift +++ b/nirvana-ios/Views/Templates/HeaderView.swift @@ -26,12 +26,15 @@ struct HeaderView: View { .aspectRatio(contentMode: .fill) .frame(width: 40, height: 40) .clipShape(Circle()) - .padding() + .padding(5) .shadow(radius:5) } } - .background(Color(self.averageColor)) .frame(maxWidth: .infinity) +// .background(Color(self.averageColor)) // color based on user's profilepicture dominant color + .background(NirvanaColor.solidBlue) + .cornerRadius(100) + .padding(.horizontal) .onAppear{ // set background color based on profile picture tint if authStore.sessionState == SessionState.isAuthenticated {