Historical archive
This page records a dated plan, audit, or research context, not a current product contract. Project status distinguishes current source behavior, published releases, and unfinished acceptance gates.
macOS GUI design research (2026-10-18)¶
Four parallel research passes, run after the first Summon Activity window was judged "looks like shit"
on a real Mac. The goal: raise the bar for every plugin's menu bar item, panel and window, and feed the
results into the MacUX skill. Each report cites its sources; claims marked (observed) or [obs] /
[inferred] / [Ours] were not fetched from a page and need checking before they become law.
| Report | What it covers | Became |
|---|---|---|
| 01-menubar-apps.md | Stats, CodexBar, Itsycal, Ice (code read), iStat Menus, Dato, Lungo, Fantastical, 1Password, Things, Raycast, CleanShot, Tailscale | MacUX/MenuBarItem.md |
| 02-hig-tahoe-golden-gate.md | Current HIG text, Liquid Glass two-layer model, macOS 26 Tahoe and macOS 27 Golden Gate changes, type scale, SF Symbols 7, app icons | MacUX/Windows.md, Principles.md |
| 03-menubar-and-window-mechanics.md | MenuBarExtra limits, NSStatusItem + NSPanel, live status item, bringing a window to the front from an accessory app, Settings, chrome APIs, glass gating, upside-down text |
MacUX/MenuBarItem.md, Windows.md, Gotchas |
| 04-activity-and-agent-ui.md | Console, Activity Monitor, Xcode reports, Linear, Things, Raycast, Superhuman, Tower, Warp, Cursor, Claude desktop, Codex, Conductor | MacUX/ActivityFeeds.md |
The five findings that matter most¶
- Status lives in the chrome, not in cards. Native windows show state in the toolbar, subtitle or a bottom strip, and show problems only when there are any. A grid of rounded tiles reads as a web dashboard (04 §1, §3).
- Glass is the control layer only. Never on rows, cards or detail. Use system containers
(
NavigationSplitView, toolbar,List,Form) and get Tahoe and Golden Gate right for free; hand-drawn glass breaks when Apple changes the look, as it did between 26 and 27 (02 §1, §2). - An accessory app's window opens behind other apps by design (macOS 14+ cooperative activation).
Switch to
.regular, activate, open, then raise the window fromviewDidMoveToWindow; fall back to the deprecatedactivate(ignoringOtherApps:)(03 §3). MenuBarExtra(.window)stops early. No programmatic open, no right-click menu, no live label, no animated resize. A menu bar app that needs any of these usesNSStatusItem+ a nonactivatingNSPanel(03 §1, §2).- A feed is a worklist, not a log. Every row has a verb-first title, one primary action on ↵, a context menu and a ⌘K entry; undo scales from instant ⌘Z to a preview sheet that says what it cannot restore (04 §3).