SVG library for react-native
react-native-svg provides SVG support to React Native on iOS, Android, macOS, Windows, and a compatibility layer for the web.
- Supports most SVG elements and properties (Rect, Circle, Line, Polyline, Polygon, G ...).
- Easy to convert SVG code to react-native-svg.
✅ The Expo client app comes with the native code installed!
expo install react-native-svg
npm install react-native-svg
yarn add react-native-svg
Link native code
cd ios && pod install
Supported react-native versions
| react-native-svg | react-native | | ---------------- | ------------ | | 3.2.0 | 0.29 | | 4.2.0 | 0.32 | | 4.3.0 | 0.33 | | 4.4.0 | 0.38 | | 4.5.0 | 0.40 | | 5.1.8 | 0.44 | | 5.2.0 | 0.45 | | 5.3.0 | 0.46 | | 5.4.1 | 0.47 | | 5.5.1 | >=0.50 | | >=6 | >=0.50 | | >=7 | >=0.57.4 | | >=8 | >=0.57.4 | | >=9 | >=0.57.4 | | >=12.3.0 | >=0.64.0 |
Support for Fabric
Fabric is React Native's new rendering system. As of version
13.0.0 of this project, Fabric is supported only for react-native 0.69.0+. Support for earlier versions is not possible due to breaking changes in configuration.
| react-native-svg | react-native | | ---------------- | ------------ | | >=13.0.0 | 0.69.0+ | | >=13.6.0 | 0.70.0+ |
If you have unexpected behavior, please create a clean project with the latest versions of react-native and react-native-svg
react-native init CleanProject cd CleanProject/ yarn add react-native-svg cd ios && pod install && cd ..
Make a reproduction of the problem in
react-native run-ios react-native run-android
Adding Windows support
npx react-native-windows-init --overwrite
- Scroll to the bottom until you find:
<ItemGroup> <PackageReference Include="Microsoft.Windows.CppWinRT" Version="X.X.XXXXXX.X" /> </ItemGroup>
- Add the following to that
<PackageReference Include="Win2D.uwp" Version="1.26.0" />
Pre RN 0.68
Scroll to the bottom until you find:
Add the following to that
<Import Project="$(SolutionDir)\packages\Win2D.uwp.1.26.0\build\native\Win2D.uwp.targets" Condition="Exists('$(SolutionDir)\packages\Win2D.uwp.1.26.0\build\native\Win2D.uwp.targets')" />
Verify that it is still an issue with the latest version as specified in the previous step. If so, open a new issue, include the entire
App.js file, specify what platforms you've tested, and the results of running this command:
If you suspect that you've found a spec conformance bug, then you can test using your component in a react-native-web project by forking this codesandbox, to see how different browsers render the same content: https://codesandbox.io/s/pypn6mn3y7 If any evergreen browser with significant userbase or other svg user agent renders some svg content better, or supports more of the svg and related specs, please open an issue asap.
To check how to use the library, see USAGE.md
- Filters (connected PR)
- Unable to apply focus point of RadialGradient on Android.