The content was capped at max-w-3xl, so a wide window showed one narrow
strip and a lot of empty space. SettingsColumns lays a page's groups out as
one column on a phone or narrow window and two side by side from xl up;
the page cap moves to 100rem so the columns don't stretch on a very wide
screen.
- Account: Android app, Profile and Password, with Signed-in devices beside.
- Playback: "Between tracks" (crossfade) beside "Volume leveling".
- Connections: ListenBrainz beside Subsonic apps.
- Appearance, Notifications, About: one column's width.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- /settings lands on Account: the Android app, profile, password, signed-in
devices. Then Playback, Appearance, Notifications, Connections, About.
- Each setting is a row (name, one short line, control at the end) in a
capped-width column; one-of-N choices are a shared Segmented control.
- Collection and Settings share one SectionRail.
- Connections leads ListenBrainz with a status line: not connected,
connected and not sending, or sending with the last scrobble's age.
- Notifications prints its column labels once; the digest email's
settings link points at /settings/notifications.
- #5596: the profile form now loads what is stored and sends only the
fields that changed. It used to start blank, and the server reads a
blank as "clear", so one Save wiped the display name and email.
- Recommendation metrics moves to Library › Your listening, and Hidden
tracks gets a Library tab.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>