On full document navigations between layout screens, keep the sidebar and topbar visually stable so the page does not blank out as a whole. Navigation stays a normal same-origin page load: a new Wicket page, new Ajax callback URLs, and new WebSocket observers. This is not SPA-style content swapping.
Pair chrome with CSS view-transition-name on the existing .sidebar and .topbar classes (already unique on LayoutPage). Do not add HTML ids for this, and do not use Wicket markup ids.
Honor prefers-reduced-motion: reduce by disabling the effect.
Unsupported browsers keep current behavior (progressive enhancement). Firefox does not ship cross-document view transitions yet; Chromium 126+ and Safari 18.2+ do.
Out of scope
Fetch-and-swap or innerHTML replacement of #content / #main
Click interception and History API as a router
Server-side AbstractAjaxBehavior to render another page into the current one
Naming .side-info or .main (those classes are duplicated or unstable and skip the whole transition)
Goal
On full document navigations between layout screens, keep the sidebar and topbar visually stable so the page does not blank out as a whole. Navigation stays a normal same-origin page load: a new Wicket page, new Ajax callback URLs, and new WebSocket observers. This is not SPA-style content swapping.
Requirements
@view-transition { navigation: auto; }).view-transition-nameon the existing.sidebarand.topbarclasses (already unique onLayoutPage). Do not add HTMLids for this, and do not use Wicket markup ids.prefers-reduced-motion: reduceby disabling the effect.Out of scope
innerHTMLreplacement of#content/#mainAbstractAjaxBehaviorto render another page into the current one.side-infoor.main(those classes are duplicated or unstable and skip the whole transition)onedev.server.history.pushState(already same-document)Constraints
SimplePage(login and similar) has no sidebar or topbar..sidebarand.topbaralready use CSStransition: all … ease; that must not fight view-transition snapshots.window.locationfallbacks, POSTs, and some redirects will not.Acceptance criteria
LayoutPagescreens in supporting browsers keep sidebar and topbar from blanking out with the rest of the documentview-transition-namevalues (in particular, do not name.side-infoor nested.main)prefers-reduced-motion: reducedisables the effect