NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4008 most downloaded on npm
Babel plugin for React Native for Web
Last release 9 days ago
25 Sep 2026
Release timing varies
gaps range from 4 weeks to 11 months
Rarely documented
notes for 10 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
147 releases · first in 2017
Image : new onLoad , onLoadStart , onLoadEnd or onError callbacks (e.g. inline functions) no longer abort and restart the image load. Fixes #2850 . By
Image: new onLoad, onLoadStart, onLoadEnd or onError callbacks (e.g. inline functions) no longer abort and restart the image load. Fixes #2850. By @AbdullahAnsarii in #2851useColorScheme: the hook now subscribes once per component instead of on every render. Fixes #2848. By @huytdps13400 in #2853InputAccessoryView is now exported from the package entry. Fixes #2806.Full Changelog: 0.21.2...0.21.3
One column per quarter.
Modal: Significantly improve animation by @qwertychouskie in #2805
Full Changelog: 0.21.1...0.21.2
Full Changelog : 0.21.0...0.21.1
Full Changelog: 0.21.0...0.21.1
These are fixes but also potentially breaking changes.
These are fixes but also potentially breaking changes.
pointer-events: auto to children of elements using pointerEvents: 'box-none'.createPortal import from react-domFull Changelog: 0.20.0...0.21.0
[change] React 19 support. Note that findNodeHandle is no longer supported on web.
findNodeHandle is no longer supported on web.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[change] Deprecate Touchable* components. Use Pressable.
Best compatibility: react-native@>=0.71
createRoot support.Animated to support React 18, including new AnimatedColor node.ScrollView to Class component for React 18 support.'button' and 'paragraph' role to equivalent semantic HTML elements.aria-* props.role prop.id prop.tabIndex prop (only values 0 and -1).PointerEvent props.pointerEvents style.userSelect style.insetInline.)<Image> support for tintColor prop.<TextInput> support for enterKeyHint prop.<TextInput> support for inputMode prop.<TextInput> support for readOnly prop.<TextInput> support for rows prop.Touchable* components. Use Pressable.Button component. Use Pressable.StyleSheet.compose(). Use style array syntax.accessibility* props. Use aria-* and role props.nativeId prop. Use id prop.focusable props. Use tabIndex prop.pointerEvents prop. Use pointerEvents style.selectable prop. Use userSelect style.fontVariant style array values. Use space-separated string values.textAlignVertical style. Use verticalAlign style.transform style array values. Use space-separated string functions.<Image> style resizeMode. Use resizeMode prop.<Image> style tintColor. Use tintColor prop.<TextInput> prop keyboardType. Use inputMode prop.<TextInput> prop returnKeyType. Use enterKeyHint prop.<TextInput> prop editable. Use readOnly prop.<TextInput> prop numberOfLines. Use rows prop.BackHandler API.setNativeProps API.AppState.removeListener API.<Text> is position:relative by default.InteractionManager.Animated now works with compiled styles.textAlign.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
The deprecated accessible, accessibilityState, and accessibilityValue props have been removed.
StyleSheet.create() is now the identify function, returning the input style objects. Previously, it replaced styles with numeric ids. This improves compatibility with React Native, but accessing the returned style objects at runtime is still not recommended as it can prevent static extraction to CSS. (#2068)StyleSheet.getSheet() can be used on the server to retrieve the current style sheet as a CSS string. (#2196)I18nManager is now a mock API included only for compatibility with React Native. The ability to flip left/right properties or values has now been removed entirely (use start/end instead). See below for new localization APIs.StyleSheet.create().accessible, accessibilityState, and accessibilityValue props have been removed.:focus-visible polyfill has been removed, as by default modern browsers no longer show focus rings for pointer interactions.unstable_createElement API has changed. Children are no longer accepted as the 3rd argument, they must be included in the props as the 2nd argument. The 3rd argument is now an options object with a field to set the expected writing direction ({ writingDirection }).dir or lang prop on a component. By default, layouts are rendering RTL. To render RTL you must set dir="rtl" on an outer element rendered by React.useLocaleContext is a new export API. Use it to query a component's locale and writing direction context for fine-grained control over localized layout.StyleSheet.flatten cannot work with extracted styles. (See below for more details.)CheckBox and Switch elements. (#2242)Linking.openURL supports target value. (#2277)StyleSheet has been rewritten to better separate the runtime from the compiler. The performance of the new merging runtime is on par with using css-modules. The core runtime is a standalone package called styleQ; refer to the styleQ documentation for more details.
<img width="512" alt="image" src="https://user-images.githubusercontent.com/239676/159770600-a186ed95-9304-45d4-86b5-5511b3a234a5.png">
The performance of inline styles has also been significantly improved, although StyleSheet still has to perform extra work to transform non-standard React Native styles and polyfill logical styles.
<img width="512" alt="image" src="https://user-images.githubusercontent.com/239676/159771465-501c555b-17b4-426b-a397-81fbfd802661.png">
The StyleSheet import is now a standalone module. StyleSheet itself is a function that can be called to resolve styles to DOM className and style values, e.g.,
const [ className, inlineStyle ] = StyleSheet([ styles.root, prop.styles ])
One of the benefits behind the new architecture is that StyleSheet can resolve compiled styles that conform to the expected format, whether they are produced by the built-in compiler or an external source. However, this is not yet recommended, as explained below.
Style compilers must produce annotated objects that are treated as class name maps, and classes are de-duplicated based on whether they share the same key, e.g.,
{
$$css: true,
display: 'display-class',
opacity: 'opacity-class'
}
This is the first step towards allowing 3rd party tools to extract styles to static CSS files, and optionally dropping the client-side compiler, without needing to integrate deeply with the StyleSheet runtime or having to modify props/prop values in the source code, i.e., only the StyleSheet.create() call needs transforming by the compiler.
The existence of the StyleSheet.flatten() API is a problem for build-time compiling of some styles. Components that flatten styles (e.g., Animated, Image) expect to be able to work with the source styles, and use the source values at runtime. A compiler that aims to extract all styles and have no runtime transform would also need to disallow the use of StyleSheet.flatten() entirely. A future release of React Native for Web may remove use of StyleSheet.flatten from internal implementations, but cannot prevent this API from being used in product code or 3rd party packages.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Accessibility improvements and breaking changes to unstable APIs.
Accessibility improvements and breaking changes to unstable APIs.
accessibilityRole="menuitem". It no longer adds elements to the tab flow.View and Text with accessibilityRole="link". Only requires addition of href prop.unstable_createElement element-type inference using href. Fixes use with svg elements.unstable_createElement keyboard shim for onClick. It no longer invokes onClick during onKeyDown for keyboard interactions on elements that are not natively interactive.Pressable support for keyboard interactions if element is unmounted during interaction.ProgressBar & Switch rendering in Windows High Contrast modeText preserves white-space if numberOfLines={1}.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release includes Flow type exports, updates vendored modules, and miscellaneous bug fixes.
This release includes Flow type exports, updates vendored modules, and miscellaneous bug fixes.
Animated & VirtualizedList have been updated from React Native.Dimensions has changed the source of window dimensions and works more reliably in Safari.NativeEventEmitter no longer inherits from EventEmitter and does not include the removeSubscription method.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release introduces improved accessibility features and new documentation. It includes relatively minor breaking changes.
This release introduces improved accessibility features and new documentation. It includes relatively minor breaking changes.
I18nManager API has removed the isRTL and doLeftAndRightSwapInRTL properties. They must now be accessed using the getConstants() method, which returns an object with the same properties. This was an undocumented breaking change in a previous version of React Native.focusable prop now determines whether an element appears in the keyboard tab flow.hrefAttrs prop has been added to Text and View. The value is an object with rel, target, and download properties. This replaces the undocumented rel and target props.rel="noopener" to anchors has been removed.Linking.openURL(url) API now opens the url in new tab.Linking API now includes the addEventListener methods.importantForAccessibility prop has been removed. Use accessibilityHidden instead.data-focusable attribute has also been removed from rendered DOM nodes.disabled prop has been removed from View and Text; use accessibilityDisabled instead.onHoverIn and onHoverOut props.accessibility* props. The undocumented support for aria-* prop forwarding remains and will be removed in a future version.accessibilityRole values are mapped to HTML element equivalents.aspectRatio property is now available in browsers with support.accessible prop is deprecated and will be removed in the next minor release. React Native for Web will follow React Native for Windows/macOS in removing this prop. Use focusable instead.This release will include a rewrite of the documentation site and interactive examples.
The examples will be embedded in relevant pages via a Next.js-powered codesandbox, making it easy for people to fork the example app from their browsers.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →