Browser compatibility

Understanding React Native for Web browser compatibility.

React Native for Web is designed and tested for recent mobile and desktop browsers, for touch and mouse and keyboard interactions.

The browsers with known support include:

  • Chrome 60+
  • Safari 10+ / iOS Safari 10+
  • Edge 12+
  • Firefox ESR+
  • Internet Explorer 11
  • Opera

If specific exports have a different browser support expectation, it will be documented with that export.


JavaScript #

Your application may need to polyfill Promise, Object.assign, Array.from, and ResizeObserver as necessary for your desired browser support.


CSS #

Most CSS properties and values are supported. Vendor prefixes are automatically provided where necessary. For example, if you use the following style:

const style = {
userSelect: 'none'
}

The resulting CSS is:

.r-userSelect-24jds {
-webkit-user-select: none;
user-select: none;
}

Certain CSS properties are not supported across all browsers, but are polyfilled by React Native for Web.

(N.B. Safari prior to version 10.1 can suffer from extremely poor flexbox performance. The recommended way to work around this issue (as used on mobile.twitter.com) is to set display:block on Views in your element hierarchy that you know don’t need flexbox layout.)

Updated
Edit
React Native for WebCopyright © Nicolas Gallagher and Facebook Inc.