Tighten Settings sidebar width and restore its top inset#375
Merged
Conversation
Three knobs were pulling against each other after the recent Settings redesign work: - The sidebar `navigationSplitViewColumnWidth` had been doubled to 480/520/640. With the window's `minWidth` of 1180pt, the .balanced split style was shrinking the sidebar back below 240pt to keep the detail pane usable — which still truncated "Apple Intelligence" to "Apple Intell…". - The previous clear-color top spacer was removed, so the first sidebar row snapped to the toolbar baseline while the detail pane's grouped Form kept its own ~20pt top inset. The two columns visually disagreed about where content begins. - The window's `minWidth: 1180` was sized for the doubled sidebar; with the sidebar tightened back down the detail pane was just oversized. Bring the column range back to 220/240/280 (fits the longest label without forcing .balanced to compress), reintroduce the inset as a `.safeAreaInset(edge: .top)` so it lives outside scroll content, and drop the container `minWidth` to 780pt so the detail pane is sized to its actual content.
| // longest label. The previous 1180pt floor came from an earlier sidebar experiment that | ||
| // doubled column widths; with the sidebar tightened back down, that floor leaves the | ||
| // detail pane oversized for the actual content. | ||
| .frame(minWidth: 780, minHeight: 560) |
Contributor
There was a problem hiding this comment.
Undocumented minHeight reduction
minHeight drops from 720 pt to 560 pt alongside the minWidth change, but this isn't called out in the PR description's rollout notes. At 560 pt the window is fairly compact — if any detail pane adds taller content in a follow-up (e.g. a form with more rows), users who have the window pinned to minimum height would see truncation without a scroll view guarding the pane. Worth noting explicitly in the rollout notes and keeping in mind for future pane expansions.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Settings window had three pieces pulling against each other after the recent redesign work, producing the symptoms in the bug report (sidebar cut at the top, "Apple Intelligence" truncated, detail pane oversized). This PR tightens the sidebar column range back down to fit the longest label, reintroduces a small top inset so the first sidebar row aligns with the detail pane's first card, and drops the window's
minWidthso the detail pane is sized to its actual content.Validation
User requested skipping local CI on this one. Diff is two files, three pure layout-knob changes; no behavior or logic touched.
Risk / rollout notes
.balancedsplit style now has room to honor the ideal..safeAreaInset(edge: .top)so it stays outside the scroll content and never overlaps a row when scrolling.Greptile Summary
Three layout constants are adjusted to fix a regression where the Settings sidebar showed truncated labels and misaligned top insets:
minWidthdrops from 1180 pt to 780 pt, sidebar column range narrows from 480/520/640 to 220/240/280, and a 12 ptsafeAreaInsetis added to align the first sidebar row with the detail pane's top inset.SettingsContainerView.swift:minWidthreduced to 780 pt andminHeightreduced from 720 pt to 560 pt; the prior 1180 pt floor was a leftover from a wider sidebar experiment.SettingsSidebarView.swift: Column width range tightened to 220/240/280 to match the longest label ("Apple Intelligence"), and a 12 ptColor.clearsafe-area inset is added at the top so the first sidebar row visually aligns with the detail pane's groupedForminset.Confidence Score: 4/5
Safe to merge — all changes are pure layout constants with no behavioral impact.
Both files only touch frame dimensions and a safeAreaInset modifier. The safeAreaInset API is available since macOS 13 and the project targets macOS 14, so there is no availability concern. The one thing worth keeping an eye on is the minHeight drop from 720 to 560 pt — it is not called out in the PR rollout notes and could bite future pane expansions if they add taller content.
No files require special attention; the minHeight reduction in SettingsContainerView.swift is worth documenting for future reference.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[SettingsContainerView\nminWidth: 780pt, minHeight: 560pt] --> B[NavigationSplitView\n.balanced] B --> C[SettingsSidebarView\ncol: 220 / 240 / 280 pt] B --> D[Detail Pane\n~500 pt available] C --> E[.safeAreaInset top 12pt\nColor.clear overlay] C --> F[List rows\nFirst row aligned with detail Form] D --> G[GeneralPane / EnginePaneView\n/ AppleIntelligencePaneView / ...]Reviews (1): Last reviewed commit: "Tighten Settings sidebar width and resto..." | Re-trigger Greptile