Page titles and window chrome
Where Kumo destination titles live, why pages do not repeat them inline, and the checklist that catches regressions.
Kumo uses the macOS toolbar / navigation title as the primary page title surface. Detail pages should not repeat the same title as a large heading inside the content area.
Rule
Every top-level destination should expose its title through ContentView navigation chrome. The page content should begin with the first meaningful control, summary card, form section, table, or empty state.
Do not add a duplicate in-page large title such as:
Text("Proxies")
.font(.largeTitle.bold())The shared KumoPage(title:) wrapper keeps the title argument for call-site readability, but it must not render that title as content. It is a content layout wrapper, not a second title bar.
Rationale
macOS windows already provide a clear title region in the unified toolbar. Repeating the same destination name inside the page consumes vertical space, weakens hierarchy, and makes card-heavy pages feel like a nested sheet under a separate heading.
Exceptions
Use an in-page heading only when it names a subsection that is not already represented by the window or navigation title. Section headings inside Form, Table, cards, and grouped controls remain appropriate.
Checklist
Before shipping a new or refactored page:
- The destination title is visible in the toolbar / navigation chrome.
- The content area does not repeat the same title as a large heading.
KumoPage(title:)is not used as a reason to render a second page title.- Empty states still provide their own state-specific title, such as
No Proxy Groups.
Testing and quality
Current test surface, verification commands, coverage gaps, quality rules, and the manual QA checklist Kumo expects before a release.
Menu bar status item
How Kumo's persistent menu bar icon is structured, what its menu must expose, and the visual rules that keep it consistent with macOS.