Add user setting for content display width (Full / Comfortable / Compact) #7
Problem
The main content column currently uses a single fixed layout width (main { max-width: 1120px } in shark.css). On typical screens this fills most of the viewport, which is good for diffs and file trees, but for reading-heavy pages (issues, READMEs, settings) it can feel too wide. Users have no way to adjust this.
Proposal
Add a per-user display setting "Content width" on the settings page with three presets:
| Preset | Width | Intended use |
|---|---|---|
| Full | 100% of the current layout width | Diffs, code browsing, wide tables (current behavior, default) |
| Comfortable | 85% | Balanced reading width |
| Compact | 70% | Focused reading, large monitors |
Implementation notes
- Persist the choice on the user account (new column via Flyway migration), expose it in
SettingsResourcealongside the existing settings form. - Apply the preset as a class or CSS custom property on
<body>/maininlayout.html, scaling the existingmax-width(e.g.--content-scale: 1 / 0.85 / 0.7). - Default for existing and new users: Full (no visual change until a user opts in).
- Setting applies to logged-in users only; anonymous visitors keep the default.
Acceptance criteria
- [ ] Settings page offers Full / Comfortable / Compact and saves the selection.
- [ ] Selected width applies on all pages after save, across sessions.
- [ ] Default remains the current full layout width.
- [ ]
docs/users/updated to describe the setting.