VIEWS

One route model across every target

Dowe lowers pages and shared layouts once, then generates web, desktop, Android, and iOS navigation from the same route graph.

Page scroll starts at the top

Changing to another page without a fragment resets the page viewport after rendering. A fragment moves directly to its validated section instead.

Shared layouts stay in place

The router preserves shared layout state and independent layout scrollers, including long Sidebar navigation, while only the page viewport resets.

PLATFORM ROUTES

Choose the root experience for each target

Add platform to a group when the same path needs a different layout and page on web, desktop, Android, or iOS. Dowe filters the route graph during compilation, so target-specific screens do not ship as runtime branches.

dowe
import LandingLayout from "@/views/layouts/landing-layout"
import AuthLayout from "@/views/layouts/auth-layout"
import LandingPage from "@/views/pages/landing-page"
import LoginPage from "@/views/pages/login-page"

views RouteViews
  group path:"/" layout:LandingLayout platform:"web"
    route path:"" page:LandingPage
  group path:"/" layout:AuthLayout platform:["desktop","ios","android"]
    route path:"" page:LoginPage

One or many targets

Use one quoted value or an array containing web, desktop, android, and ios. Omitting platform keeps the entry available everywhere.

Groups filter descendants

A group applies its platform set to its layout and direct routes. A route may use platform again to narrow that set.

Paths stay deterministic

The same canonical path is valid for disjoint platform sets. Compilation fails if two entries claim that path for the same target.