Saga Filters Placement
Saga · Prototype · Round 1 · October 10, 2026 · Apple sprint (#373) · #442

Where Filters go when the bar shrinks

Round 1 (this page). The owner, 2026-10-10: "prototype other ways to expose the filters conveniently; in bottom right they look out of place on a long scrolled page when the bar has shrunk and they are in the same spot." Covers Explore and Library's Filters and Sort, and Swipe's moon, Filters and Sort.
Built on the pocket capsule (Saga Toolbar, #423) and the Liquid Glass Sprint Review (#442): glass only on floating chrome, one material at the bottom of the screen, tick() on every tap like Swipe, drawn glass on web and Android.

Today on iPhone

The real app: ios/review at 25717998 (the pocket capsule and the 460 ms fold), iPhone 17 Pro simulator, staging, the smoke account.

Explore at rest: Filters and Sort above the full tab bar
Explore, at rest. Filters and Sort sit over the bar's right end.
Explore scrolled far down: the bar is a small centered capsule, Filters and Sort still at the right edge
Explore, deep-scrolled. The bar has shrunk to the center; the two buttons are still at the right edge, over the posters. This is the complaint.
Library at rest: shelves at the top, Filters and Sort at the bottom right
Library. Shelves at the top right, the same two buttons at the bottom right.
Swipe open in Tonight: moon, Filters and Sort above the bar, the Narrow it down tip
Swipe, open, Tonight. Moon, Filters, Sort, and Tonight's one tip.
Swipe folded: the card fills the screen, the collapsed capsule below
Swipe, folded. The row has gone into the card's ⋯; the bar is the collapsed capsule.

What all three share

Rest stays as it is

  • At rest nothing moves: Filters and Sort stay in thumb reach over the full bar (owner, 2026-10-07 and 10-08). Each option only changes what happens once the bar collapses.
  • The bar's rules are unchanged: it collapses after 12 pt down once 48 pt in, and expands on 24 pt up, at the top, on a tap on the bar, or on a tab change.
  • Filters on looks the same everywhere: ember, with Filters' own count badge.

Motion and feel

  • Lists: the bar's 340 ms CHISEL. Swipe: 460 ms FOLD, card and bar together. The row's fade is 220 ms; tab names go in 180 ms and come back after 55% of the move.
  • Haptics: tick() on every tap; nothing on motion you didn't ask for.
  • Reduce Motion: places and sizes jump, with a 120 ms cross-fade. Reduce Transparency: solid granite.

Access and platforms

  • VoiceOver: the bar never collapses while it runs (tabBarCanCompact), so A and C keep today's two buttons there. B's dock follows the scroll, so it docks with VoiceOver on too.
  • Web, 768 px and wider: the bar never collapses, so A and C look like today; B docks at every width.
  • Android and web phones: drawn glass, a ripple on Android, hover on web.

1 · Try it

Scroll Explore or Library down until the bar shrinks, then scroll back up. On Swipe, drag or tap the card to fold, and tap the card's ⋯ to open the row again. Tap Filters, Sort or the moon to open their sheets. The chip at the top right shows the haptic the phone would play.

2 · Every state, side by side

The same moment in each option, at the same size, in the material chosen above.

How they compare

OptionScrolled, filters onReach while scrolledTo Filters / Sort, scrolledSwipeVoiceOverWeb and AndroidShips and cost
A · Joins the barEmber circle with its count, beside the capsuleBottom, in thumb reach1 tap / 2 taps (tap the bar, then Sort)Fold sends the moon and Sort into the same circle; the card's ⋯ still opens the whole rowToday's two buttons (bar stays expanded)Two drawn glass pieces side by side on phones; wide web unchangedOver the air About 1–2 days: a trailing slot in AppTabBar that FilterBar fills while its screen is focused
B · Docks at the topThe filters in words, ember, at the topTop, out of thumb reach1 tap / 1 tapUnchanged (the card takes the logo's slot)Docks too; first after the status barDocks at every widthOver the air About 2 days: a top dock on the section strip's pattern, plus a words summary; an exception to the no-chips rule
C · Steps asideA count in the corner of the selected tabHidden; one flick up brings it back2 moves / 2 movesToday's fold, plus the count on Swipe's tabToday's two buttons (bar stays expanded)Same rule on phones; wide web unchangedOver the air About half a day: the row follows the bar instead of the scroll; a count on the lens

My recommendation

A, Filters joins the bar. It fixes what the owner saw: on a long page, Filters stops floating at the right edge and sits on the capsule's own line, at its height, as one centered group. That's the iOS 26 shape of a tab bar with one round button beside it. Filters stays one tap away at any depth, and when filters are on the circle stays ember with its count, so a filtered grid always says so. Swipe folds into the same circle, so the three tabs finally match when collapsed. It ships over the air and needs no new component: FilterBar's FoldingSlot does the fold and Glass draws the circle.

What it costs: Sort takes two taps while the bar is collapsed (Sort is used far less than Filters). On Swipe, the circle and the card's ⋯ both lead to Filters. Before it goes to the phone, measure the native glass group's merge in a Release build (docs/performance.md); if it drops frames, draw the circle as its own glass beside the capsule instead of merging.

Not B: it's the only option that names the filters in words, but it moves the controls out of thumb reach and back to the top, which the owner reversed on 2026-10-07, and it breaks the no-chips rule. Not C as the main answer: it's the cheapest and the calmest, but Filters takes two moves on a long page and a count on a tab is easy to miss or read as a notification. If A's glass group costs frames, ship C first.