Proxies page scroll container
Why the Proxies card list owns a single full-page ScrollView, and the regression checklist that keeps that layout intact.
The Proxies page uses a card-heavy, scroll-first layout. The proxy group cards must read as one continuous full-page content region, not as a nested card sheet under a separate in-page title.
Rule
When proxy groups are available, the Proxies page must use a single full-page ScrollView for the proxy group card list.
Do not wrap the populated state in KumoPage(title:) with a nested scroll view. That structure makes only the card region appear to have the full-page background/shadow treatment. Also do not add an in-page Text("Proxies") heading; the destination title belongs to the toolbar / navigation chrome.
Current Pattern
ProxiesView keeps the empty state on KumoPage(title:), because the empty state should stay centered in the available page space.
For the populated state, scrollContent owns the whole page:
ScrollView {
LazyVStack(spacing: 18) {
// Proxy group cards
}
.padding(.bottom, 8)
}
.contentMargins(.horizontal, 24, for: .scrollContent)
.contentMargins(.top, 24, for: .scrollContent)
.contentMargins(.bottom, 32, for: .scrollContent)
.scrollEdgeEffectStyleIfAvailable()
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)Visual Requirements
- The region should fill the detail pane horizontally and vertically.
- The first proxy group card must align with the standard 24 pt page margin.
- The bottom content margin should leave breathing room after the last card.
- The empty state may continue using the shared
KumoPagewrapper. - The page must follow Page Titles and Window Chrome.
Regression Checklist
Before shipping changes to ProxiesView, verify:
- There is no
KumoPage(title: "Proxies")wrapping the populated card list. - There is no duplicate in-page
Proxieslarge title. - Scrolling uses the full-page content region, not a nested card-only scroll area.
- The card background/shadow treatment visually covers the whole populated content region.
- Search in the toolbar does not change the container hierarchy.