Skip to content

Library: store tabs at the top of the page - #557

Merged
125hz merged 1 commit into
willfaust:mainfrom
125hz:feat/library-store-tabs
Nov 4, 2026
Merged

125hz merged 1 commit into
willfaust:mainfrom
125hz:feat/library-store-tabs

Conversation

@125hz

@125hz 125hz commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

With several stores signed in, the library page is one long run of sections (Steam, the games you added, GOG, itch.io, Epic, EA). This adds a row of tabs at the top of the page, above the Desktop button: All, then one tab per section the page shows (Steam, Other, GOG, itch.io, Epic, EA). Each tab shows only that store's section; All is the page as before.

  • Only stores with a section on the page get a tab, so a store that is off never shows an empty one; with fewer than two sections there are no tabs. The chosen tab is remembered, and a tab that is no longer offered falls back to All.
  • The row is the system segmented control; when it does not fit the width it becomes a row of capsules that scrolls sideways. Nothing is added to the tab bar at the bottom.
  • With Group by Platform only: Last played, Installed and None already mix every store into one list.
  • The original page and the zoomable grid (LibraryGridPage) show the same tabs and sections.
  • env.MADEIRA_LIBRARY_TABS = 0 puts every section back on one page (config catalog + docs/LIBRARY.md).

Tests: check-library-sections/zoom/groups updated for the new source lines, plus new checks for the tabs. Device-tested in the 0.2.0 tree (ui-1103 build).

🤖 Generated with Claude Code

With several stores signed in, the library page was one long run of
sections: Steam, the games you added, GOG, itch.io, Epic, EA. A row of
tabs now sits at the top of the page, above the Desktop button: All,
then one tab for each section the page shows (Steam, Other, GOG,
itch.io, Epic, EA). Each tab shows only that store's section; All is
the page as before. Only stores with a section on the page get a tab,
so a store that is turned off never shows an empty one, and with fewer
than two sections there are no tabs. The chosen tab is remembered; a
tab that is no longer offered falls back to All.

The row is the system's segmented control (the same one as Sort by in
Settings); when the segments do not fit the width it becomes a row of
capsules that scrolls sideways. Nothing is added to the tab bar at the
bottom. The tabs appear with Group by Platform only: Last played,
Installed and None already mix every store into one list.

The original page and the zoomable grid (LibraryGridPage) show the same
tabs and the same sections; the grid rebuilds when the tab changes.
env.MADEIRA_LIBRARY_TABS = 0 puts every section back on one page.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
125hz added a commit that referenced this pull request Nov 4, 2026
With several stores signed in, the library page was one long run of
sections: Steam, the games you added, GOG, itch.io, Epic, EA. A row of
tabs now sits at the top of the page, above the Desktop button: All,
then one tab for each section the page shows (Steam, Other, GOG,
itch.io, Epic, EA). Each tab shows only that store's section; All is
the page as before. Only stores with a section on the page get a tab,
so a store that is turned off never shows an empty one, and with fewer
than two sections there are no tabs. The chosen tab is remembered; a
tab that is no longer offered falls back to All.

The row is the system's segmented control (the same one as Sort by in
Settings); when the segments do not fit the width it becomes a row of
capsules that scrolls sideways. Nothing is added to the tab bar at the
bottom. The tabs appear with Group by Platform only: Last played,
Installed and None already mix every store into one list.

The original page and the zoomable grid (LibraryGridPage) show the same
tabs and the same sections; the grid rebuilds when the tab changes.
env.MADEIRA_LIBRARY_TABS = 0 puts every section back on one page.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@125hz
125hz merged commit 0e2f01e into willfaust:main Nov 4, 2026
1 check 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