Sfoglia il codice sorgente

Improve Google button icon spacing and sizing.

Increase auth button icon size and add explicit trailing padding between icon and title for cleaner visual balance in signed-in and signed-out states.

Made-with: Cursor
huzaifahayat12 1 settimana fa
parent
commit
1e8e8bb5f9
1 ha cambiato i file con 19 aggiunte e 5 eliminazioni
  1. 19 5
      meetings_app/ViewController.swift

+ 19 - 5
meetings_app/ViewController.swift

@@ -2968,17 +2968,17 @@ private extension ViewController {
2968 2968
             .foregroundColor: titleColor
2969 2969
         ])
2970 2970
         let textWidth = (title as NSString).size(withAttributes: [.font: titleFont]).width
2971
-        let idealWidth = ceil(textWidth + 74) // icon + extra left inset + cleaner side padding
2971
+        let idealWidth = ceil(textWidth + 80) // icon + spacing + side padding
2972 2972
         scheduleGoogleAuthButtonWidthConstraint?.constant = min(320, max(188, idealWidth))
2973 2973
 
2974 2974
         if signedIn {
2975 2975
             let symbol = NSImage(systemSymbolName: "person.crop.circle.fill", accessibilityDescription: "Profile")
2976
-            button.image = symbol.flatMap { resizedImage($0, to: NSSize(width: 20, height: 20)) }
2977
-            button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 20, weight: .regular)
2976
+            button.image = symbol.flatMap { paddedTrailingImage($0, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8) }
2977
+            button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 22, weight: .regular)
2978 2978
             button.contentTintColor = palette.textPrimary
2979 2979
         } else {
2980 2980
             if let g = NSImage(named: "GoogleGLogo") {
2981
-                button.image = resizedImage(g, to: NSSize(width: 20, height: 20))
2981
+                button.image = paddedTrailingImage(g, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8)
2982 2982
             } else {
2983 2983
                 button.image = nil
2984 2984
             }
@@ -3013,7 +3013,7 @@ private extension ViewController {
3013 3013
                 if Task.isCancelled { return }
3014 3014
                 guard let image = NSImage(data: data) else { return }
3015 3015
                 await MainActor.run {
3016
-                    self?.scheduleGoogleAuthButton?.image = self?.resizedImage(image, to: NSSize(width: 20, height: 20))
3016
+                    self?.scheduleGoogleAuthButton?.image = self?.paddedTrailingImage(image, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8)
3017 3017
                     self?.scheduleGoogleAuthButton?.contentTintColor = nil
3018 3018
                 }
3019 3019
             } catch {
@@ -3034,6 +3034,20 @@ private extension ViewController {
3034 3034
         return result
3035 3035
     }
3036 3036
 
3037
+    private func paddedTrailingImage(_ image: NSImage, iconSize: NSSize, trailingPadding: CGFloat) -> NSImage {
3038
+        let base = resizedImage(image, to: iconSize)
3039
+        let canvas = NSSize(width: iconSize.width + trailingPadding, height: iconSize.height)
3040
+        let result = NSImage(size: canvas)
3041
+        result.lockFocus()
3042
+        base.draw(in: NSRect(x: 0, y: 0, width: iconSize.width, height: iconSize.height),
3043
+                  from: NSRect(origin: .zero, size: base.size),
3044
+                  operation: .copy,
3045
+                  fraction: 1.0)
3046
+        result.unlockFocus()
3047
+        result.isTemplate = false
3048
+        return result
3049
+    }
3050
+
3037 3051
     private func applyGoogleAuthButtonSurface() {
3038 3052
         guard let button = scheduleGoogleAuthButton else { return }
3039 3053
         let isDark = darkModeEnabled