Slide a crowded nav instead of crushing its options

Featurekamo-internal
Shipped
August 12, 2026 at 8:40 PM UTC
Author
kamo
Commit
c1093bd

Pinning more options than a nav can show squeezed the tiles out of shape: both strips were raw overflow boxes and the tiles are flex children with no flex-shrink of their own, so the top bar distorted them (and hid its scrollbar outright, swallowing options with no sign they existed) while the rail drew a 12px scrollbar over its own gradient. Both navs now render their movable options through NavOverflowScroller: tiles keep their footprint, end arrows and a soft edge fade in only on the side that still has something to reach, and the strip can be paged, held, wheeled, thrown with momentum, or dragged. The current page's option is scrolled back into view on arrival, and the top bar's fixed chrome no longer shares the shortfall with the one child that can absorb it. Dragging an option and sliding the strip are the same gesture on a crowded nav, so a crowded nav puts rearranging behind a short hold. That hold withholds the mousedown from dnd-kit rather than using its `delay` constraint: the delay constraint activates on the timer alone and dnd-kit suppresses the click of any press that reaches activation, which would have stopped every slightly-slow click on a nav option from navigating.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing