← Back to all briefs
React55s read

React 19.3: ViewTransition Goes Stable and browser() Opts Components Out of SSR

React 19.3 stabilizes `<ViewTransition>`, which drives enter, exit, move, and resize animations via the browser's View Transition API without a flag, and adds `browser()` from `react-dom` for components that should not render on the server.

React 19.3 makes <ViewTransition> stable, out of experimental, so it ships without a flag. It drives enter, exit, move, and resize animations via the browser's View Transition API, and React picks the animation, defaulting to a cross-fade. Fragment Refs are stable too.

The trigger rule has teeth: only updates inside startTransition, a <Suspense> reveal, or useDeferredValue animate. Call setState directly and nothing transitions. addTransitionType labels a transition's cause, so forward and back navigation can animate differently from the same state change, and React exposes each type as a browser view transition type, so you can scope animations in CSS with :active-view-transition-type(...).

Fragment Refs yield one FragmentInstance covering a group of children, so a single IntersectionObserver or ResizeObserver replaces a ref per child. browser() is a first-class API for client-only rendering: use(browser()) suspends on the server but not after hydration, and it can be called conditionally. The post gives neither browser() nor addTransitionType a stability label.

Wrap the state update that changes the view in startTransition, and reach for addTransitionType when two triggers need different motion. If you reach for typeof window to keep a component off the server, browser() does that without the guard. If you ship a require-trusted-types-for CSP, note that React no longer coerces values with '' + value before DOM injection, so TrustedHTML values survive.

React60s read

React Server Components: The Mental Model Shift You Need

RSCs flip the traditional component model on its head. Components now run on the server by default, client interactivity becomes opt-in. Here's what changes for how you think about data fetching, bundle size, and composition.

1 source