From 0e432128f5de8db3d3d602c06a1de0e0cd6eaeda Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 12:33:11 +0100 Subject: [PATCH 1/8] Add React Native 0.86 release blog post Covers edge-to-edge improvements on Android 15+, DevTools light/dark mode emulation, deprecations, and other changes including JSI API additions, networking fixes and accessibility improvements. --- website/blog/2026-06-10-react-native-0.86.mdx | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 website/blog/2026-06-10-react-native-0.86.mdx diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx new file mode 100644 index 00000000000..da6846c0d8b --- /dev/null +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -0,0 +1,146 @@ +--- +title: 'React Native 0.86 - Edge-to-Edge and DevTools Improvements, no breaking changes' +authors: [fabriziocucci, zoontek, gabrieldonadel] +tags: [announcement, release] +date: 2026-06-10 +--- + +# React Native 0.86 - Edge-to-Edge and DevTools Improvements, no breaking changes + +Today we are excited to release React Native 0.86! + +This release includes comprehensive edge-to-edge support on Android 15+ and performance tracing improvements in React Native DevTools. + +Following 0.83, this is the second React Native release with no user-facing breaking changes, reflecting our continued commitment to making upgrades more predictable and seamless. + +### Highlights + +- [Edge-to-Edge on Android](/blog/2026/06/10/react-native-0.86#edge-to-edge-on-android) +- [React Native DevTools: Performance Tracing](/blog/2026/06/10/react-native-0.86#react-native-devtools-performance-tracing) + +{/* truncate */} + +## Highlights + +### Edge-to-Edge on Android + +React Native 0.86 ships comprehensive fixes for Android 15+ edge-to-edge mode, where the system enforces edge-to-edge display even when apps don't explicitly opt in. + +Key fixes include: + +- **`measureInWindow`** now returns correct coordinates when edge-to-edge is enabled. +- **`KeyboardAvoidingView`** works correctly on Android 15+ with `edgeToEdgeEnabled`. +- **`Dimensions`** window values are accurate on Android versions prior to 15 when edge-to-edge is enabled. +- **`StatusBar`** now supports updating status bar style and visibility while a Modal is open. +- **Navigation bar** contrast respects the theme's `enforceNavigationBarContrast` attribute. + +React Native now also handles edge-to-edge correctly when it's enforced by the OS (Android 15+) but not explicitly enabled via the `edgeToEdgeEnabled` Gradle property. + +### React Native DevTools: Performance Tracing + +React Native DevTools now support **light/dark mode emulation** via `Emulation.setEmulatedMedia`, allowing you to test your app's appearance mode handling directly from the DevTools without changing your device settings. + +## Breaking Changes + +React Native 0.86 has **no user-facing breaking changes**. + +If you are on React Native 0.85, you should be able to upgrade your app to React Native 0.86 without any changes to your app code. + +To learn more about what we consider a breaking change, have a look at [this article](/docs/releases/versioning-policy#what-is-a-breaking-change). + +## Deprecations + +The following APIs have been removed and are due for removal in a future release of React Native: + +- **`ViewUtil.getUIManagerType`**: As part of the removal of the legacy architecture, this API is now deprecated. You can inline `UIManagerType.Fabric` directly or remove the checks on the UIManagerType altogether. +- **`AppRegistry`**: The second argument of `AppRegistry.setComponentProviderInstrumentationHook` is now deprecated and will warn if used. + +## Other Changes + +### Runtime & Web Spec Alignment + +- **`ExceptionsManager.reportErrorsAsExceptions` strictness**: Setting `reportErrorsAsExceptions` to anything other than `false` no longer does anything. Previously, any falsy value (like `0`, `null`, or `""`) would disable error-to-exception conversion. Now only the explicit boolean `false` opts out, making the API less error-prone. +- **`PerformanceObserver` default `durationThreshold`**: `observe({type: 'event'})` now correctly defaults `durationThreshold` to 104ms per the W3C Event Timing spec, instead of reporting all events. This aligns React Native's Performance API with web standards and reduces noise from very short events. + +### Rendering, Layout & Animation + +- **Modal Components `style` prop**: The `style` prop is now forwarded to Modal's inner container View, allowing custom styling (e.g., padding, background colors) without overriding `transparent` or `backdropColor` behavior. +- **Animated mounting layer sync**: Enabled a mounting layer synchronization so Native Animated synchronous updates are not overridden by later React commits. This fixes a flicker where animated views could briefly jump back to their pre-animation values. +- **Text measurement crash**: Fixed a crash when measuring text on a surface that had already been stopped. +- **Non-invertible transform touch fix**: Views with non-invertible transforms (e.g., `scaleX: 0` or `scaleY: 0`) no longer receive touches on Android or iOS. Hit-testing now detects when a transform matrix can't be inverted and skips those views. +- **Yoga Layout fixes**: Fixed several layout regressions related to Yoga such as text wrapping in absolutely positioned elements on Android ([#56651](https://github.com/facebook/react-native/pull/56651)), a crash with Android's `BoringLayout.isBoring()` with a negative width ([#56007](https://github.com/facebook/react-native/pull/56007)) and fixed ownership of nodes with `display: contents` nodes ([#56422](https://github.com/facebook/react-native/pull/56422)). + +### Accessibility + +- **Unresolved promises**: Fixed `AccessibilityInfo.isDarkerSystemColorsEnabled`, `isHighTextContrastEnabled` and `prefersCrossFadeTransitions` returning promises that never resolved on unsupported platforms. They now resolve to `false` instead of hanging indefinitely. + +### Infrastructure & Dependencies + +- **Metro `^0.84.2`**: Updated Metro bundler dependency. +- **`HeadlessJsTaskSupportModule` auto-registration**: This module is now registered in the `CoreReactPackage`, so apps that use headless JS tasks on Android no longer need to ensure this module is manually registered. + +### JSI (Native Interface) + +New JSI APIs added to make the C++ interface between native modules and the JS engine more capable: + +- **`IRuntime` interface**: Makes previously protected `Runtime` methods public, enabling new JSI functionality without cascading interface versions. +- **`TypedArray` / `Uint8Array`**: First-class support for typed arrays, including creation, buffer access, offset and length queries. +- **`ArrayBuffer.detached`**: Check whether an `ArrayBuffer` has been detached. +- **`Array.push`**: Append elements to arrays (previously array size was immutable after creation). +- **`String.length`**: Get string length in UTF-16 code units without converting to a full string. +- **`isInteger`**: Check if a `jsi::Value` is an integer without calling into the runtime. +- **Error creation APIs**: Factory methods for all standard JS error types (`TypeError`, `RangeError`, `ReferenceError`, `SyntaxError`, `EvalError`, `URIError`). + +### Android Input & Navigation + +- **BackHandler event object**: `hardwareBackPress` events now pass an event object with a `timeStamp` property from the native event, enabling timing analysis and event correlation. Existing callbacks that ignore the argument are unaffected. +- **BackHandler resume fix on API 36+**: `BackHandler` callbacks stopped working after the app was resumed from the background on Android API 36+. The fix ensures the back button handler is properly re-registered during `onHostResume`. +- **LogBox/RedBox back button dismiss**: LogBox notification toasts and the inspector overlay can now be dismissed via the Android hardware back button. +- **TextInput `setAutoCapitalize` Samsung fix**: Fixed `setAutoCapitalize` stripping `TYPE_NUMBER_FLAG_SIGNED` and `TYPE_NUMBER_FLAG_DECIMAL` flags on Samsung keyboards, which prevented users from typing minus signs in numeric inputs. +- **TextInput/KeyboardAvoidingView IME height**: `KeyboardAvoidingView` and TextInput auto-scroll now respond correctly to IME height changes, such as toggling between the keyboard and emoji panel or when the predictive text bar appears. + +### Android Networking + +- **`OutOfMemoryError` handling**: `NetworkingModule` now correctly handles very large HTTP responses and will not OOM or crash. +- **WebSocket `Cookie` header**: `WebSocketModule` no longer strips a `Cookie` header passed via the WebSocket constructor's `headers` option, allowing authentication cookies to be sent over WebSocket connections. +- **Blob content provider with New Architecture**: The Blob content provider (used for `blob:` URLs to access binary data) now works correctly with the New Architecture. + +## Acknowledgements + +React Native 0.86 contains over 596 commits from 97 contributors. Thanks for all your hard work! + +{/* alex ignore special white */} + +We want to send a special thank you to those community members that shipped significant contributions in this release. + +- [Mathieu Acthernoene](https://github.com/zoontek) for edge-to-edge support on Android and StatusBar improvements +- [Rubén Norte](https://github.com/rubennorte) for React Native DevTools performance tracing +- [Jakub Piasecki](https://github.com/j-piasecki) for ShadowTree and Yoga fixes +- [Nick Gerleman](https://github.com/NickGerleman) for Text rendering fixes +- [Peter Abbondanzo](https://github.com/Abbondanzo) for LogBox, ScrollView and Image fixes + +Moreover, we also want to thank the additional authors that worked on documenting features in this release post: + +{/* TODO: Add blog post co-authors */} + +## Upgrade to 0.86 + +:::info + +0.86 is now the latest stable version of React Native and 0.83.x moves to unsupported. For more information see [React Native's support policy](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md). + +::: + +#### Upgrading + +Please use the [React Native Upgrade Helper](https://react-native-community.github.io/upgrade-helper/) to view code changes between React Native versions for existing projects, in addition to the [Upgrading docs](/docs/upgrading). + +#### Create a new project + +```sh +npx @react-native-community/cli@latest init MyProject --version latest +``` + +#### Expo + +For Expo projects, React Native 0.86 will be available as part of the `expo@canary` releases. From a88f7f766cf4f770c0d64fbc05871ddc24450dad Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 12:37:18 +0100 Subject: [PATCH 2/8] Add Rob Hogan to blog post authors --- website/blog/2026-06-10-react-native-0.86.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index da6846c0d8b..6031136d35b 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -1,6 +1,6 @@ --- title: 'React Native 0.86 - Edge-to-Edge and DevTools Improvements, no breaking changes' -authors: [fabriziocucci, zoontek, gabrieldonadel] +authors: [fabriziocucci, robhogan, zoontek, gabrieldonadel] tags: [announcement, release] date: 2026-06-10 --- From 274b9a74517d5de588c649ac24aea509b0cc3a02 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 12:39:49 +0100 Subject: [PATCH 3/8] Remove empty co-authors section --- website/blog/2026-06-10-react-native-0.86.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index 6031136d35b..8e56d359c26 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -119,10 +119,6 @@ We want to send a special thank you to those community members that shipped sign - [Nick Gerleman](https://github.com/NickGerleman) for Text rendering fixes - [Peter Abbondanzo](https://github.com/Abbondanzo) for LogBox, ScrollView and Image fixes -Moreover, we also want to thank the additional authors that worked on documenting features in this release post: - -{/* TODO: Add blog post co-authors */} - ## Upgrade to 0.86 :::info From 532a80cbaf0ee683f2f1c0e349e6f927a0686484 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 17:53:56 +0100 Subject: [PATCH 4/8] Add GitHub org migration notice and remove co-authors placeholder --- website/blog/2026-06-10-react-native-0.86.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index 8e56d359c26..d4db036d1b1 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -13,6 +13,12 @@ This release includes comprehensive edge-to-edge support on Android 15+ and perf Following 0.83, this is the second React Native release with no user-facing breaking changes, reflecting our continued commitment to making upgrades more predictable and seamless. +:::info + +As part of this release, the React, React Native, Metro, Yoga and React Native Website repositories are moving from the `facebook` GitHub organization to the `react` organization. GitHub will automatically redirect all existing URLs, issues and PRs to the new location. + +::: + ### Highlights - [Edge-to-Edge on Android](/blog/2026/06/10/react-native-0.86#edge-to-edge-on-android) From 2d4fe9a4240c7619293f6a47ecfcb0b99757d656 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 17:56:45 +0100 Subject: [PATCH 5/8] Address review comments: fix deprecation wording, deduplicate edge-to-edge intro, rename DevTools section, link to /releases --- website/blog/2026-06-10-react-native-0.86.mdx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index d4db036d1b1..c0537a2d06d 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -9,7 +9,7 @@ date: 2026-06-10 Today we are excited to release React Native 0.86! -This release includes comprehensive edge-to-edge support on Android 15+ and performance tracing improvements in React Native DevTools. +This release includes comprehensive edge-to-edge support on Android 15+ and improvements in React Native DevTools. Following 0.83, this is the second React Native release with no user-facing breaking changes, reflecting our continued commitment to making upgrades more predictable and seamless. @@ -22,7 +22,7 @@ As part of this release, the React, React Native, Metro, Yoga and React Native W ### Highlights - [Edge-to-Edge on Android](/blog/2026/06/10/react-native-0.86#edge-to-edge-on-android) -- [React Native DevTools: Performance Tracing](/blog/2026/06/10/react-native-0.86#react-native-devtools-performance-tracing) +- [React Native DevTools Improvements](/blog/2026/06/10/react-native-0.86#react-native-devtools-improvements) {/* truncate */} @@ -30,7 +30,7 @@ As part of this release, the React, React Native, Metro, Yoga and React Native W ### Edge-to-Edge on Android -React Native 0.86 ships comprehensive fixes for Android 15+ edge-to-edge mode, where the system enforces edge-to-edge display even when apps don't explicitly opt in. +React Native 0.86 ships comprehensive fixes for Android 15+ edge-to-edge mode, including when it's enforced by the OS but not explicitly enabled via the `edgeToEdgeEnabled` Gradle property. Key fixes include: @@ -40,9 +40,7 @@ Key fixes include: - **`StatusBar`** now supports updating status bar style and visibility while a Modal is open. - **Navigation bar** contrast respects the theme's `enforceNavigationBarContrast` attribute. -React Native now also handles edge-to-edge correctly when it's enforced by the OS (Android 15+) but not explicitly enabled via the `edgeToEdgeEnabled` Gradle property. - -### React Native DevTools: Performance Tracing +### React Native DevTools Improvements React Native DevTools now support **light/dark mode emulation** via `Emulation.setEmulatedMedia`, allowing you to test your app's appearance mode handling directly from the DevTools without changing your device settings. @@ -56,7 +54,7 @@ To learn more about what we consider a breaking change, have a look at [this art ## Deprecations -The following APIs have been removed and are due for removal in a future release of React Native: +The following APIs have been deprecated and are due for removal in a future release of React Native: - **`ViewUtil.getUIManagerType`**: As part of the removal of the legacy architecture, this API is now deprecated. You can inline `UIManagerType.Fabric` directly or remove the checks on the UIManagerType altogether. - **`AppRegistry`**: The second argument of `AppRegistry.setComponentProviderInstrumentationHook` is now deprecated and will warn if used. @@ -129,7 +127,7 @@ We want to send a special thank you to those community members that shipped sign :::info -0.86 is now the latest stable version of React Native and 0.83.x moves to unsupported. For more information see [React Native's support policy](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md). +0.86 is now the latest stable version of React Native and 0.83.x moves to unsupported. For more information see [React Native's support policy](/releases). ::: From 8919384bd70e456d5f0da08ba6ac3d2e48762edc Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 18:01:59 +0100 Subject: [PATCH 6/8] Expand GitHub org migration into a dedicated section with React Foundation link --- website/blog/2026-06-10-react-native-0.86.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index c0537a2d06d..a86adbe752f 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -13,11 +13,11 @@ This release includes comprehensive edge-to-edge support on Android 15+ and impr Following 0.83, this is the second React Native release with no user-facing breaking changes, reflecting our continued commitment to making upgrades more predictable and seamless. -:::info +### A New Home for React Native -As part of this release, the React, React Native, Metro, Yoga and React Native Website repositories are moving from the `facebook` GitHub organization to the `react` organization. GitHub will automatically redirect all existing URLs, issues and PRs to the new location. +As part of this release, the React, React Native, Metro, Yoga and React Native Website repositories are moving from the `facebook` GitHub organization to the `react` organization. This move reflects the transition of React and React Native to the [React Foundation](https://react.foundation/), an independent foundation dedicated to the long-term stewardship of the React ecosystem. -::: +GitHub will automatically redirect all existing URLs, issues and PRs to the new location, so no action is required on your part. ### Highlights From f93ec50847b81992ec1890c59aec3c20145a052c Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 19:47:14 +0100 Subject: [PATCH 7/8] Move 'A New Home for React Native' into Highlights section --- website/blog/2026-06-10-react-native-0.86.mdx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index a86adbe752f..91ba1670932 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -13,14 +13,9 @@ This release includes comprehensive edge-to-edge support on Android 15+ and impr Following 0.83, this is the second React Native release with no user-facing breaking changes, reflecting our continued commitment to making upgrades more predictable and seamless. -### A New Home for React Native - -As part of this release, the React, React Native, Metro, Yoga and React Native Website repositories are moving from the `facebook` GitHub organization to the `react` organization. This move reflects the transition of React and React Native to the [React Foundation](https://react.foundation/), an independent foundation dedicated to the long-term stewardship of the React ecosystem. - -GitHub will automatically redirect all existing URLs, issues and PRs to the new location, so no action is required on your part. - ### Highlights +- [A New Home for React Native](/blog/2026/06/10/react-native-0.86#a-new-home-for-react-native) - [Edge-to-Edge on Android](/blog/2026/06/10/react-native-0.86#edge-to-edge-on-android) - [React Native DevTools Improvements](/blog/2026/06/10/react-native-0.86#react-native-devtools-improvements) @@ -28,6 +23,12 @@ GitHub will automatically redirect all existing URLs, issues and PRs to the new ## Highlights +### A New Home for React Native + +As part of this release, the React, React Native, Metro, Yoga and React Native Website repositories are moving from the `facebook` GitHub organization to the `react` organization. This move reflects the transition of React and React Native to the [React Foundation](https://react.foundation/), an independent foundation dedicated to the long-term stewardship of the React ecosystem. + +GitHub will automatically redirect all existing URLs, issues and PRs to the new location, so no action is required on your part. + ### Edge-to-Edge on Android React Native 0.86 ships comprehensive fixes for Android 15+ edge-to-edge mode, including when it's enforced by the OS but not explicitly enabled via the `edgeToEdgeEnabled` Gradle property. From 6b2911e397bda5010282fcedfcdba0a874f6914d Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 9 Jun 2026 19:51:13 +0100 Subject: [PATCH 8/8] Reword repo migration intro --- website/blog/2026-06-10-react-native-0.86.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/blog/2026-06-10-react-native-0.86.mdx b/website/blog/2026-06-10-react-native-0.86.mdx index 91ba1670932..142f317dfe2 100644 --- a/website/blog/2026-06-10-react-native-0.86.mdx +++ b/website/blog/2026-06-10-react-native-0.86.mdx @@ -25,7 +25,7 @@ Following 0.83, this is the second React Native release with no user-facing brea ### A New Home for React Native -As part of this release, the React, React Native, Metro, Yoga and React Native Website repositories are moving from the `facebook` GitHub organization to the `react` organization. This move reflects the transition of React and React Native to the [React Foundation](https://react.foundation/), an independent foundation dedicated to the long-term stewardship of the React ecosystem. +The React Native repository, together with React, Metro, Yoga and the React Native Website, has moved from the `facebook` GitHub organization to the `react` organization. This move reflects the transition of React and React Native to the [React Foundation](https://react.foundation/), an independent foundation dedicated to the long-term stewardship of the React ecosystem. GitHub will automatically redirect all existing URLs, issues and PRs to the new location, so no action is required on your part.