Kaynağa Gözat

Update app branding with high-resolution camera logo assets.

Replace the sidebar title emoji with a larger high-resolution logo image and regenerate the AppIcon set so branding stays crisp and consistent across the app.

Made-with: Cursor
huzaifahayat12 1 hafta önce
ebeveyn
işleme
0873711afa
20 değiştirilmiş dosya ile 86 ekleme ve 38 silme
  1. 44 34
      meetings_app/Assets.xcassets/AppIcon.appiconset/Contents.json
  2. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-128.png
  3. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-128@2x.png
  4. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-16.png
  5. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-16@2x.png
  6. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-256.png
  7. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-256@2x.png
  8. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-32.png
  9. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-32@2x.png
  10. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-512.png
  11. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-512@2x.png
  12. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-master-1024.png
  13. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-master-2048.png
  14. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/logo-camera-transparent-1024.png
  15. BIN
      meetings_app/Assets.xcassets/AppIcon.appiconset/logo-camera-transparent-2048.png
  16. 23 0
      meetings_app/Assets.xcassets/HeaderLogo.imageset/Contents.json
  17. BIN
      meetings_app/Assets.xcassets/HeaderLogo.imageset/HeaderLogo@1x.png
  18. BIN
      meetings_app/Assets.xcassets/HeaderLogo.imageset/HeaderLogo@2x.png
  19. BIN
      meetings_app/Assets.xcassets/HeaderLogo.imageset/HeaderLogo@3x.png
  20. 19 4
      meetings_app/ViewController.swift

+ 44 - 34
meetings_app/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,58 +1,68 @@
1 1
 {
2
-  "images" : [
2
+  "images": [
3 3
     {
4
-      "idiom" : "mac",
5
-      "scale" : "1x",
6
-      "size" : "16x16"
4
+      "idiom": "mac",
5
+      "size": "16x16",
6
+      "scale": "1x",
7
+      "filename": "appicon-16.png"
7 8
     },
8 9
     {
9
-      "idiom" : "mac",
10
-      "scale" : "2x",
11
-      "size" : "16x16"
10
+      "idiom": "mac",
11
+      "size": "16x16",
12
+      "scale": "2x",
13
+      "filename": "appicon-16@2x.png"
12 14
     },
13 15
     {
14
-      "idiom" : "mac",
15
-      "scale" : "1x",
16
-      "size" : "32x32"
16
+      "idiom": "mac",
17
+      "size": "32x32",
18
+      "scale": "1x",
19
+      "filename": "appicon-32.png"
17 20
     },
18 21
     {
19
-      "idiom" : "mac",
20
-      "scale" : "2x",
21
-      "size" : "32x32"
22
+      "idiom": "mac",
23
+      "size": "32x32",
24
+      "scale": "2x",
25
+      "filename": "appicon-32@2x.png"
22 26
     },
23 27
     {
24
-      "idiom" : "mac",
25
-      "scale" : "1x",
26
-      "size" : "128x128"
28
+      "idiom": "mac",
29
+      "size": "128x128",
30
+      "scale": "1x",
31
+      "filename": "appicon-128.png"
27 32
     },
28 33
     {
29
-      "idiom" : "mac",
30
-      "scale" : "2x",
31
-      "size" : "128x128"
34
+      "idiom": "mac",
35
+      "size": "128x128",
36
+      "scale": "2x",
37
+      "filename": "appicon-128@2x.png"
32 38
     },
33 39
     {
34
-      "idiom" : "mac",
35
-      "scale" : "1x",
36
-      "size" : "256x256"
40
+      "idiom": "mac",
41
+      "size": "256x256",
42
+      "scale": "1x",
43
+      "filename": "appicon-256.png"
37 44
     },
38 45
     {
39
-      "idiom" : "mac",
40
-      "scale" : "2x",
41
-      "size" : "256x256"
46
+      "idiom": "mac",
47
+      "size": "256x256",
48
+      "scale": "2x",
49
+      "filename": "appicon-256@2x.png"
42 50
     },
43 51
     {
44
-      "idiom" : "mac",
45
-      "scale" : "1x",
46
-      "size" : "512x512"
52
+      "idiom": "mac",
53
+      "size": "512x512",
54
+      "scale": "1x",
55
+      "filename": "appicon-512.png"
47 56
     },
48 57
     {
49
-      "idiom" : "mac",
50
-      "scale" : "2x",
51
-      "size" : "512x512"
58
+      "idiom": "mac",
59
+      "size": "512x512",
60
+      "scale": "2x",
61
+      "filename": "appicon-512@2x.png"
52 62
     }
53 63
   ],
54
-  "info" : {
55
-    "author" : "xcode",
56
-    "version" : 1
64
+  "info": {
65
+    "author": "xcode",
66
+    "version": 1
57 67
   }
58 68
 }

BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-128.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-128@2x.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-16.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-16@2x.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-256.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-256@2x.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-32.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-32@2x.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-512.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-512@2x.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-master-1024.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/appicon-master-2048.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/logo-camera-transparent-1024.png


BIN
meetings_app/Assets.xcassets/AppIcon.appiconset/logo-camera-transparent-2048.png


+ 23 - 0
meetings_app/Assets.xcassets/HeaderLogo.imageset/Contents.json

@@ -0,0 +1,23 @@
1
+{
2
+  "images": [
3
+    {
4
+      "idiom": "universal",
5
+      "filename": "HeaderLogo@1x.png",
6
+      "scale": "1x"
7
+    },
8
+    {
9
+      "idiom": "universal",
10
+      "filename": "HeaderLogo@2x.png",
11
+      "scale": "2x"
12
+    },
13
+    {
14
+      "idiom": "universal",
15
+      "filename": "HeaderLogo@3x.png",
16
+      "scale": "3x"
17
+    }
18
+  ],
19
+  "info": {
20
+    "version": 1,
21
+    "author": "xcode"
22
+  }
23
+}

BIN
meetings_app/Assets.xcassets/HeaderLogo.imageset/HeaderLogo@1x.png


BIN
meetings_app/Assets.xcassets/HeaderLogo.imageset/HeaderLogo@2x.png


BIN
meetings_app/Assets.xcassets/HeaderLogo.imageset/HeaderLogo@3x.png


+ 19 - 4
meetings_app/ViewController.swift

@@ -1351,14 +1351,29 @@ private extension ViewController {
1351 1351
         sidebar.layer?.shadowRadius = 10
1352 1352
         sidebar.widthAnchor.constraint(equalToConstant: 210).isActive = true
1353 1353
 
1354
+        let appIconView = NSImageView()
1355
+        if let headerLogo = NSImage(named: "HeaderLogo") {
1356
+            headerLogo.isTemplate = false
1357
+            appIconView.image = headerLogo
1358
+        } else if let appIconImage = NSApplication.shared.applicationIconImage {
1359
+            appIconImage.isTemplate = false
1360
+            appIconView.image = appIconImage
1361
+        }
1362
+        appIconView.translatesAutoresizingMaskIntoConstraints = false
1363
+        appIconView.imageScaling = NSImageScaling.scaleProportionallyDown
1364
+        appIconView.imageAlignment = NSImageAlignment.alignCenter
1365
+        appIconView.contentTintColor = nil
1366
+        appIconView.widthAnchor.constraint(equalToConstant: 44).isActive = true
1367
+        appIconView.heightAnchor.constraint(equalToConstant: 44).isActive = true
1368
+
1354 1369
         let titleRow = NSStackView(views: [
1355
-            iconLabel("📅", size: 24),
1370
+            appIconView,
1356 1371
             textLabel("Meetings", font: typography.sidebarBrand, color: palette.textPrimary)
1357 1372
         ])
1358 1373
         titleRow.translatesAutoresizingMaskIntoConstraints = false
1359
-        titleRow.orientation = .horizontal
1360
-        titleRow.alignment = .centerY
1361
-        titleRow.spacing = 8
1374
+        titleRow.orientation = NSUserInterfaceLayoutOrientation.horizontal
1375
+        titleRow.alignment = NSLayoutConstraint.Attribute.centerY
1376
+        titleRow.spacing = 16
1362 1377
 
1363 1378
         let menuStack = NSStackView()
1364 1379
         menuStack.translatesAutoresizingMaskIntoConstraints = false