add code to create darker custom colors

This commit is contained in:
Trey t
2022-03-02 16:28:45 -06:00
parent 2590a77bff
commit 39a974bdf4
2 changed files with 43 additions and 5 deletions

View File

@@ -123,15 +123,15 @@ final class CustomMoodTint: MoodTintable {
static func secondary(forMood mood: Mood) -> Color {
switch mood {
case .horrible:
return UserDefaultsStore.getCustomMoodTint().colorFive
return UserDefaultsStore.getCustomMoodTint().colorFive.darker(by: 40)
case .bad:
return UserDefaultsStore.getCustomMoodTint().colorFour
return UserDefaultsStore.getCustomMoodTint().colorFour.darker(by: 40)
case .average:
return UserDefaultsStore.getCustomMoodTint().colorThree
return UserDefaultsStore.getCustomMoodTint().colorThree.darker(by: 40)
case .good:
return UserDefaultsStore.getCustomMoodTint().colorTwo
return UserDefaultsStore.getCustomMoodTint().colorTwo.darker(by: 40)
case .great:
return UserDefaultsStore.getCustomMoodTint().colorOne
return UserDefaultsStore.getCustomMoodTint().colorOne.darker(by: 40)
case .missing:
return Color(uiColor: UIColor.lightGray)
case .placeholder:

View File

@@ -132,6 +132,9 @@ extension Color {
blue: .random(in: 0...1)
)
}
public func lighter(by amount: CGFloat = 0.2) -> Self { Self(UIColor(self).lighter(by: amount)) }
public func darker(by amount: CGFloat = 0.2) -> Self { Self(UIColor(self).darker(by: amount)) }
}
extension String {
@@ -151,3 +154,38 @@ extension String {
return image ?? UIImage()
}
}
extension UIColor {
func lighter(by percentage: CGFloat = 10.0) -> UIColor {
return self.adjust(by: abs(percentage))
}
func darker(by percentage: CGFloat = 10.0) -> UIColor {
return self.adjust(by: -abs(percentage))
}
func adjust(by percentage: CGFloat) -> UIColor {
var alpha, hue, saturation, brightness, red, green, blue, white : CGFloat
(alpha, hue, saturation, brightness, red, green, blue, white) = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
let multiplier = percentage / 100.0
if self.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha) {
let newBrightness: CGFloat = max(min(brightness + multiplier*brightness, 1.0), 0.0)
return UIColor(hue: hue, saturation: saturation, brightness: newBrightness, alpha: alpha)
}
else if self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) {
let newRed: CGFloat = min(max(red + multiplier*red, 0.0), 1.0)
let newGreen: CGFloat = min(max(green + multiplier*green, 0.0), 1.0)
let newBlue: CGFloat = min(max(blue + multiplier*blue, 0.0), 1.0)
return UIColor(red: newRed, green: newGreen, blue: newBlue, alpha: alpha)
}
else if self.getWhite(&white, alpha: &alpha) {
let newWhite: CGFloat = (white + multiplier*white)
return UIColor(white: newWhite, alpha: alpha)
}
return self
}
}