React 19.3 Makes View Transitions and Fragment Refs Official

React 19.3 shipped on 9 September, and it is a minor version in the strict sense, no breaking changes, which is exactly why the two features it stabilises matter. The ViewTransition component and Fragment Refs move from experimental to fully supported, after a long stretch where teams either avoided them in production or shipped them behind a flag.
ViewTransition wraps the browser's native View Transition API, letting elements animate as they enter, exit, move or resize whenever a state update runs inside startTransition, a Suspense boundary resolves, or useDeferredValue triggers an update. The appeal is that the animation logic lives close to the state change that causes it, rather than being bolted on separately with a third party animation library trying to guess when a layout shift is about to happen.
Fragment Refs solve a smaller but more commonly hit problem: working with a group of DOM children without wrapping them in an extra element just to get a ref onto something. A ref on a Fragment now exposes focus, focusLast, blur, addEventListener, IntersectionObserver and ResizeObserver support, and getClientRects, covering most of the reasons a wrapper div used to get added purely for measurement or event handling.
Two smaller additions are worth knowing about. A new browser only API lets a component suspend during server rendering and pick up once it reaches the client, useful for anything that genuinely cannot run without a browser environment. React DOM also adds Trusted Types support, closing off a class of DOM based XSS vector for teams already using Trusted Types policies elsewhere in their stack.
For a studio building interactive sites rather than just marketing pages, the real win is fewer wrapper elements and fewer animation libraries fighting React's own rendering rather than working with it. Stabilising features that were already in wide informal use, plenty of teams were already running ViewTransition behind the experimental flag before this release, mostly means removing a caveat from documentation rather than changing how anyone builds. That is not a small thing. It is the difference between recommending a pattern to a client with a footnote and recommending it without one.