We're excited to release React Native Windows 0.85.0 targeting React Native 0.85!
This release is built on React Native 0.85.3.
This release includes the commits to React Native Windows from 04/01/2026 – 10/19/2026.
Requirements
- Visual Studio 2026 is required for RNW 0.85: Upgrade to Visual Studio 2026 (#16170)
- Projects now build against .NET 10: Upgrade projects to .NET 10 (#16226)
- Upgraded to Windows App SDK 1.8 (1.8.260508005): Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 (#16225)
⚠️ Breaking Changes & Upgrade Notes
- New Architecture only — the legacy architecture has been removed; apps on the old architecture must migrate to Fabric / the New Architecture: Enable RCT_REMOVE_LEGACY_ARCH (#16157)
CORE_ABIremoved —react-native-win32andMicrosoft.ReactNativeare now closer in functionality; code depending onCORE_ABIgating needs review: Remove CORE_ABI and bring rnwin32 and MS.RN much closer in functionality (#16079)- WebSocket internals unified — the legacy
WinRTWebSocketResourceandJSBigStringResourceDllwere removed; internal, but custom native forks touching these may need updates: Remove old WinRTWebSocketResource implementation (#16229), Remove JSBigStringResourceDll, and unify WebsocketResource (#16159)
✨ New Features & Enhancements
- Adds
hideTitleBarandhideBorderprops to Modal: Add hideTitleBar and hideBorder to Modal (#16108) - Implements
outlinestyle properties on View: Implement outline properties on view (#16074) - Adds
onAuxClickevent support: Add onAuxClick event (6ca3cc9) - Adds ability to make TurboModules eager init: Add ability to make TurboModules eager init (#16093)
- Shows tooltip on keyboard focus and enforces a single visible tooltip: Show tooltip on keyboard focus, enforce single visible tooltip (#16123)
- Exposes
ReactNativeWindowfromReactNativeWin32App: Expose ReactNativeWindow from ReactNativeWin32App (#16214)
🔧 Reliability & Stability
Text & input
- Fixes text input scaling with different screen scales: Fix: text input scaling with different screen scales (#16288)
- Fixes Unicode text length calculation: fix: Unicode Text length Calculation (#16219)
- Fixes multiline TextInput crash from
TxDrawD2Dreentrancy: Fix multiline TextInput crash from TxDrawD2D reentrancy (#16003) - Fixes x86 assert when using custom align: Fix assert in x86 when using custom align (#16152)
Touch, pointer & ScrollView
- Improves touch event handling reliability and performance: Fix touch event handling, improve reliability, and optimize performance (#16048)
- Fixes ScrollView Pressables stuck / dead tap on high-DPI displays: Fix ScrollView Pressables stuck and dead tap on high-DPI displays (#16140)
- Fixes ScrollView keyboard scroll drift on long key press: Fix ScrollView keyboard scroll drift on long key press (#15988)
- Cancels zombie touch state on ScrollView pointer-capture loss: fix: cancel zombie touch state on ScrollView pointer capture loss (#16100), fix: cancel active touches in onPointerCaptureLost (#16086)
- Uses
IsPrimary()for touch pointerisPrimary: fix: use IsPrimary() for touch pointer isPrimary instead of hardcoded id (#16099) - Maps Windows touch pointer IDs to small JS-safe identifiers: fix: map Windows touch pointer IDs to small JS-safe identifiers in CompositionEventHandler (#16081)
Rendering & views
- Fixes some issues with rounded borders: Fix some issues with rounded borders (#16051)
- Fixes Image not consistently re-rendering on source change: Image does not consistently rerender on image source change (#16107)
- Fixes null dereference in
get_SelectionContainerwhen no selection container exists: fix: null dereference in get_SelectionContainer (#16091) - Fixes Modal title bar contrast when the native window is inactive: Fix inactive Modal title bar contrast (#16449)
Accessibility
- Raises UI Automation selection events when
accessibilityState.selectedchanges: Raise UIA events for selection changes (#16447)
Runtime & stability
- Fixes crash attempting to get runtime when shutting down instance: Fix crash attempting to get runtime when shutting down instance (#16238)
- Fixes race condition that can cause the callinvoker to get a null runtime: Race condition can cause the callinvoker to get a null runtime (#16186)
- Fixes WebSocket
binaryTypehandling for binary messages: fix: WebSocket binaryType handling (#16173)
⚡ Performance
- Text rendering performance improvement: Text rendering perf improvement (#16083)
🧰 CLI & Templates
run-windowscan start Metro on a custom port: fix: allow run-windows to start Metro on custom port (#16126)- More consistent template config between ship/debug builds: Update template to have more consistent config between ship/debug (#16165)
- Template imports
Microsoft.Cpp.Default.propsbefore settingReactNativeWindowsDir: Template should import Microsoft.Cpp.Default.props before setting ReactNativeWindowsDir (#16146) - NativeModule templates work with clang: Fix NativeModule templates to work with clang (#15917)
Also includes routine dependency updates (boost 1.84, hermes-windows, PowerShell 7) and CI/build infrastructure improvements. Full changelog: 0.84-stable...0.85-stable.