Skip to content

Commit f747e18

Browse files
authored
Merge pull request #14 from dkk/master
Refactoring
2 parents 40add15 + 809ccba commit f747e18

File tree

1 file changed

+31
-49
lines changed

1 file changed

+31
-49
lines changed

Sources/Neumorphic/ColorExtension.swift

Lines changed: 31 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,76 +3,58 @@ import SwiftUI
33
public extension Color {
44

55
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-
376
#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+
3812
private static func isDarkMode() -> Bool {
3913
if let window = NSApp.mainWindow {
4014
return window.effectiveAppearance.bestMatch(from: [.darkAqua, .aqua]) == .darkAqua
4115
}
4216
return NSAppearance.current.bestMatch(from: [.darkAqua, .aqua]) == .darkAqua
4317
}
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+
}
4423
#endif
4524

46-
public static var main: Color {
25+
private static func color(light: ColorType, dark: ColorType) -> Color {
4726
#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 })
4928
#else
50-
return isDarkMode() ? darkThemeMainColor : defaultMainColor
29+
return isDarkMode() ? dark : light
5130
#endif
5231
}
5332

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+
5448
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)
6050
}
6151

6252
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)
6854
}
6955

7056
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)
7658
}
7759
}
7860
}

0 commit comments

Comments
 (0)