Browse Source

Refine home chrome spacing and slim the left sidebar.

This unifies top/left chrome colors, stabilizes traffic-light and brand spacing to prevent overlap, and reduces left panel width for a cleaner, less bulky layout.

Made-with: Cursor
huzaifahayat12 6 days ago
parent
commit
88b2b61545
1 changed files with 15 additions and 9 deletions
  1. 15 9
      zoom_app/ViewController.swift

+ 15 - 9
zoom_app/ViewController.swift

@@ -23,14 +23,16 @@ class ViewController: NSViewController {
23
     private let appShellBackground = NSColor(calibratedRed: 10 / 255, green: 11 / 255, blue: 12 / 255, alpha: 1)
23
     private let appShellBackground = NSColor(calibratedRed: 10 / 255, green: 11 / 255, blue: 12 / 255, alpha: 1)
24
     private let contentShellBackground = NSColor(calibratedRed: 10 / 255, green: 11 / 255, blue: 12 / 255, alpha: 1)
24
     private let contentShellBackground = NSColor(calibratedRed: 10 / 255, green: 11 / 255, blue: 12 / 255, alpha: 1)
25
     private let topStripBackground = NSColor(calibratedRed: 22 / 255, green: 23 / 255, blue: 26 / 255, alpha: 1)
25
     private let topStripBackground = NSColor(calibratedRed: 22 / 255, green: 23 / 255, blue: 26 / 255, alpha: 1)
26
+    private let chromeUnifiedBackground = NSColor(calibratedRed: 22 / 255, green: 23 / 255, blue: 26 / 255, alpha: 1)
26
     private let searchPillBackground = NSColor.white.withAlphaComponent(0.06)
27
     private let searchPillBackground = NSColor.white.withAlphaComponent(0.06)
27
     private let meetingCardBackground = NSColor(calibratedRed: 30 / 255, green: 34 / 255, blue: 42 / 255, alpha: 1)
28
     private let meetingCardBackground = NSColor(calibratedRed: 30 / 255, green: 34 / 255, blue: 42 / 255, alpha: 1)
28
     private let titleBarControlBackground = NSColor.white.withAlphaComponent(0.04)
29
     private let titleBarControlBackground = NSColor.white.withAlphaComponent(0.04)
29
     private let titleBarLightControlBackground = NSColor.white.withAlphaComponent(0.02)
30
     private let titleBarLightControlBackground = NSColor.white.withAlphaComponent(0.02)
30
     private let appShellCornerRadius: CGFloat = 20
31
     private let appShellCornerRadius: CGFloat = 20
31
     private let homeChromeHeaderHeight: CGFloat = 56
32
     private let homeChromeHeaderHeight: CGFloat = 56
32
-    private let nativeTrafficLightsLeading: CGFloat = 18
33
+    private let nativeTrafficLightsLeading: CGFloat = 14
33
     private let nativeTrafficLightsTopInset: CGFloat = 20
34
     private let nativeTrafficLightsTopInset: CGFloat = 20
35
+    private let brandLeadingInset: CGFloat = 84
34
     private let accentBlue = NSColor(calibratedRed: 27 / 255, green: 115 / 255, blue: 232 / 255, alpha: 1)
36
     private let accentBlue = NSColor(calibratedRed: 27 / 255, green: 115 / 255, blue: 232 / 255, alpha: 1)
35
     private let accentOrange = NSColor(calibratedRed: 1.0, green: 0.60, blue: 0.20, alpha: 1)
37
     private let accentOrange = NSColor(calibratedRed: 1.0, green: 0.60, blue: 0.20, alpha: 1)
36
     private let primaryText = NSColor(calibratedWhite: 0.98, alpha: 1)
38
     private let primaryText = NSColor(calibratedWhite: 0.98, alpha: 1)
@@ -74,6 +76,7 @@ class ViewController: NSViewController {
74
         super.viewDidAppear()
76
         super.viewDidAppear()
75
         if let window = view.window {
77
         if let window = view.window {
76
             window.setContentSize(NSSize(width: 1020, height: 690))
78
             window.setContentSize(NSSize(width: 1020, height: 690))
79
+            window.backgroundColor = chromeUnifiedBackground
77
             // Use full-size content view so custom top chrome sits in the titlebar region.
80
             // Use full-size content view so custom top chrome sits in the titlebar region.
78
             window.titleVisibility = .hidden
81
             window.titleVisibility = .hidden
79
             window.titlebarAppearsTransparent = true
82
             window.titlebarAppearsTransparent = true
@@ -665,13 +668,13 @@ class ViewController: NSViewController {
665
         shell.layer?.borderColor = NSColor.white.withAlphaComponent(0.06).cgColor
668
         shell.layer?.borderColor = NSColor.white.withAlphaComponent(0.06).cgColor
666
         let chromeColumn = NSView()
669
         let chromeColumn = NSView()
667
         chromeColumn.wantsLayer = true
670
         chromeColumn.wantsLayer = true
668
-        chromeColumn.layer?.backgroundColor = NSColor.white.withAlphaComponent(0.03).cgColor
671
+        chromeColumn.layer?.backgroundColor = chromeUnifiedBackground.cgColor
669
         let chromeDivider = NSView()
672
         let chromeDivider = NSView()
670
         chromeDivider.wantsLayer = true
673
         chromeDivider.wantsLayer = true
671
         chromeDivider.layer?.backgroundColor = NSColor.black.withAlphaComponent(0.32).cgColor
674
         chromeDivider.layer?.backgroundColor = NSColor.black.withAlphaComponent(0.32).cgColor
672
         let chromeHeader = NSView()
675
         let chromeHeader = NSView()
673
         chromeHeader.wantsLayer = true
676
         chromeHeader.wantsLayer = true
674
-        chromeHeader.layer?.backgroundColor = NSColor.clear.cgColor
677
+        chromeHeader.layer?.backgroundColor = chromeUnifiedBackground.cgColor
675
         let sidebar = makeSidebar(items: ["Home", "Meetings", "Chat", "Scheduler", "Hub", "More"], selected: "Home", style: .home)
678
         let sidebar = makeSidebar(items: ["Home", "Meetings", "Chat", "Scheduler", "Hub", "More"], selected: "Home", style: .home)
676
         let content = NSView()
679
         let content = NSView()
677
         content.wantsLayer = true
680
         content.wantsLayer = true
@@ -698,7 +701,7 @@ class ViewController: NSViewController {
698
             chromeColumn.leadingAnchor.constraint(equalTo: shell.leadingAnchor),
701
             chromeColumn.leadingAnchor.constraint(equalTo: shell.leadingAnchor),
699
             chromeColumn.topAnchor.constraint(equalTo: shell.topAnchor),
702
             chromeColumn.topAnchor.constraint(equalTo: shell.topAnchor),
700
             chromeColumn.bottomAnchor.constraint(equalTo: shell.bottomAnchor),
703
             chromeColumn.bottomAnchor.constraint(equalTo: shell.bottomAnchor),
701
-            chromeColumn.widthAnchor.constraint(equalToConstant: 128),
704
+            chromeColumn.widthAnchor.constraint(equalToConstant: 82),
702
             chromeDivider.topAnchor.constraint(equalTo: chromeColumn.topAnchor),
705
             chromeDivider.topAnchor.constraint(equalTo: chromeColumn.topAnchor),
703
             chromeDivider.bottomAnchor.constraint(equalTo: chromeColumn.bottomAnchor),
706
             chromeDivider.bottomAnchor.constraint(equalTo: chromeColumn.bottomAnchor),
704
             chromeDivider.trailingAnchor.constraint(equalTo: chromeColumn.trailingAnchor),
707
             chromeDivider.trailingAnchor.constraint(equalTo: chromeColumn.trailingAnchor),
@@ -723,12 +726,13 @@ class ViewController: NSViewController {
723
         brandStack.alignment = .leading
726
         brandStack.alignment = .leading
724
         let brandTop = makeLabel("zoom", size: 14, color: primaryText, weight: .semibold, centered: false)
727
         let brandTop = makeLabel("zoom", size: 14, color: primaryText, weight: .semibold, centered: false)
725
         let brandBottom = makeLabel("Workplace", size: 27, color: primaryText, weight: .bold, centered: false)
728
         let brandBottom = makeLabel("Workplace", size: 27, color: primaryText, weight: .bold, centered: false)
726
-        brandBottom.font = .systemFont(ofSize: 14, weight: .bold)
729
+        brandTop.font = .systemFont(ofSize: 12, weight: .semibold)
730
+        brandBottom.font = .systemFont(ofSize: 12, weight: .bold)
727
         [brandTop, brandBottom].forEach { brandStack.addArrangedSubview($0) }
731
         [brandTop, brandBottom].forEach { brandStack.addArrangedSubview($0) }
728
 
732
 
729
         let topBar = NSView()
733
         let topBar = NSView()
730
         topBar.wantsLayer = true
734
         topBar.wantsLayer = true
731
-        topBar.layer?.backgroundColor = NSColor.white.withAlphaComponent(0.03).cgColor
735
+        topBar.layer?.backgroundColor = chromeUnifiedBackground.cgColor
732
         
736
         
733
         let topBarDivider = NSView()
737
         let topBarDivider = NSView()
734
         topBarDivider.wantsLayer = true
738
         topBarDivider.wantsLayer = true
@@ -826,7 +830,7 @@ class ViewController: NSViewController {
826
             $0.translatesAutoresizingMaskIntoConstraints = false
830
             $0.translatesAutoresizingMaskIntoConstraints = false
827
         }
831
         }
828
         [brandStack].forEach {
832
         [brandStack].forEach {
829
-            chromeHeader.addSubview($0)
833
+            shell.addSubview($0)
830
         }
834
         }
831
         [leftTopBarCluster, rightTopBarCluster, searchPill, search].forEach {
835
         [leftTopBarCluster, rightTopBarCluster, searchPill, search].forEach {
832
             $0.translatesAutoresizingMaskIntoConstraints = false
836
             $0.translatesAutoresizingMaskIntoConstraints = false
@@ -844,7 +848,8 @@ class ViewController: NSViewController {
844
         meetingsDocument.addSubview(meetingsStack)
848
         meetingsDocument.addSubview(meetingsStack)
845
 
849
 
846
         NSLayoutConstraint.activate([
850
         NSLayoutConstraint.activate([
847
-            brandStack.leadingAnchor.constraint(equalTo: chromeHeader.leadingAnchor, constant: 84),
851
+            brandStack.leadingAnchor.constraint(equalTo: shell.leadingAnchor, constant: brandLeadingInset),
852
+            brandStack.trailingAnchor.constraint(lessThanOrEqualTo: leftTopBarCluster.leadingAnchor, constant: -12),
848
             brandStack.centerYAnchor.constraint(equalTo: chromeHeader.centerYAnchor, constant: -1),
853
             brandStack.centerYAnchor.constraint(equalTo: chromeHeader.centerYAnchor, constant: -1),
849
 
854
 
850
             topBar.topAnchor.constraint(equalTo: content.topAnchor),
855
             topBar.topAnchor.constraint(equalTo: content.topAnchor),
@@ -861,7 +866,8 @@ class ViewController: NSViewController {
861
             contentColumn.leadingAnchor.constraint(equalTo: content.leadingAnchor, constant: 8),
866
             contentColumn.leadingAnchor.constraint(equalTo: content.leadingAnchor, constant: 8),
862
             contentColumn.trailingAnchor.constraint(equalTo: content.trailingAnchor, constant: -8),
867
             contentColumn.trailingAnchor.constraint(equalTo: content.trailingAnchor, constant: -8),
863
 
868
 
864
-            leftTopBarCluster.leadingAnchor.constraint(equalTo: topBar.leadingAnchor, constant: 40),
869
+            leftTopBarCluster.leadingAnchor.constraint(greaterThanOrEqualTo: topBar.leadingAnchor, constant: 40),
870
+            leftTopBarCluster.leadingAnchor.constraint(greaterThanOrEqualTo: brandStack.trailingAnchor, constant: 16),
865
             leftTopBarCluster.centerYAnchor.constraint(equalTo: topBar.centerYAnchor),
871
             leftTopBarCluster.centerYAnchor.constraint(equalTo: topBar.centerYAnchor),
866
             rightTopBarCluster.trailingAnchor.constraint(equalTo: topBar.trailingAnchor, constant: -12),
872
             rightTopBarCluster.trailingAnchor.constraint(equalTo: topBar.trailingAnchor, constant: -12),
867
             rightTopBarCluster.centerYAnchor.constraint(equalTo: topBar.centerYAnchor),
873
             rightTopBarCluster.centerYAnchor.constraint(equalTo: topBar.centerYAnchor),