Skip to content

feat(settings): tabs in a column on the left - #97

Merged
Wasabules merged 1 commit into
mainfrom
settings-side-tabs
Oct 27, 2026
Merged

Wasabules merged 1 commit into
mainfrom
settings-side-tabs

Conversation

@Wasabules

Copy link
Copy Markdown
Owner

Settings had six tabs across the top of a 520 px dialog: each label was squeezed, and the dialog changed height with every tab.

What changes

  • The tabs run down the left of the dialog, and the body takes the rest of the width.
  • The dialog is wider: 860 px, and at most 95% of the window.
  • It keeps one fixed height (680 px, at most 88% of the window), so the tab list does not move when you change tab. The body scrolls.
  • Below 700 px wide, the tabs go back above the body. This only happens in the web demo on a phone: the app's window is at least 900 px wide.
  • The tab list is built from one array. It has tablist/tab roles, and the up and down arrows move along it.
  • The .tab class and the tab order are unchanged, so the screenshot scenes still find them.
  • The Background and Backups screenshots are regenerated.

Checked

  • svelte-check --fail-on-warnings: no errors or warnings.
  • Every tab, in both themes, through the screenshot bridge.

Six tabs across a 520 px dialog left each one a narrow label, and the
dialog changed height with every tab. The tabs now run down the left of
a wider dialog (860 px, 95% of the window at most) of one fixed height,
so the list stays put and the body gets the width of a desktop screen.
Below 700 px, the demo on a phone, they go back above the body.

The tab list is built from one array, with tablist/tab roles and the
up and down arrows moving along it. The Background and Backups
screenshots are regenerated.
@Wasabules
Wasabules merged commit e729f09 into main Oct 27, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant