[GH-ISSUE #4998] macOS Settings window looks non-native / visually rough vs Tailscale (request native Preferences UI) #9674

Open
opened 2026-08-05 01:23:03 -04:00 by saavagebueno · 2 comments
Owner

Originally created by @maxpain on GitHub (Dec 28, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/4998

Is your feature request related to a problem? Please describe.
Yes. On macOS the Settings window (not the tray/menubar UI — that part is fine) looks and feels very non-native. The controls, spacing, typography, and overall layout don’t match typical macOS Preferences/Settings patterns, so the app feels unpolished. In practice it looks pretty ugly compared to Tailscale’s macOS client, even though the core functionality works.

Concrete UI issues visible in the current Settings window:
• Tab navigation (“Connection / Network / SSH”) uses a custom underline style and spacing that doesn’t resemble macOS preferences/toolbars.
• Form layout feels off: inconsistent paddings, label alignment, and excessive empty space.
• Disabled/secondary states are hard to read (e.g., “Quantum-Resistance” line looks washed out and confusing).
• Buttons and icons at the bottom (“Cancel” / “Save”) feel non-standard for macOS (visual weight and styling).

Describe the solution you'd like
Redesign the Settings/Preferences window to be macOS-native (SwiftUI/AppKit), or at least adopt native macOS components and layout conventions. Ideally:
• Use a standard macOS Preferences structure (toolbar tabs or segmented control / sidebar depending on macOS version).
• Use native form components (consistent label alignment, spacing, and control sizing).
• Ensure proper disabled states, keyboard navigation, and accessibility (VoiceOver / focus order).
• Keep the current tray/menubar workflow as-is (it’s fine), but make the Settings window feel like a first-class macOS app.

Originally created by @maxpain on GitHub (Dec 28, 2025). Original GitHub issue: https://github.com/netbirdio/netbird/issues/4998 **Is your feature request related to a problem? Please describe.** Yes. On macOS the Settings window (not the tray/menubar UI — that part is fine) looks and feels very non-native. The controls, spacing, typography, and overall layout don’t match typical macOS Preferences/Settings patterns, so the app feels unpolished. In practice it looks pretty ugly compared to Tailscale’s macOS client, even though the core functionality works. Concrete UI issues visible in the current Settings window: • Tab navigation (“Connection / Network / SSH”) uses a custom underline style and spacing that doesn’t resemble macOS preferences/toolbars. • Form layout feels off: inconsistent paddings, label alignment, and excessive empty space. • Disabled/secondary states are hard to read (e.g., “Quantum-Resistance” line looks washed out and confusing). • Buttons and icons at the bottom (“Cancel” / “Save”) feel non-standard for macOS (visual weight and styling). **Describe the solution you'd like** Redesign the Settings/Preferences window to be macOS-native (SwiftUI/AppKit), or at least adopt native macOS components and layout conventions. Ideally: • Use a standard macOS Preferences structure (toolbar tabs or segmented control / sidebar depending on macOS version). • Use native form components (consistent label alignment, spacing, and control sizing). • Ensure proper disabled states, keyboard navigation, and accessibility (VoiceOver / focus order). • Keep the current tray/menubar workflow as-is (it’s fine), but make the Settings window feel like a first-class macOS app.
saavagebueno added the feature-request label 2026-08-05 01:23:03 -04:00
Author
Owner

@coderabbitai[bot] commented on GitHub (Dec 28, 2025):

📝 CodeRabbit Plan Mode

Generate an implementation plan and prompts that you can use with your favorite coding agent.

  • Create Plan
Examples

🔗 Similar Issues

Related Issues

👤 Suggested Assignees

🧪 Issue enrichment is currently in open beta.

You can configure auto-planning by selecting labels in the issue_enrichment configuration.

To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

issue_enrichment:
  auto_enrich:
    enabled: false

💬 Have feedback or questions? Drop into our discord!

<!-- gh-comment-id:3694734041 --> @coderabbitai[bot] commented on GitHub (Dec 28, 2025): <!-- This is an auto-generated issue plan by CodeRabbit --> ### 📝 CodeRabbit Plan Mode Generate an implementation plan and prompts that you can use with your favorite coding agent. - [ ] <!-- {"checkboxId": "8d4f2b9c-3e1a-4f7c-a9b2-d5e8f1c4a7b9"} --> Create Plan <details> <summary>Examples</summary> - [Example 1](https://github.com/coderabbitai/git-worktree-runner/issues/29#issuecomment-3589134556) - [Example 2](https://github.com/coderabbitai/git-worktree-runner/issues/12#issuecomment-3606665167) </details> --- <details> <summary><b>🔗 Similar Issues</b></summary> **Related Issues** - https://github.com/netbirdio/netbird/issues/4819 </details> <details> <summary><b>👤 Suggested Assignees</b></summary> - [fseesink](https://github.com/fseesink) </details> --- <details> <summary> 🧪 Issue enrichment is currently in open beta.</summary> You can configure auto-planning by selecting labels in the issue_enrichment configuration. To disable automatic issue enrichment, add the following to your `.coderabbit.yaml`: ```yaml issue_enrichment: auto_enrich: enabled: false ``` </details> 💬 Have feedback or questions? Drop into our [discord](https://discord.gg/coderabbit)!
Author
Owner

@brenner-tobias commented on GitHub (Jan 9, 2026):

+1

<!-- gh-comment-id:3727655126 --> @brenner-tobias commented on GitHub (Jan 9, 2026): +1
Sign in to join this conversation.
No Label feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#9674