A Tauri-first design system: thumb-first components with Metro-style pivot navigation, frosted bottom nav, and tap-again confirmations, on a CSS-variable token pipeline. Hardened across nine shipping apps before extraction.
Combine an internal ref with a forwarded one.
Touch pull-to-refresh that coexists with tab swipes and overscroll-behavior: none.
Respect the user's reduced-motion preference in JS-driven motion.
Double-tap the nav item for the page you are already on to bring the top and the active tab back into view, then to go to the page's start.
Move focus to the main content on route change, so keyboard and screen-reader users land in the new page.
Vertical edge-fade masks for a height-capped scrollable panel; returns the CSS class to apply.
Scroll metrics (thumb size, position, visibility) that drive ScrollIndicator.
Scroll the app's real scroll region – to the top on a first visit, back to where you left it on a return – whichever scroller the Layout chose.
Measures the active item in a tab-like container so one element can animate between items instead of the highlight jumping.
Watches a field's primary instance and reports when it scrolls out of view, so a HeaderStandIn can speak for it.
Swipe between tabs with an axis-locked touch gesture that flips direction under RTL.
Edge-fade masks for a horizontally overflowing tab strip; returns the CSS class to apply.
The theme engine: light, dark, system, and OLED, with persistence and theme-color meta kept in sync.
Names which way a sliding indicator is travelling, so each of its edges can take its own easing.