Kaynağa Gözat

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 3 ay önce
ebeveyn
işleme
1e8e8bb5f9
1 değiştirilmiş dosya ile 19 ekleme ve 5 silme
  1. 19 5
      meetings_app/ViewController.swift

+ 19 - 5
meetings_app/ViewController.swift

@@ -2968,17 +2968,17 @@ private extension ViewController {
             .foregroundColor: titleColor
         ])
         let textWidth = (title as NSString).size(withAttributes: [.font: titleFont]).width
-        let idealWidth = ceil(textWidth + 74) // icon + extra left inset + cleaner side padding
+        let idealWidth = ceil(textWidth + 80) // icon + spacing + side padding
         scheduleGoogleAuthButtonWidthConstraint?.constant = min(320, max(188, idealWidth))
 
         if signedIn {
             let symbol = NSImage(systemSymbolName: "person.crop.circle.fill", accessibilityDescription: "Profile")
-            button.image = symbol.flatMap { resizedImage($0, to: NSSize(width: 20, height: 20)) }
-            button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 20, weight: .regular)
+            button.image = symbol.flatMap { paddedTrailingImage($0, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8) }
+            button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 22, weight: .regular)
             button.contentTintColor = palette.textPrimary
         } else {
             if let g = NSImage(named: "GoogleGLogo") {
-                button.image = resizedImage(g, to: NSSize(width: 20, height: 20))
+                button.image = paddedTrailingImage(g, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8)
             } else {
                 button.image = nil
             }
@@ -3013,7 +3013,7 @@ private extension ViewController {
                 if Task.isCancelled { return }
                 guard let image = NSImage(data: data) else { return }
                 await MainActor.run {
-                    self?.scheduleGoogleAuthButton?.image = self?.resizedImage(image, to: NSSize(width: 20, height: 20))
+                    self?.scheduleGoogleAuthButton?.image = self?.paddedTrailingImage(image, iconSize: NSSize(width: 22, height: 22), trailingPadding: 8)
                     self?.scheduleGoogleAuthButton?.contentTintColor = nil
                 }
             } catch {
@@ -3034,6 +3034,20 @@ private extension ViewController {
         return result
     }
 
+    private func paddedTrailingImage(_ image: NSImage, iconSize: NSSize, trailingPadding: CGFloat) -> NSImage {
+        let base = resizedImage(image, to: iconSize)
+        let canvas = NSSize(width: iconSize.width + trailingPadding, height: iconSize.height)
+        let result = NSImage(size: canvas)
+        result.lockFocus()
+        base.draw(in: NSRect(x: 0, y: 0, width: iconSize.width, height: iconSize.height),
+                  from: NSRect(origin: .zero, size: base.size),
+                  operation: .copy,
+                  fraction: 1.0)
+        result.unlockFocus()
+        result.isTemplate = false
+        return result
+    }
+
     private func applyGoogleAuthButtonSurface() {
         guard let button = scheduleGoogleAuthButton else { return }
         let isDark = darkModeEnabled