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 3 mesi 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 {
             .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