microsoft / microsoft/react-native-windows
New Architecture for React Native for Windows
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 17.3k
- Forks
- 1.2k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 33
Description
This issue is a hub for the various internal workstreams underway to bring the current "Paper" implementation of React Native on Windows (RNW) to be replaced with a Fabric implementation. For information for how to consume this, start here.
About Fabric
Fabric is Meta's new rendering system for React Native, designed to share more rendering logic cross-platform in C++. RNW's existing "Paper" renderer is built on XAML, with various parts dropping down into native Composition as need be; the new Fabric renderer targets Composition from the start, but with the ability to host XAML islands within.
Apps on this new architecture are Win32 by default (this is a change from the Paper architecture where apps were UWP by default). The move away from UWP was a decision made to stay in alignment with WinAppSDK and WinUI3 which support Win32 apps (See here for more information). For our customers with UWP RNW apps, we will help with migration instructions once we shift support to Fabric as the default experience.
Can I Try It?
Yes! Start here. Starting with version 0.76 we are ready for folks to preview Fabric on Windows, but we know it's not ready for everyone's needs. Be warned that there are still gaps in both the functionality and the developer experience. Soon we expect to switch Fabric to be the default experience for new apps (but Paper will remain available as a compatibility fallback for some time).
Sticking to finalized releases is the best plan for most, but if you are an early adopter who is comfortable with an unpolished experience and wants to try intermediate builds, you can try that out here. However, understand that documentation will be thin, and please consult the below lists for what is not yet implemented before making any bug reports.
Milestones
| Milestone | Milestone Nickname | Milestone Description |
|---|---|---|
| ☑️ M0 | Proof of Concept |
|
| ☑️ M1 | Experimental |
|
| ☑️ M2 | 80% Parity and Accessibility |
|
| ☑️ M3 | Improved Paper parity to 84% and introduction of Modal |
|
| ☑️ M4 | New Default (Fabric now officially in support) |
|
| ☑️ M5 | Improved Parity with Paper and support for Hermes debugger |
|
| 🔜 M6 | Deprecate Paper |
|
Host Component Parity
(this table last updated April 2025, more detail available through logged issues on GitHub)
| Priority | Component | Available | Properties |
|---|---|---|---|
| 0 | View | ✅ | 98% |
| 0 | Text | ✅ | 86% |
| 0 | Image | ✅ | 100% |
| 0 | TextInput | ✅ | 59% |
| 1 | ScrollView | ✅ | 44% |
| 1 | Modal | ✅ | 64% |
| 2 | ActivityIndicator | ✅ | 100% |
| 2 | Switch | ✅ | 100% |
| 2 | RefreshControl | 🟥 | 28% |
Overall, if you include inherited View props and everything, Fabric is currently at 77% parity relative to Paper.
Host Components are the core RN primitive components directly backed by native UI. This table tracks our progress to reach parity in Fabric (Composition) with our Paper (XAML) implementation. See the parity tracking issue here
Paper Parity
Note that Paper itself never reached 100% parity. So 100% completion in the table above represents reaching 100% of what Paper accomplished, which is represented here:
| Component | Completed % |
|---|---|
| View | 99% (129/130) |
| Text | 97% (154/158) |
| Image | 99% (156/157) |
| TextInput | 98% (176/180) |
| ScrollView | 98% (156/159) |
| Modal | 57% (41/72) |
| ActivityIndicator | 98% (127/129) |
| Switch | 99% (136/138) |
| RefreshControl | 0% (NA) |
Accessibility and Test Coverage
You can track the state of these important aspects here:
- #11422
- #11898
Other key issues
- #11135
- #11920
- #11908
- #6136
- #11907
- #11157
- https://github.com/microsoft/react-native-windows-samples/issues/862
- https://github.com/microsoft/react-native-windows/issues/12027
- https://github.com/microsoft/react-native-windows/issues/13683
- https://github.com/microsoft/react-native-windows/issues/11908
- https://github.com/microsoft/react-native-gallery/issues/384
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This is a broad workstream hub and names no source files or tests. Start with the linked Fabric architecture landing page and parity tracker #11135, then review the remaining host-component gaps and M6 milestone; completion is defined by the issue's listed parity and deprecation goals.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, react-native
- Domain
- desktop-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100