• Stars
    star
    7,475
  • Rank 5,165 (Top 0.2 %)
  • Language
    Java
  • License
    MIT License
  • Created almost 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SVG library for React Native, React Native Web, and plain React web projects.

React Native SVG at Software Mansion

Version NPM

react-native-svg provides SVG support to React Native on iOS, Android, macOS, Windows, and a compatibility layer for the web.

Check out the Example app

Features

  1. Supports most SVG elements and properties (Rect, Circle, Line, Polyline, Polygon, G ...).
  2. Easy to convert SVG code to react-native-svg.

Installation

With expo-cli

The Expo client app comes with the native code installed!

Install the JavaScript with:

expo install react-native-svg

📚 See the Expo docs for more info or jump ahead to Usage.

With react-native-cli

  1. Install library

    from npm

    npm install react-native-svg

    from yarn

    yarn add react-native-svg
  2. 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+

Troubleshooting

Unexpected behavior

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 App.js

react-native run-ios
react-native run-android

Adding Windows support

  1. npx react-native-windows-init --overwrite
  2. cd windows\<AppName>
  3. Open <AppName>.vcxproj

RN 0.68+

  1. Scroll to the bottom until you find:
    <ItemGroup>
       <PackageReference Include="Microsoft.Windows.CppWinRT" Version="X.X.XXXXXX.X" />
    </ItemGroup>
  2. Add the following to that <ItemGroup>
    <PackageReference Include="Win2D.uwp" Version="1.26.0" />

Pre RN 0.68

  1. Scroll to the bottom until you find:

    <ImportGroup Label="ExtensionTargets">
  2. Add the following to that <ImportGroup>

    <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')" />

Opening issues

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:

react-native info

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.

Usage

To check how to use the library, see USAGE.md

TODO:

  1. Filters (connected PR)

Known issues:

  1. Unable to apply focus point of RadialGradient on Android.

More Repositories

1

react-native-reanimated

React Native's Animated library reimplemented
TypeScript
8,941
star
2

react-native-gesture-handler

Declarative API exposing platform native touch and gesture system to React Native.
TypeScript
6,090
star
3

react-native-screens

Native navigation primitives for your React Native app.
TypeScript
3,039
star
4

react-freeze

Prevent React component subtrees from rendering.
TypeScript
1,539
star
5

radon-ide

VSCode extension that turns your editor into a fully fledged IDE for React Native and Expo.
JavaScript
947
star
6

starknet.py

✨ 🐍 Python SDK for Starknet.
Python
259
star
7

protostar

Protostar is a toolchain for developing and testing Starknet contracts
Python
247
star
8

scarb

The Cairo package manager
Rust
178
star
9

live-compositor

Media server for real-time, low latency, programmable video and audio mixing.
Rust
146
star
10

TypeGPU

TypeScript library that enhances the WebGPU API, allowing resource management in a type-safe, declarative way.
TypeScript
124
star
11

setup-ci

CLI to spin your CI/CD for react-native!
TypeScript
119
star
12

starknet-jvm

Starknet SDK for JVM languages (Java, Kotlin, Scala)
Kotlin
63
star
13

state-of-react-native

Repository for collaborating on the shape of the State of React Native surveys.
62
star
14

starknet.swift

Starknet SDK for Swift language
Swift
24
star
15

cairo-profiler

Profiler for Cairo programming language & Starknet
Rust
24
star
16

setup-scarb

Sets up Scarb in your GitHub Actions workflow.
JavaScript
19
star
17

docker-janus-gateway

Docker image of the Janus Gateway
Dockerfile
18
star
18

universal-sierra-compiler

Rust
15
star
19

asdf-scarb

Scarb plugin for the asdf version manager
Shell
7
star
20

cairo-coverage

Code coverage tool for cairo
Rust
6
star
21

scarb-nightlies

This repository stores nightly builds of Scarb, go to Releases to obtain them
3
star
22

software-mansion.github.io

2
star