@@ -3,76 +3,58 @@ import SwiftUI
3
3
public extension Color {
4
4
5
5
struct Neumorphic {
6
-
7
- //Color
8
- private static let defaultMainColor = Color ( red: 0.925 , green: 0.941 , blue: 0.953 , opacity: 1.000 )
9
- private static let defaultSecondaryColor = Color ( red: 0.482 , green: 0.502 , blue: 0.549 , opacity: 1.000 )
10
- private static let defaultLightShadowSolidColor = Color ( red: 1.000 , green: 1.000 , blue: 1.000 , opacity: 1.000 )
11
- private static let defaultDarkShadowSolidColor = Color ( red: 0.820 , green: 0.851 , blue: 0.902 , opacity: 1.000 )
12
- private static let defaultLightShadowColor = Color ( red: 1.000 , green: 1.000 , blue: 1.000 , opacity: 0.500 )
13
- private static let defaultDarkShadowColor = Color ( red: 0.66 , green: 0.72 , blue: 0.84 , opacity: 0.55 )
14
-
15
- private static let darkThemeMainColor = Color ( red: 0.188 , green: 0.192 , blue: 0.208 , opacity: 1.000 )
16
- private static let darkThemeSecondaryColor = Color ( red: 0.910 , green: 0.910 , blue: 0.910 , opacity: 1.000 )
17
- private static let darkThemeLightShadowSolidColor = Color ( red: 0.243 , green: 0.247 , blue: 0.275 , opacity: 1.000 )
18
- private static let darkThemeDarkShadowSolidColor = Color ( red: 0.137 , green: 0.137 , blue: 0.137 , opacity: 1.000 )
19
- private static let darkThemeLightShadowColor = Color ( red: 1 , green: 1 , blue: 1 , opacity: 0.1 )
20
- private static let darkThemeDarkShadowColor = Color ( red: 0 , green: 0 , blue: 0 , opacity: 0.5 )
21
-
22
- //CGColor
23
- private static let defaultMainCGColor = CGColor ( red: 0.925 , green: 0.941 , blue: 0.953 , alpha: 1.000 )
24
- private static let defaultSecondaryCGColor = CGColor ( red: 0.482 , green: 0.502 , blue: 0.549 , alpha: 1.000 )
25
- private static let defaultLightShadowSolidCGColor = CGColor ( red: 1.000 , green: 1.000 , blue: 1.000 , alpha: 1.000 )
26
- private static let defaultDarkShadowSolidCGColor = CGColor ( red: 0.820 , green: 0.851 , blue: 0.902 , alpha: 1.000 )
27
- private static let defaultLightShadowCGColor = CGColor ( red: 1.000 , green: 1.000 , blue: 1.000 , alpha: 0.500 )
28
- private static let defaultDarkShadowCGColor = CGColor ( red: 0.66 , green: 0.72 , blue: 0.84 , alpha: 0.55 )
29
-
30
- private static let darkThemeMainCGColor = CGColor ( red: 0.188 , green: 0.192 , blue: 0.208 , alpha: 1.000 )
31
- private static let darkThemeSecondaryCGColor = CGColor ( red: 0.910 , green: 0.910 , blue: 0.910 , alpha: 1.000 )
32
- private static let darkThemeLightShadowSolidCGColor = CGColor ( red: 0.243 , green: 0.247 , blue: 0.275 , alpha: 1.000 )
33
- private static let darkThemeDarkShadowSolidCGColor = CGColor ( red: 0.137 , green: 0.137 , blue: 0.137 , alpha: 1.000 )
34
- private static let darkThemeLightShadowCGColor = CGColor ( red: 1 , green: 1 , blue: 1 , alpha: 0.1 )
35
- private static let darkThemeDarkShadowCGColor = CGColor ( red: 0 , green: 0 , blue: 0 , alpha: 0.5 )
36
-
37
6
#if os(macOS)
7
+ private typealias ColorType = Color
8
+ private static func colorType( red: Double , green: Double , blue: Double ) -> ColorType {
9
+ . init( red: red, green: green, blue: blue, opacity: 1.0 )
10
+ }
11
+
38
12
private static func isDarkMode( ) -> Bool {
39
13
if let window = NSApp . mainWindow {
40
14
return window. effectiveAppearance. bestMatch ( from: [ . darkAqua, . aqua] ) == . darkAqua
41
15
}
42
16
return NSAppearance . current. bestMatch ( from: [ . darkAqua, . aqua] ) == . darkAqua
43
17
}
18
+ #else
19
+ private typealias ColorType = UIColor
20
+ private static func colorType( red: CGFloat , green: CGFloat , blue: CGFloat ) -> ColorType {
21
+ . init( red: red, green: green, blue: blue, alpha: 1.0 )
22
+ }
44
23
#endif
45
24
46
- public static var main : Color {
25
+ private static func color ( light : ColorType , dark : ColorType ) -> Color {
47
26
#if os(iOS)
48
- return Color ( . init { $0. userInterfaceStyle == . light ? UIColor ( cgColor : defaultMainCGColor ) : UIColor ( cgColor : darkThemeMainCGColor ) } )
27
+ return Color ( . init { $0. userInterfaceStyle == . light ? light : dark } )
49
28
#else
50
- return isDarkMode ( ) ? darkThemeMainColor : defaultMainColor
29
+ return isDarkMode ( ) ? dark : light
51
30
#endif
52
31
}
53
32
33
+ //Color
34
+ private static let defaultMainColor = colorType ( red: 0.925 , green: 0.941 , blue: 0.953 )
35
+ private static let defaultSecondaryColor = colorType ( red: 0.482 , green: 0.502 , blue: 0.549 )
36
+ private static let defaultLightShadowSolidColor = colorType ( red: 1.000 , green: 1.000 , blue: 1.000 )
37
+ private static let defaultDarkShadowSolidColor = colorType ( red: 0.820 , green: 0.851 , blue: 0.902 )
38
+
39
+ private static let darkThemeMainColor = colorType ( red: 0.188 , green: 0.192 , blue: 0.208 )
40
+ private static let darkThemeSecondaryColor = colorType ( red: 0.910 , green: 0.910 , blue: 0.910 )
41
+ private static let darkThemeLightShadowSolidColor = colorType ( red: 0.243 , green: 0.247 , blue: 0.275 )
42
+ private static let darkThemeDarkShadowSolidColor = colorType ( red: 0.137 , green: 0.137 , blue: 0.137 )
43
+
44
+ public static var main : Color {
45
+ color ( light: defaultMainColor, dark: darkThemeMainColor)
46
+ }
47
+
54
48
public static var secondary : Color {
55
- #if os(iOS)
56
- return Color ( . init { $0. userInterfaceStyle == . light ? UIColor ( cgColor: defaultSecondaryCGColor) : UIColor ( cgColor: darkThemeSecondaryCGColor) } )
57
- #else
58
- return isDarkMode ( ) ? darkThemeSecondaryColor : defaultSecondaryColor
59
- #endif
49
+ color ( light: defaultSecondaryColor, dark: darkThemeSecondaryColor)
60
50
}
61
51
62
52
public static var lightShadow : Color {
63
- #if os(iOS)
64
- return Color ( . init { $0. userInterfaceStyle == . light ? UIColor ( cgColor: defaultLightShadowSolidCGColor) : UIColor ( cgColor: darkThemeLightShadowSolidCGColor) } )
65
- #else
66
- return isDarkMode ( ) ? darkThemeLightShadowSolidColor : defaultLightShadowSolidColor
67
- #endif
53
+ color ( light: defaultLightShadowSolidColor, dark: darkThemeLightShadowSolidColor)
68
54
}
69
55
70
56
public static var darkShadow : Color {
71
- #if os(iOS)
72
- return Color ( . init { $0. userInterfaceStyle == . light ? UIColor ( cgColor: defaultDarkShadowSolidCGColor) : UIColor ( cgColor: darkThemeDarkShadowSolidCGColor) } )
73
- #else
74
- return isDarkMode ( ) ? darkThemeDarkShadowColor : defaultDarkShadowSolidColor
75
- #endif
57
+ color ( light: defaultDarkShadowSolidColor, dark: darkThemeDarkShadowSolidColor)
76
58
}
77
59
}
78
60
}
0 commit comments