Install
pnpm add @bridge-stack/svelte-tunnelRender markup from deep in your tree into a distant outlet. No prop drilling. No global DOM hacks.
Content mounted here travels to the outlet below.
pnpm add @bridge-stack/svelte-tunnelimport { tunnel } from '@bridge-stack/svelte-tunnel';
const Portal = tunnel();
<Portal.Out />
<Portal.In>Hello</Portal.In>Keep content next to the logic that owns it, while rendering into headers, toast trays, drawers, or any shared chrome.
Each tunnel() call returns a matched In / Out pair scoped to that instance.
Last-wins for menus and tabs, or stack every In for toasts and trays.
Built with runes, snippets, and mount / unmount. No extra runtime.