You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browser support has been reduced. Changes as follows: Safari 10.1+, Edge (Chromium), no IE, no legacy Android browser.
Styles are inserted on module eval, not component render. This is needed to account for changes to rendering in React 18.
Style sheets rendered on the server will now include styles from all the eval-ed modules, rather than only the styles produced by the initial render.
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.
Inline styles are no longer automatically vendor-prefixed. This improves inline style performance and discourages use of inline styles. This should have little effect in practice if your app is predominantly using StyleSheet.create().
The deprecated accessible, accessibilityState, and accessibilityValue props have been removed.
The :focus-visible polyfill has been removed, as by default modern browsers no longer show focus rings for pointer interactions.
VirtualizedList, FlatList, and SectionList vendor components have been updated to match latest React Native. (#2241) Thanks to @DavidRieman.
The legacy jest preset and snapshot serializer has been removed from the npm package.
The 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 }).
New features
Localized LTR/RTL layouts can now be nesting to arbitrary depths simply by setting the 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.
Localized LTR/RTL layouts can be switched dynamically at runtime.
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.
Rendering into multiple windows and shadow roots in now supported. (#1517, #2138)
Extraction to static CSS and consumption of external CSS is now possible but not yet recommended. The StyleSheet runtime can consume any styles that match an expected format, but StyleSheet.flatten cannot work with extracted styles. (See below for more details.)
Fixes
Fixes static and dynamic shortform / longform deduplication. (#2007)
Display the focus ring on CheckBox and Switch elements. (#2242)
Prevent href navigation for disabled Pressables and Touchables. (#2299)
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.
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.
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.,
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.,
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.
Accessibility improvements and breaking changes to unstable APIs.
Breaking changes
Remove special treatment of elements with accessibilityRole="menuitem". It no longer adds elements to the tab flow.
Remove anchor element inference from View and Text with accessibilityRole="link". Only requires addition of href prop.
Remove unstable_createElement element-type inference using href. Fixes use with svg elements.
Remove unstable_createElement keyboard shim for onClick. It no longer invokes onClick during onKeyDown for keyboard interactions on elements that are not natively interactive.
Fixes
Fix Pressable support for keyboard interactions if element is unmounted during interaction.
Remove unnecessary CSS reset for input number spin buttons.
Fix ProgressBar & Switch rendering in Windows High Contrast mode
This release introduces improved accessibility features and new documentation. It includes relatively minor breaking changes.
Breaking changes
React 17 is a peer dependency.
The 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.
The focusable prop now determines whether an element appears in the keyboard tab flow.
The 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.
The automatic addition of rel="noopener" to anchors has been removed.
The Linking.openURL(url) API now opens the url in new tab.
The Linking API now includes the addEventListener methods.
The deprecated importantForAccessibility prop has been removed. Use accessibilityHidden instead.
The undocumented data-focusable attribute has also been removed from rendered DOM nodes.
The undocumented disabled prop has been removed from View and Text; use accessibilityDisabled instead.
New features
Pressable has added onHoverIn and onHoverOut props.
All ARIA properties are now supported via equivalent accessibility* props. The undocumented support for aria-* prop forwarding remains and will be removed in a future version.
Additional accessibilityRole values are mapped to HTML element equivalents.
CSS aspectRatio property is now available in browsers with support.
Deprecations
The 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.
Documentation
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.
This is a relatively small release that introduces a couple of new features and makes a change to the default flexBasis value of View. There are no breaking API changes and it should be straight-forward to upgrade from 0.13. Thank you to Twitter Engineering and everyone else who tested and helped to improve the 0.14 release.
Breaking changes
Default flex-basis value of Views
React Native has an implementation of flexbox that does not quite follow the W3C spec for flexbox. Previously, React Native for Web attempted to replicate the React Native rendering by setting flexBasis to 0%. However, this created its own problems where views could collapse down to 0px in height on the web. This patch sets the default flexBasis back to auto. This will occasionally cause different rendering inconsistencies with React Native, which can be addressed by making changes small to existing React Native styles to set the flexBasis back to 0% or the desired percentage. And ultimately, Yoga 2 intends to correct its flexbox implementation and this will make its way into React Native eventually.
A Modal implementation using CSS animations and ARIA, courtesy of @imnotjames. When the modal is open the rest of the app is hidden from screen readers via aria-modal. Focus is contained within the modal. When the Escape key is pressed, the onRequestClose function is called on the top-most modal.
The Pressable component state now includes hover, which scoped is scoped to a Pressable instance and does not bubble to ancestor Pressables. This behavior aligns with the behavior of the focus and press states.
This release includes many significant changes and improvements.
Modern React: implements components using function components and hooks. It removes use of various legacy React features such as legacy context and create-react-class. These changes mean better support for Concurrent Mode, Fast Refresh, and interaction handling.
Gesture Responder System: this has be rewritten from scratch in user space. Dozens of bugs have been fixed and the system is heavily unit tested; it's now the most accurate and well integrated implementation of any platform.
React Alternatives: this release removes the use of unstable React DOM APIs. React Native for Web can now be used with Preact and other libraries that are API compatible with React. However, it should be noted that benchmark rendering of 0.13 with React DOM is a lot faster than Preact.
Breaking changes
The Responder System has been rewritten. This should not be a breaking change (and comes with many bug fixes), but since the system is implemented in user-space rather than React, it may encounter differences in timings relative to the ReactDOM events.
The onPress callback on Touchables is now backed by native click events and will be called in almost every situation a native click event is called. The onPress prop of Touchable* components now receives a SyntheticMouseEventnot a SyntheticResponderEvent. It may be fired without a preceding onPressIn.
All the components are implemented as function components, so using findNodeHandle to get a reference to the component's underlying host node will not work. Use ref instead. The findNodeHandle and findDOMNode APIs are discouraged and are not safe with function components or concurrent mode.
The forwardedRef props have been removed. The ref on a component will now return a ref to the host node, which has the imperative methods attached to it.
The hitSlop prop has been removed. This caused incorrect hit targets for mouse interactions. The browser's built-in touch hitslop will be relied on instead.
The prop types of each component are now explicit. Unknown props will not be forwarded to the underlying React DOM component.
Forwarding of data-* props is no longer supported. Use dataSet instead. For example, dataSet={{ someName: 1 }}.
The onLayout prop now requires a ResizeObserver polyfill to work, and does not fallback to window resize events.
Removed React Native APIs that have been removed or deprecated: TabBarIOS, TimePickerAndroid
Removed support for HTML microdata props. Microdata has been removed from the HTML spec.
Removed the accessibilityRelationship prop. This prop was not added to React Native. Continue using aria-* props for now.
New features
Added View support for accessibilityValue.
Added the Pressable component.
Add the Appearance API and useColorScheme hook.
Fixes
The active touch responder will now be terminated when the body scrolls, context menu appears, etc.
Performance improvements for Touchables.
The onPress event can now be used to preventDefault the native click behavior (this is no longer done automatically)
Fixes Image support for variable resolution images (requires bundler integration).
Fixes TextInput support for onContentSizeChange to allow auto-grow textareas.
Fixes the correctness of setting styles using ref.setNativeProps. Recommend avoiding this API as it is expected to be deprecated in React Native.
This release includes compatibility with the vast majority of React Native v0.60. React features like createContext and forwardRef have been integrated, as well as several breaking changes from upstream. In most cases, you should be able to update smoothly if not using components and APIs deprecated in React Native.
Breaking changes
createElement is renamed to unstable_createElement and is an unstable implementation detail for now (d4b9f35)
Remove prop types exports from package. These are deprecated in React Native and introduce significant DEV time performance cost. Flow types are now preferred (1ad1693)
Remove the following exports which are all deprecated or removed in React Native core: AsyncStorage, AlertIOS, ActionSheetIOS, CameraRoll, DatePickerAndroid, DatePickerIOS, ImageEditor, ImagePickerIOS, ImageStore, ListView, MaskedViewIOS, NavigatorIOS, NetInfo, PickerIOS, ProgressBarAndroid, ProgressViewIOS, PushNotificationsIOS, SegmentedControlIOS, Slider, SnapshotViewIOS, StatusBarIOS, SwipeableListView, ToolbarAndroid, VibrationIOS, ViewPagerAndroid, WebView.
Hydrating SSR markup is now an explicit opt-in via options passed to AppRegistry.runApplication (afb8d3b)
Remove placeholderTextColor from unstable_createElement props. Instead, this is now exposed as a style property (287251a)
Update Switch prop types to latest from React Native (aa8593b)
New features
The following exports have been updated to align with React Native: Animated, Touchable, TouchableHighlight, TouchableOpacity, TouchableWithoutFeedback, FlatList, SectionList, VirtualizedList, VirtualizedSectionList.
Add support for accessibilityRelationship and accessibilityState props (d57fb6e)
Add support for native "thin" scrollbars (e0412ac)
Add support for forwardedRef on Text and View; use this instead of findNodeHandle to get a reference to the native element. (React has deprecated findDOMNode in Strict Mode, and you can anticipate the same happening to findNodeHandle.)
Add a disabled prop to TextInput to support disabling the element (fc033a3)
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.11.3
chore(deps): update dependency babel-plugin-react-native-web to v0.11.4
May 21, 2019
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.11.4
chore(deps): update dependency babel-plugin-react-native-web to v0.11.5
Jul 13, 2019
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.11.5
chore(deps): update dependency babel-plugin-react-native-web to v0.11.6
Aug 10, 2019
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.11.6
chore(deps): update dependency babel-plugin-react-native-web to v0.11.7
Aug 18, 2019
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.11.7
chore(deps): update dependency babel-plugin-react-native-web to v0.12.1
Feb 19, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.12.1
chore(deps): update dependency babel-plugin-react-native-web to v0.12.2
Mar 15, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.12.2
chore(deps): update dependency babel-plugin-react-native-web to v0.13.1
Jul 1, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.13.1
chore(deps): update dependency babel-plugin-react-native-web to v0.13.3
Jul 10, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.13.3
chore(deps): update dependency babel-plugin-react-native-web to v0.13.8
Aug 25, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.13.8
chore(deps): update dependency babel-plugin-react-native-web to v0.14.5
Oct 28, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.14.5
chore(deps): update dependency babel-plugin-react-native-web to v0.14.8
Nov 28, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.14.8
chore(deps): update dependency babel-plugin-react-native-web to v0.14.9
Dec 8, 2020
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.14.9
chore(deps): update dependency babel-plugin-react-native-web to v0.14.10
Jan 6, 2021
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.14.10
chore(deps): update dependency babel-plugin-react-native-web to v0.14.11
Feb 2, 2021
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.14.11
chore(deps): update dependency babel-plugin-react-native-web to v0.14.13
Feb 9, 2021
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.0
chore(deps): update dependency babel-plugin-react-native-web to v0.19.1
Mar 27, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.1
chore(deps): update dependency babel-plugin-react-native-web to v0.19.4
Apr 17, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.4
chore(deps): update dependency babel-plugin-react-native-web to v0.19.5
Jun 16, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.5
chore(deps): update dependency babel-plugin-react-native-web to v0.19.6
Jun 28, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.6
chore(deps): update dependency babel-plugin-react-native-web to v0.19.7
Jul 20, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.7
chore(deps): update dependency babel-plugin-react-native-web to v0.19.8
Aug 24, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.8
chore(deps): update dependency babel-plugin-react-native-web to v0.19.9
Sep 20, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.9
chore(deps): update dependency babel-plugin-react-native-web to v0.19.10
Dec 25, 2023
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.10
chore(deps): update dependency babel-plugin-react-native-web to v0.19.11
Apr 22, 2024
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.11
chore(deps): update dependency babel-plugin-react-native-web to v0.19.12
May 22, 2024
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.12
chore(deps): update dependency babel-plugin-react-native-web to v0.19.13
Oct 17, 2024
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.19.13
chore(deps): update dependency babel-plugin-react-native-web to v0.20.0
Apr 3, 2025
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.20.0
chore(deps): update dependency babel-plugin-react-native-web to v0.21.0
Jul 25, 2025
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.21.0
chore(deps): update dependency babel-plugin-react-native-web to v0.21.1
Aug 21, 2025
renovatebot
changed the title
chore(deps): update dependency babel-plugin-react-native-web to v0.21.1
chore(deps): update dependency babel-plugin-react-native-web to v0.21.2
Oct 16, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.11.2→0.21.2Release Notes
necolas/react-native-web (babel-plugin-react-native-web)
v0.21.2Compare Source
What's Changed
New Contributors
Full Changelog: necolas/react-native-web@0.21.1...0.21.2
v0.21.1Compare Source
Full Changelog: necolas/react-native-web@0.21.0...0.21.1
v0.21.0Compare Source
v0.20.0: 0.20Compare Source
React 19 support
findNodeHandleis no longer supported on web.Fixes
v0.19.13Compare Source
v0.19.12Compare Source
v0.19.11Compare Source
v0.19.10Compare Source
v0.19.9Compare Source
v0.19.8Compare Source
v0.19.7Compare Source
v0.19.6Compare Source
v0.19.5Compare Source
v0.19.4Compare Source
v0.19.3Compare Source
v0.19.2Compare Source
v0.19.1Compare Source
v0.19.0: 0.19Compare Source
Best compatibility:
react-native@>=0.71React 18 support
createRootsupport.Animatedto support React 18, including newAnimatedColornode.ScrollViewto Class component for React 18 support.New features
'button'and'paragraph'role to equivalent semantic HTML elements.aria-*props.roleprop.idprop.tabIndexprop (only values0and-1).PointerEventprops.pointerEventsstyle.userSelectstyle.insetInline.)<Image>support fortintColorprop.<TextInput>support forenterKeyHintprop.<TextInput>support forinputModeprop.<TextInput>support forreadOnlyprop.<TextInput>support forrowsprop.Deprecations
Touchable*components. UsePressable.Buttoncomponent. UsePressable.StyleSheet.compose(). Use style array syntax.accessibility*props. Usearia-*androleprops.nativeIdprop. Useidprop.focusableprops. UsetabIndexprop.pointerEventsprop. UsepointerEventsstyle.selectableprop. UseuserSelectstyle.fontVariantstyle array values. Use space-separated string values.textAlignVerticalstyle. UseverticalAlignstyle.transformstyle array values. Use space-separated string functions.<Image>styleresizeMode. UseresizeModeprop.<Image>styletintColor. UsetintColorprop.<TextInput>propkeyboardType. UseinputModeprop.<TextInput>propreturnKeyType. UseenterKeyHintprop.<TextInput>propeditable. UsereadOnlyprop.<TextInput>propnumberOfLines. Userowsprop.BackHandlerAPI.Breaking changes
setNativePropsAPI.AppState.removeListenerAPI.<Text>isposition:relativeby default.InteractionManager.Fixes
Animatednow works with compiled styles.textAlign.v0.18.12Compare Source
v0.18.11Compare Source
v0.18.10Compare Source
v0.18.9Compare Source
v0.18.8Compare Source
v0.18.7Compare Source
v0.18.6Compare Source
v0.18.5Compare Source
v0.18.4Compare Source
v0.18.3Compare Source
v0.18.2Compare Source
v0.18.1Compare Source
v0.18.0: 0.18Compare Source
Breaking changes
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)I18nManageris 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, andaccessibilityValueprops have been removed.:focus-visiblepolyfill has been removed, as by default modern browsers no longer show focus rings for pointer interactions.unstable_createElementAPI 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 }).New features
dirorlangprop on a component. By default, layouts are rendering RTL. To render RTL you must setdir="rtl"on an outer element rendered by React.useLocaleContextis a new export API. Use it to query a component's locale and writing direction context for fine-grained control over localized layout.StyleSheet.flattencannot work with extracted styles. (See below for more details.)Fixes
CheckBoxandSwitchelements. (#2242)Linking.openURLsupportstargetvalue. (#2277)Notes
StyleSheet runtime
StyleSheethas 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.The performance of inline styles has also been significantly improved, although
StyleSheetstill has to perform extra work to transform non-standard React Native styles and polyfill logical styles.The
StyleSheetimport is now a standalone module.StyleSheetitself is a function that can be called to resolve styles to DOMclassNameandstylevalues, e.g.,StyleSheet extraction
One of the benefits behind the new architecture is that
StyleSheetcan 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.,
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
StyleSheetruntime or having to modify props/prop values in the source code, i.e., only theStyleSheet.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 ofStyleSheet.flatten()entirely. A future release of React Native for Web may remove use ofStyleSheet.flattenfrom internal implementations, but cannot prevent this API from being used in product code or 3rd party packages.v0.17.7Compare Source
v0.17.6Compare Source
v0.17.5Compare Source
v0.17.4Compare Source
v0.17.3Compare Source
v0.17.2Compare Source
v0.17.1Compare Source
v0.17.0Compare Source
Accessibility improvements and breaking changes to unstable APIs.
Breaking changes
accessibilityRole="menuitem". It no longer adds elements to the tab flow.ViewandTextwithaccessibilityRole="link". Only requires addition ofhrefprop.unstable_createElementelement-type inference usinghref. Fixes use with svg elements.unstable_createElementkeyboard shim foronClick. It no longer invokesonClickduringonKeyDownfor keyboard interactions on elements that are not natively interactive.Fixes
Pressablesupport for keyboard interactions if element is unmounted during interaction.ProgressBar&Switchrendering in Windows High Contrast modeTextpreserves white-space ifnumberOfLines={1}.v0.16.5Compare Source
v0.16.4Compare Source
v0.16.3Compare Source
v0.16.2Compare Source
v0.16.1Compare Source
v0.16.0: 0.16Compare Source
This release includes Flow type exports, updates vendored modules, and miscellaneous bug fixes.
Breaking changes
Animated&VirtualizedListhave been updated from React Native.Dimensionshas changed the source ofwindowdimensions and works more reliably in Safari.NativeEventEmitterno longer inherits fromEventEmitterand does not include theremoveSubscriptionmethod.New features
v0.15.7Compare Source
v0.15.6Compare Source
v0.15.5Compare Source
v0.15.4Compare Source
v0.15.3Compare Source
v0.15.2Compare Source
v0.15.1Compare Source
v0.15.0Compare Source
This release introduces improved accessibility features and new documentation. It includes relatively minor breaking changes.
Breaking changes
I18nManagerAPI has removed theisRTLanddoLeftAndRightSwapInRTLproperties. They must now be accessed using thegetConstants()method, which returns an object with the same properties. This was an undocumented breaking change in a previous version of React Native.focusableprop now determines whether an element appears in the keyboard tab flow.hrefAttrsprop has been added toTextandView. The value is an object withrel,target, anddownloadproperties. This replaces the undocumentedrelandtargetprops.rel="noopener"to anchors has been removed.Linking.openURL(url)API now opens the url in new tab.LinkingAPI now includes theaddEventListenermethods.importantForAccessibilityprop has been removed. UseaccessibilityHiddeninstead.data-focusableattribute has also been removed from rendered DOM nodes.disabledprop has been removed fromViewandText; useaccessibilityDisabledinstead.New features
onHoverInandonHoverOutprops.accessibility*props. The undocumented support foraria-*prop forwarding remains and will be removed in a future version.accessibilityRolevalues are mapped to HTML element equivalents.aspectRatioproperty is now available in browsers with support.Deprecations
accessibleprop 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. Usefocusableinstead.Documentation
This release will include a rewrite of the documentation site and interactive examples.
https://necolas.github.io/react-native-web/
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.
v0.14.13Compare Source
v0.14.12Compare Source
v0.14.11Compare Source
v0.14.10Compare Source
v0.14.9Compare Source
v0.14.8Compare Source
v0.14.7Compare Source
v0.14.6Compare Source
v0.14.5Compare Source
v0.14.4Compare Source
v0.14.3Compare Source
v0.14.2Compare Source
v0.14.1Compare Source
v0.14.0Compare Source
This is a relatively small release that introduces a couple of new features and makes a change to the default
flexBasisvalue ofView. There are no breaking API changes and it should be straight-forward to upgrade from 0.13. Thank you to Twitter Engineering and everyone else who tested and helped to improve the 0.14 release.Breaking changes
Default flex-basis value of Views
React Native has an implementation of flexbox that does not quite follow the W3C spec for flexbox. Previously, React Native for Web attempted to replicate the React Native rendering by setting
flexBasisto0%. However, this created its own problems where views could collapse down to0pxin height on the web. This patch sets the defaultflexBasisback toauto. This will occasionally cause different rendering inconsistencies with React Native, which can be addressed by making changes small to existing React Native styles to set theflexBasisback to0%or the desired percentage. And ultimately, Yoga 2 intends to correct its flexbox implementation and this will make its way into React Native eventually.Fix #1640, #1604, #1264
New features
Modal implementation
A
Modalimplementation using CSS animations and ARIA, courtesy of @imnotjames. When the modal is open the rest of the app is hidden from screen readers viaaria-modal. Focus is contained within the modal. When the Escape key is pressed, theonRequestClosefunction is called on the top-most modal.Fix #1020
Pressable support for hover state
The
Pressablecomponent state now includeshover, which scoped is scoped to aPressableinstance and does not bubble to ancestor Pressables. This behavior aligns with the behavior of the focus and press states.Fix #1708
v0.13.18Compare Source
v0.13.17Compare Source
v0.13.16Compare Source
v0.13.15Compare Source
v0.13.14Compare Source
v0.13.13Compare Source
v0.13.12Compare Source
v0.13.11Compare Source
v0.13.10Compare Source
v0.13.9Compare Source
v0.13.8Compare Source
v0.13.7Compare Source
v0.13.6Compare Source
v0.13.5Compare Source
v0.13.4Compare Source
v0.13.3Compare Source
v0.13.2Compare Source
v0.13.1Compare Source
v0.13.0: 0.13Compare Source
This release includes many significant changes and improvements.
create-react-class. These changes mean better support for Concurrent Mode, Fast Refresh, and interaction handling.Breaking changes
onPresscallback on Touchables is now backed by nativeclickevents and will be called in almost every situation a nativeclickevent is called. TheonPressprop ofTouchable*components now receives aSyntheticMouseEventnot aSyntheticResponderEvent. It may be fired without a precedingonPressIn.findNodeHandleto get a reference to the component's underlying host node will not work. Userefinstead. ThefindNodeHandleandfindDOMNodeAPIs are discouraged and are not safe with function components or concurrent mode.forwardedRefprops have been removed. Therefon a component will now return a ref to the host node, which has the imperative methods attached to it.hitSlopprop has been removed. This caused incorrect hit targets for mouse interactions. The browser's built-in touch hitslop will be relied on instead.data-*props is no longer supported. UsedataSetinstead. For example,dataSet={{ someName: 1 }}.onLayoutprop now requires aResizeObserverpolyfill to work, and does not fallback to windowresizeevents.TabBarIOS,TimePickerAndroidaccessibilityRelationshipprop. This prop was not added to React Native. Continue usingaria-*props for now.New features
Viewsupport foraccessibilityValue.Pressablecomponent.AppearanceAPI anduseColorSchemehook.Fixes
The
onPressevent can now be used topreventDefaultthe native click behavior (this is no longer done automatically)Imagesupport for variable resolution images (requires bundler integration).TextInputsupport foronContentSizeChangeto allow auto-grow textareas.ref.setNativeProps. Recommend avoiding this API as it is expected to be deprecated in React Native.v0.12.3Compare Source
v0.12.2Compare Source
v0.12.1Compare Source
v0.12.0Compare Source
This release includes compatibility with the vast majority of React Native v0.60. React features like
createContextandforwardRefhave been integrated, as well as several breaking changes from upstream. In most cases, you should be able to update smoothly if not using components and APIs deprecated in React Native.Breaking changes
createElementis renamed tounstable_createElementand is an unstable implementation detail for now (d4b9f35)1ad1693)AsyncStorage,AlertIOS,ActionSheetIOS,CameraRoll,DatePickerAndroid,DatePickerIOS,ImageEditor,ImagePickerIOS,ImageStore,ListView,MaskedViewIOS,NavigatorIOS,NetInfo,PickerIOS,ProgressBarAndroid,ProgressViewIOS,PushNotificationsIOS,SegmentedControlIOS,Slider,SnapshotViewIOS,StatusBarIOS,SwipeableListView,ToolbarAndroid,VibrationIOS,ViewPagerAndroid,WebView.AppRegistry.runApplication(afb8d3b)accessibilityStatesprop (d57fb6e)classNameprop and forwarding of arbitrary props fromViewandTextto the host DOM element.accessibilityTraitsandaccessibilityComponentTypeprops (ae94551)resizeModestatic fromImage(c35f849)placeholderTextColorfromunstable_createElementprops. Instead, this is now exposed as astyleproperty (287251a)Switchprop types to latest from React Native (aa8593b)New features
Animated,Touchable,TouchableHighlight,TouchableOpacity,TouchableWithoutFeedback,FlatList,SectionList,VirtualizedList,VirtualizedSectionList.accessibilityRelationshipandaccessibilityStateprops (d57fb6e)e0412ac)forwardedRefonTextandView; use this instead offindNodeHandleto get a reference to the native element. (React has deprecatedfindDOMNodein Strict Mode, and you can anticipate the same happening tofindNodeHandle.)disabledprop toTextInputto support disabling the element (fc033a3)useWindowDimensionshook (df1b62c)Platform.isTesting(ad674e4)ResponderEventPluginwhen client rendering (250ee3c)Fixes
ScrollViewfor touch interactions (e22f0be)autoCompleteonTextInput(b10711b)TextInput(5334a4f)v0.11.7Compare Source
v0.11.6Compare Source
v0.11.5Compare Source
v0.11.4Compare Source
v0.11.3Compare Source
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.