One adapter, both Next routers (App or Pages) — and base-path aware:
// Pages Router? Flip one option — the adapter then drives// next/compat/router instead of next/navigation:<GlyphnavProviderrouterMode="pages">…</GlyphnavProvider>// Served under a base path? Pass it so commit: 'after' stays accurate:<GlyphnavProviderbasePath="/glyphnav/next">…</GlyphnavProvider>
Every entry point accepts the same options object:
<GlyphnavProviderduration={250}// total animation time (ms), spread over all frameseffect="scramble"// 'decode' grows + resolves; 'scramble' bursts, then locks randomlycommit="before"// navigate instantly, animate on top ('after' = classic order)routerMode="app"// 'app' (next/navigation) or 'pages' (next/compat/router)scope="tail"// animate only the part that differs from the current pathanimatePopState// also animate browser back/forward (opt-in)>
Served under the /next base path via Next's basePath; the App Router performs the real navigation while glyphnav animates the bar. The title link is a plain anchor (full page load back to the picker).