You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
PadelClub/PadelClub/Extensions/Color+Extensions.swift

33 lines
1.0 KiB

//
// Color+Extensions.swift
// PadelClub
//
// Created by Razmig Sarkissian on 27/03/2024.
//
import SwiftUI
extension Color {
func variation(withHueOffset hueOffset: Double = 0, saturationFactor: Double = 0.4, brightnessFactor: Double = 0.8, opacity: Double = 0.5) -> Color {
var hue: CGFloat = 0
var saturation: CGFloat = 0
var brightness: CGFloat = 0
var alpha: CGFloat = 0
UIColor(self).getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha)
// Apply adjustments
hue += CGFloat(hueOffset)
saturation *= CGFloat(saturationFactor)
brightness *= CGFloat(brightnessFactor)
alpha *= CGFloat(opacity)
// Clamp values
hue = max(0, min(hue, 1))
saturation = max(0, min(saturation, 1))
brightness = max(0, min(brightness, 1))
alpha = max(0, min(alpha, 1))
return Color(hue: Double(hue), saturation: Double(saturation), brightness: Double(brightness), opacity: Double(alpha))
}
}