agentsclimarketplace

Macos ui

Skill tyroneross/interface-built-right/skills/macos-ui

Use when building AppKit/SwiftUI apps for Mac, or when /ibr:build preamble returns platform=macOS — HIG rules for windows, toolbars, menu bar, materials, Liquid Glass, plus manual signing/notarization/distribution steps. Not for app architecture, SwiftData, concurrency, or the CI/CD pipeline; use `apple-platform` instead.From its SKILL.md

Install
npx -y skills add tyroneross/interface-built-right --skill macos-ui

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.7 KB, as published. Nobody here has run it

macOS UI

HIG-derived rules for Mac apps. Research context: docs/research/2026-04-13-mobile-ui-best-practices.md.

Windows

  • Full-size content view is the modern default — content extends under the translucent titlebar. Use materials so toolbar vibrancy works
  • Windows resizable unless content truly can't reflow
  • Persist size + position across launches
  • Support NSWindow tabbing (⌘T) when the app is document-based or browsable

Toolbars, sidebars, inspectors

  • Sidebar (source list): .sidebar material, translucent with vibrancy. Shows hierarchy / top-level areas
  • Toolbar: primary actions + search for current window; respect user customization
  • Inspector: right-side contextual details panel; toggleable

Menus

Menu bar is first-class. Every command the user can invoke should be reachable from the menu bar — power users expect it.

Sacred shortcuts (never rebind):

  • ⌘N / ⌘O / ⌘S / ⌘W / ⌘Q
  • ⌘Z / ⇧⌘Z — undo/redo
  • ⌘X / ⌘C / ⌘V — cut/copy/paste
  • ⌘F — find
  • ⌘, — preferences/settings
  • ⌘? — help
  • Control-⌘-F — full screen

Context menus supplement, never replace, menu bar items.

Keyboard-first

  • Every interactive element tab-reachable
  • Focus ring visible (WCAG 2.4.7)
  • No mouse-only features

Pointer targets

Apple does not publish a single "macOS minimum target size" equivalent to iOS 44pt. Use WCAG 2.5.8 (24×24 px) as floor, 28–32 pt for standalone buttons. Hover states expected — cursor changes (I-beam, pointingHand, openHand).

Vibrancy + materials

  • NSVisualEffectView materials: sidebar, titlebar, menu, popover, HUD
  • Vibrancy pulls color through material — use vibrant label/fill/separator variants
  • Four vibrancy levels: default (highest contrast) → quaternary (lowest)
  • macOS 26 Tahoe Liquid Glass: translucent menu bar, Dock, Control Center. Desktop icons react to light/dark + tint. Verify exact SwiftUI modifier names against live Xcode docs before quoting

Colors

Same semantic-first rule as iOS — use NSColor.labelColor, NSColor.controlBackgroundColor, NSColor.separatorColor. In SwiftUI, Color(NSColor.labelColor) or Color.primary.

Typography

Default body = 13pt SF Pro on macOS (vs 17pt iOS). Match macOS system font scale — don't transplant iOS sizes.

Distribution

Path A — App Store

  • Submit via Xcode Organizer → App Store Connect
  • Full Apple review
  • Sandbox required (entitlements declared in .entitlements)
  • Universal binary: arm64 + x86_64 unless dropping Intel

Path B — Direct / Sparkle

  • Developer ID signed + notarized — required since 2019 for Gatekeeper to pass silently
  • Sparkle updaters: nested executables must also be Developer ID signed + timestamped, or notarization fails
  • No sandbox required (but recommended)

Apple documentation — canonical entry points

HIG:

AppKit:

Distribution:

Keyboard reference:

Anti-patterns

  • Hiding commands only in context menus (menu bar must have them)
  • Rebinding sacred shortcuts
  • Fixed-size windows for content that could reflow
  • Hardcoded colors / fonts
  • Transplanting iOS 17pt body directly — feels too large on Mac
  • Shipping Intel-only binaries on Apple Silicon era
  • Direct distribution without notarization → silent Gatekeeper fail for users

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.