Skip to content

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.

Surface 2: full desktop app (NSWindow / main workspace)

Column 2 of the surface table, checked 2026-10-25. Verdicts as in Surface 1: Apple, Convention, Fix. Liquid Glass details (inset sidebar, glass toolbar, concentric corners) are in macOS design language.

Cell by cell

Dimension Table says Verdict What to build
Philosophy Deep workspace for sustained work Apple HIG Windows: the primary window "presents the main navigation and content of an app".
Window anatomy Unified title bar + toolbar, 3 traffic lights, sidebar + canvas + inspector Apple NavigationSplitView + .inspector; toolbar items in glass groups on 26. HIG: "Avoid creating custom window UI"; avoid critical actions in a bottom bar.
Sizing min 800 × 550, resizable, full screen, Split View, Stage Manager Apple (behavior) / Convention (numbers) HIG: "Make sure that your windows adapt fluidly to different sizes." No Apple minimum; pick one where the sidebar plus a readable canvas still fit (800 × 550 is reasonable). Use the system full screen (toggleFullScreen), which handles the camera housing. Default windowResizability for a WindowGroup is contentMinSize.
Focus Stays open behind other apps; ⌘W closes window, ⌘Q quits Apple HIG Keyboards: ⌘W "Close the active window", ⌘Q "Quit the app". Whether closing the last window quits is a choice: utility apps usually stay running. Restore windows on relaunch (HIG Launching).
Materials Sidebar material for navigation; opaque window background for canvas Apple On 26 the sidebar is Liquid Glass, and the HIG says "Don't use Liquid Glass in the content layer": the canvas stays an opaque system background.
Typography Body 13–14, section titles 17–22 bold, sidebar 13 Apple (close) HIG macOS: Body 13, Title 2 17, Title 1 22, Large Title 26. Use text styles, not 14 pt body; sidebar rows take the system size automatically.
Controls Tables, split views, toolbars, segmented controls, inspectors, multi-select Apple Standard toolkit. HIG Context Menus: support context menus on every item, consistently.
Keyboard Full menu bar (File, Edit, View, Window, Help), ⌘1/2/3, ⌘F Apple HIG The menu bar: support the system menus in order, keep items visible (disable, don't hide), use standard shortcuts. ⌘F = Find; ⌥⌘F jumps to the search field; ⌃⌘F = full screen. ⌘1…9 for sidebar sections is a common convention.
Drag & drop Drag in from Finder, reorder with springs, drag back out Apple HIG Drag and drop: support it everywhere, offer menu alternatives, allow undo, let people drag to the Finder in a format you can reopen, badge multi-item drags.
Audio/video AVKit player, scrubbing, Space play/pause, J/K/L, export queue Apple (AVKit) / Convention (J/K/L) AVPlayerView gives standard controls. J/K/L is a pro-editor convention, only for editing apps.
Alerts Sheets attached to the window; empty states with illustration + CTA Apple NSAlert.beginSheetModal(for:) runs the alert as a sheet. HIG Alerts: use sparingly, not for undoable actions, never at launch. HIG Sheets: one at a time, reasonable size, brief.
Context menu Right-click everywhere; Space = Quick Look Apple HIG Context Menus: short, most-used first, no shortcuts shown in them, hide (not dim) unavailable items. Quick Look via QLPreviewPanel / .quickLookPreview.
Motion 200–300 ms spatial continuity, springs Convention Use system animations; HIG Motion: avoid motion on frequent interactions, respect Reduce Motion.
Performance Lazy lists, background work, App Nap Apple LazyVStack / List, work off the main actor, and ProcessInfo.beginActivity only around work that must not nap.
Dock .regular: Dock icon, badge, Dock menu, ⌘Tab Apple HIG Dock menus: high-value items (open windows, a few actions), also available elsewhere.

What the table leaves out

  • State restoration: reopen windows where people left them (HIG Launching).
  • Undo: every edit, drop and delete undoable (HIG Undo and redo); this is what lets you skip confirmation alerts.
  • No app-only appearance setting (HIG Dark Mode) and test with Increase Contrast and Reduce Transparency.

Sources