Skip to content

Commit 452c588

Browse files
committed
Simplify app icon
1 parent 81cc92d commit 452c588

1 file changed

Lines changed: 64 additions & 27 deletions

File tree

scripts/make_icon.swift

Lines changed: 64 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,35 +35,73 @@ func drawIcon(size: Int) throws -> Data {
3535
image.lockFocus()
3636

3737
let rect = NSRect(origin: .zero, size: imageSize)
38-
NSColor(red: 0.07, green: 0.22, blue: 0.19, alpha: 1).setFill()
38+
NSColor.black.setFill()
3939
NSBezierPath(roundedRect: rect, xRadius: CGFloat(size) * 0.22, yRadius: CGFloat(size) * 0.22).fill()
4040

41-
let horizon = NSBezierPath()
42-
horizon.move(to: NSPoint(x: CGFloat(size) * 0.14, y: CGFloat(size) * 0.60))
43-
horizon.line(to: NSPoint(x: CGFloat(size) * 0.86, y: CGFloat(size) * 0.60))
44-
horizon.lineWidth = max(2, CGFloat(size) * 0.035)
45-
NSColor(red: 0.86, green: 0.91, blue: 0.87, alpha: 1).setStroke()
46-
horizon.stroke()
47-
48-
let road = NSBezierPath()
49-
road.move(to: NSPoint(x: CGFloat(size) * 0.46, y: CGFloat(size) * 0.16))
50-
road.curve(
51-
to: NSPoint(x: CGFloat(size) * 0.58, y: CGFloat(size) * 0.82),
52-
controlPoint1: NSPoint(x: CGFloat(size) * 0.34, y: CGFloat(size) * 0.36),
53-
controlPoint2: NSPoint(x: CGFloat(size) * 0.72, y: CGFloat(size) * 0.55)
41+
let globeRect = NSRect(
42+
x: CGFloat(size) * 0.18,
43+
y: CGFloat(size) * 0.18,
44+
width: CGFloat(size) * 0.64,
45+
height: CGFloat(size) * 0.64
5446
)
55-
road.lineWidth = max(5, CGFloat(size) * 0.09)
56-
NSColor(red: 0.96, green: 0.70, blue: 0.31, alpha: 1).setStroke()
57-
road.stroke()
58-
59-
let pin = NSBezierPath(ovalIn: NSRect(
60-
x: CGFloat(size) * 0.60,
61-
y: CGFloat(size) * 0.62,
62-
width: CGFloat(size) * 0.16,
63-
height: CGFloat(size) * 0.16
64-
))
65-
NSColor.white.setFill()
66-
pin.fill()
47+
let globe = NSBezierPath(ovalIn: globeRect)
48+
NSColor(red: 0.10, green: 0.42, blue: 0.88, alpha: 1).setFill()
49+
globe.fill()
50+
51+
NSColor(red: 0.23, green: 0.77, blue: 0.48, alpha: 1).setFill()
52+
53+
let leftLand = NSBezierPath()
54+
leftLand.move(to: NSPoint(x: CGFloat(size) * 0.32, y: CGFloat(size) * 0.62))
55+
leftLand.curve(
56+
to: NSPoint(x: CGFloat(size) * 0.43, y: CGFloat(size) * 0.42),
57+
controlPoint1: NSPoint(x: CGFloat(size) * 0.23, y: CGFloat(size) * 0.56),
58+
controlPoint2: NSPoint(x: CGFloat(size) * 0.30, y: CGFloat(size) * 0.45)
59+
)
60+
leftLand.curve(
61+
to: NSPoint(x: CGFloat(size) * 0.47, y: CGFloat(size) * 0.68),
62+
controlPoint1: NSPoint(x: CGFloat(size) * 0.55, y: CGFloat(size) * 0.47),
63+
controlPoint2: NSPoint(x: CGFloat(size) * 0.55, y: CGFloat(size) * 0.63)
64+
)
65+
leftLand.curve(
66+
to: NSPoint(x: CGFloat(size) * 0.32, y: CGFloat(size) * 0.62),
67+
controlPoint1: NSPoint(x: CGFloat(size) * 0.42, y: CGFloat(size) * 0.72),
68+
controlPoint2: NSPoint(x: CGFloat(size) * 0.36, y: CGFloat(size) * 0.70)
69+
)
70+
leftLand.fill()
71+
72+
let rightLand = NSBezierPath()
73+
rightLand.move(to: NSPoint(x: CGFloat(size) * 0.61, y: CGFloat(size) * 0.70))
74+
rightLand.curve(
75+
to: NSPoint(x: CGFloat(size) * 0.72, y: CGFloat(size) * 0.52),
76+
controlPoint1: NSPoint(x: CGFloat(size) * 0.72, y: CGFloat(size) * 0.69),
77+
controlPoint2: NSPoint(x: CGFloat(size) * 0.78, y: CGFloat(size) * 0.60)
78+
)
79+
rightLand.curve(
80+
to: NSPoint(x: CGFloat(size) * 0.57, y: CGFloat(size) * 0.33),
81+
controlPoint1: NSPoint(x: CGFloat(size) * 0.66, y: CGFloat(size) * 0.44),
82+
controlPoint2: NSPoint(x: CGFloat(size) * 0.66, y: CGFloat(size) * 0.35)
83+
)
84+
rightLand.curve(
85+
to: NSPoint(x: CGFloat(size) * 0.61, y: CGFloat(size) * 0.70),
86+
controlPoint1: NSPoint(x: CGFloat(size) * 0.49, y: CGFloat(size) * 0.40),
87+
controlPoint2: NSPoint(x: CGFloat(size) * 0.51, y: CGFloat(size) * 0.63)
88+
)
89+
rightLand.fill()
90+
91+
globe.addClip()
92+
NSColor.white.withAlphaComponent(0.22).setStroke()
93+
for ratio in [0.36, 0.50, 0.64] {
94+
let y = CGFloat(size) * ratio
95+
let line = NSBezierPath()
96+
line.move(to: NSPoint(x: globeRect.minX + CGFloat(size) * 0.05, y: y))
97+
line.line(to: NSPoint(x: globeRect.maxX - CGFloat(size) * 0.05, y: y))
98+
line.lineWidth = max(1, CGFloat(size) * 0.012)
99+
line.stroke()
100+
}
101+
102+
NSColor.white.withAlphaComponent(0.30).setStroke()
103+
globe.lineWidth = max(2, CGFloat(size) * 0.025)
104+
globe.stroke()
67105

68106
image.unlockFocus()
69107

@@ -99,4 +137,3 @@ if process.terminationStatus != 0 {
99137
NSLocalizedDescriptionKey: "iconutil failed."
100138
])
101139
}
102-

0 commit comments

Comments
 (0)