Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Svg loses gradients displaying a black color #1153

Closed
tiagocorreiaitcenter opened this issue Oct 18, 2019 · 17 comments · Fixed by BlueWallet/BlueWallet#847 or mdfkbtc/veles-mobile-wallet-mdfkbtc#3 · May be fixed by GraoMelo/hathor-wallet-mobile#1
Labels

Comments

@tiagocorreiaitcenter
Copy link

Bug

I'm trying to use svg's which have some gradients, when I import them using as a file with react-native-svg-transformer I get the svg displayed but with a black color instead of keeping the defined colors/gradients.
Same happens if I convert the web svg into a react-native-svg component using svgr.now.sh

Svg file:

Svg displayed on react-native:

Environment info

info Fetching system and libraries information...
System:
    OS: Linux 5.0 Ubuntu 18.04.3 LTS (Bionic Beaver)
    CPU: (4) x64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
    Memory: 2.02 GB / 7.69 GB
    Shell: 4.4.20 - /bin/bash
  Binaries:
    Node: 10.16.2 - /usr/bin/node
    npm: 6.9.0 - /usr/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    Android SDK:
      API Levels: 23, 27, 28, 29
      Build Tools: 23.0.1, 27.0.3, 28.0.3, 29.0.2
      System Images: android-29 | Google APIs Intel x86 Atom
  npmPackages:
    react: 16.9.0 => 16.9.0 
    react-native: 0.61.2 => 0.61.2 
  npmGlobalPackages:
    react-native-cli: 2.0.1
    react-native-debugger-open: 0.3.20

Versions

    "react": "16.9.0",
    "react-native": "0.61.2",
    "react-native-svg": "^9.11.1",
    "react-native-svg-transformer": "^0.13.0"

Describe what you expected to happen:

  1. To see the svg displayed correctly with the default gradients and colors

Reproducible sample code with svg file and react component

https://github.com/tiagocorreiaitcenter/react-native-svg-file-test

@msand
Copy link
Collaborator

msand commented Oct 19, 2019

The issue is that you're specifying the stop-color as a style rather than an attribute. It's possible to fix quite easily with a change in js. Fix coming up. Meanwhile, here's a workaround:

App.js

import React from 'react';
import {SvgXml} from 'react-native-svg';
import {SafeAreaView} from 'react-native';

const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
  <defs>
    <radialGradient id="gradient1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
      <stop offset="0%" stop-color="#FF00FF" />
      <stop offset="100%" stop-color="#FFBD2E" />
    </radialGradient>

    <radialGradient id="gradient2" cx="50%" cy="50%" r="70%" fx="50%" fy="50%">
      <stop offset="0%" stop-color="#FF00FF" />
      <stop offset="100%" stop-color="#FFBD2E" />
    </radialGradient>

    <radialGradient id="gradient3" cx="20%" cy="50%" r="50%" fx="50%" fy="50%">
      <stop offset="0%" stop-color="#FF00FF" />
      <stop offset="100%" stop-color="#FFBD2E" />
    </radialGradient>

    <radialGradient id="gradient4" cx="50%" cy="50%" r="50%" fx="20%" fy="90%">
      <stop offset="0%" stop-color="#FF00FF" />
      <stop offset="100%" stop-color="#FFBD2E" />
    </radialGradient>

    <radialGradient id="gradient5" cx="20%" cy="20%" r="50%" fx="20%" fy="20%">
      <stop offset="0%" stop-color="#FF00FF" />
      <stop offset="100%" stop-color="#FFBD2E" />
    </radialGradient>

    <radialGradient id="gradient6" cx="50%" cy="50%" r="50%" fx="80%" fy="80%">
      <stop offset="0%" stop-color="#FF00FF" />
      <stop offset="100%" stop-color="#FFBD2E" />
    </radialGradient>
  </defs>

  <circle cx="40" cy="60" r="30" fill="url(#gradient1)" />
  <circle cx="100" cy="60" r="30" fill="url(#gradient2)" />
  <circle cx="160" cy="60" r="30" fill="url(#gradient3)" />

  <circle cx="40" cy="140" r="30" fill="url(#gradient4)" />
  <circle cx="100" cy="140" r="30" fill="url(#gradient5)" />
  <circle cx="160" cy="140" r="30" fill="url(#gradient6)" />
</svg>`;

const App = () => {
  return (
    <SafeAreaView style={{flex: 1, backgroundColor: 'white'}}>
      <SvgXml width="100%" height="100%" xml={xml} />
    </SafeAreaView>
  );
};

export default App;

@msand
Copy link
Collaborator

msand commented Oct 19, 2019

Can you try with the latest commit from the develop branch?

@msand msand closed this as completed in 5984e06 Oct 19, 2019
msand pushed a commit that referenced this issue Oct 19, 2019
# [9.12.0](v9.11.1...v9.12.0) (2019-10-19)

### Bug Fixes

* handle setting transform attribute on clipPath, fixes [#1152](#1152) ([73b21d1](73b21d1))
* improve handling of transform attribute on clipPath, fixes [#1152](#1152) ([3aa126e](3aa126e))
* **ios:** backwards compatible RCTImageLoader.h handling fixes [#1141](#1141) ([3c22c97](3c22c97))
* **ios:** clipPath rendering, fixes [#1131](#1131) ([2534537](2534537))
* **ios:** deprecation of RCTImageLoader fixes [#1141](#1141) ([5452144](5452144))
* **ios:** fix changes in color/currentColor/tintColor, fixes [#1151](#1151) ([0c7e94d](0c7e94d))
* **ios:** image viewBox opposite handling of y alignment, fixes [#1138](#1138) ([c69e9e2](c69e9e2))
* **js:** allow setting stopColor/Opacity/Offset using styles, fix [#1153](#1153) ([5984e06](5984e06))
* getPointAtLength signature ([2c57af2](2c57af2))
* getScreenCTM calculation ([5c5072d](5c5072d))
* improve native method spec conformance ([c63f9e2](c63f9e2))
* improve types for getBBox ([cecde7d](cecde7d))
* prepare script ([9a3dc4e](9a3dc4e))
* **ios:** memory leak in tspan, fixes [#1073](#1073) ([974f3a8](974f3a8))
* fix native methods spec conformance ([ecedb21](ecedb21))
* Make native methods synchronous ([8ce7611](8ce7611))
* refine types for matrix helpers ([409af91](409af91))
* refine types for matrix helpers ([7a3f867](7a3f867))
* **android:** defineMarker/getDefinedMarker storage ([e6eda84](e6eda84))
* **android:** native method scaling and getScreenCTM offset ([f3e0b19](f3e0b19))
* native method signatures web compatibility / spec conformance ([8687a3d](8687a3d))
* **ios:** optimize extractPathData, clear PathMeasure when no textPath ([df69c26](df69c26))

### Features

* **flow:** add flowgen to generate flow types from typescript, [#1125](#1125) ([fcd66fb](fcd66fb))
* implement getBBox, getCTM, getScreenCTM ([f13d54a](f13d54a))
* implement isPointInStroke ([2ba64df](2ba64df))
* initial implementation of isPointInFill ([203e53b](203e53b))
* support using native methods using promises instead of callbacks ([c28499b](c28499b))
* **android:** implement getTotalLength and getPointAtLength ([cd667d0](cd667d0))
* **ios:** implement getTotalLength and getPointAtLength ([78c4f20](78c4f20))
@msand
Copy link
Collaborator

msand commented Oct 19, 2019

🎉 This issue has been resolved in version 9.12.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@msand msand added the released label Oct 19, 2019
@prateekchachra
Copy link

Still not working. It's a completely black fill.

Loading it from file

@msand
Copy link
Collaborator

msand commented Oct 20, 2019

I wonder if it's related to react-native-svg-transformer then, @kristerkari would you mind having a look?

@msand msand reopened this Oct 20, 2019
@kristerkari
Copy link
Contributor

kristerkari commented Oct 20, 2019

I just tested with v9.12.0, and both the svg file from this issue and @msand's workaround are working for me when I use react-native-svg-transformer.

@msand
Copy link
Collaborator

msand commented Oct 20, 2019

@kristerkari Great. Btw, there's support for the style element coming up, essentially removing the need for svgo, or at least giving support for css/style elements when fetching content from e.g. uris: #1150 (comment)

my experiment is available from the css branch: https://github.com/react-native-community/react-native-svg/tree/css

@tiagocorreiaitcenter
Copy link
Author

@msand with the svg I had on the repo works perfectly but I just tested with another and the problem persists if I use a javascript svg or a .svg file, want me to update the repository with the reproducible code? Or are you already aware of the situation?

@tiagocorreiaitcenter
Copy link
Author

Just updated it, give it a new look @msand and thanks for your time

@msand
Copy link
Collaborator

msand commented Nov 2, 2019

@tiagocorreiaitcenter The other svg file contains a style element with css inside it, and if you use svgr, you need to specify settings (onlyMatchedOnce to false) for the inlineStyles plugin, because the selectors in your css match more than a single element, and by default it doesn't inline those css rules:

{
  "plugins": [
    {
      "inlineStyles": {
        "onlyMatchedOnce": false
      }
    }
  ]
}

@neoziro Perhaps this should be made the default when setting the react-native option in svgr?

Screenshot 2019-11-02 at 13 57 10

Alternatively, you can use the SvgCss element from react-native-svg like this:

import React from 'react';
import {SvgCss} from 'react-native-svg';

const xml = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
  <style>.bones{fill:#ccc ;} .eye{fill:#666;}</style>

  <path class="bones"
        d="M38.8 97.7c-2.1 1.1-4.2 2.4-6.1 4-.9.8-3.4 3.1-3.1 4.5.6 3.1 6.4.1 7.9-.7 2.7-1.4 8.6-3.7 9.9-6.6 2.4-5.3-6.7-2.2-8.6-1.2zM143.4 82c-.9-4.1-4.2-8.9-7.7-11.2-5.1-3.3-14.6-8.2-20.1-3.1l.6-.4c-5 4.7 5.5 1.2 6.2 3.1.4 1.1-2.6 2.2-3.3 3-1.1 1.2-1.7 3.1-1.6 4.9.4 6.3 7.9 10.6 13.5 11.4 4.5.7 13.8-1.7 12.4-7.7z"/>

  <path class="bones"
        d="M179.1 128.8c-4.9-4.2-10.6.5-19-4-2.2-1.2-9.1-5.7-18.3-11.7 1.7-.9 3-1.9 4.1-3 3.9-4.1 4.5-7.1 4.6-8.2 1.2-1 4.8-4.7 5.2-13.2.3-6-2.6-8.7-7.1-11-.2-.1-.5-.3-.7-.4-1-.7-1.9-1.9-2.7-3-.5-.7-1-1.3-1.6-1.9-1.4-1.5-2.9-2.9-4.3-4.1 2.6-3.2 4.5-5.5 5.5-6.5 6.6-6.9 13.5-4.3 16.8-9.8 3.3-5.5 1.6-11.9-2-12.5-2.7-.4-5.2 1.1-7 .3-.7-.3-1.3-1-1.8-2.3-.9-2.5-1.3-5.8-4.6-6-4.5-.2-11.6.8-10.7 9 .9 8.2 5.1 6.2-5.9 21.7l-.1.1c-2-.7-3.9-1.1-5.7-1.1-1.2 0-2.5.2-3.6.5-5.9 1.6-9 3.6-11 4.9-1.2.8-2.1 1.3-2.8 1.3-.3 0-.6-.1-.9-.2-.6-.2-1.2-.6-2-1-2.2-1.2-5.1-2.9-8.4-2.9-2.2 0-4.4.8-6.3 2.4-2.2 1.8-2.6 4-3.1 6-.2.8-.3 1.6-.6 2.5-8.7-6-15-10.4-16.2-11.4-4.6-3.8-1.5-14.7-5.8-16.5-4.3-1.9-8.6 3.8-13.6 2.9-5-.9-10.8.7-10.7 8.4s10.3 6.9 15.1 10c1.6 1 10.3 6.7 21.8 14.3-2.3.9-5.2 1.7-8.8 2.5C40.8 90.8 19 96.6 17 106.3c-1 4.8.5 8.2 4.4 10.1.1.1.2.3.4.4l.6.6c.4.4.6 1 .8 1.6.2.5.4 1.1.8 1.6.7 1.2 1.6 2.4 2.8 2.4 1.3 0 2-1.4 2.2-1.8.2-.5.4-1 .5-1.3.3-.9.3-1.1 1.3-1.2h.1c.8 0 1.4.4 2.1 1 .5.4 1.1.9 2 1.2.7.3 1.1.4 1.5.4 1.2 0 1.3-1.1 1.4-1.6 0-.4.1-.8.3-1.2.1-.3.3-.6.6-.8.5 0 1-.1 1.5-.2.2.1.4.2.6.4.1.1.5.7.7 1.2.8 1.4 1.5 2.8 2.7 2.8h.1c1-.1 1.3-1.3 1.8-3 .2-.7.5-1.8.7-2.1l.3-.3c.5-.1 1.1-.2 1.7-.3.3.3.6.8.9 1.3.8 1.2 1.7 2.8 3.4 2.8.3 0 .6-.1.9-.2 1.3-.4 2-1.9 2.7-3.2.7-1.4 1.2-2.4 1.9-2.4.3 0 .8.2 1.2.5.4.3.8.7 1.1 1.2.7.9 1.5 1.9 3 1.9.4 0 .8-.1 1.2-.2 1.7-.6 2.2-2 2.6-3.1.2-.6.4-1.2.8-1.7.7-.9 1.3-1.4 1.8-1.4.4 0 .8.3 1.1.7.2.2.3.5.5.7.5.8 1.1 1.7 2.2 1.7.7 0 1.4-.4 2.2-1.3.5-.5.8-1.2 1-1.8.4-1.1.6-1.5 1.3-1.6h.1c.3 0 .5.2.8.7.4.5 1 1.3 2.1 1.3.3 0 .5 0 .8-.1.9-.3 1.5-1.1 1.9-1.8.3-.5.6-.9.9-1.1.4-.2.7-.2.8-.3 0 .2 0 .5-.2 1.1-2 1.7-4.4 3.5-7 5.2h-.2c-.6 0-1.4 0-2.2.2-1.9.3-2.6 1.3-3.3 2.3-.3.4-.6.9-1.1 1.3-.5.5-.9.5-1.1.5-.3 0-.7-.1-1.1-.2-.6-.2-1.2-.4-2-.4h-.2c-2.2.1-2.7 1.2-3.2 2.3-.1.3-.3.7-.5 1-.2.4-.4.6-.5.7-.1 0-.1-.1-.2-.1-.4-.3-.9-.6-1.8-.8-.4-.1-.7-.1-1.1-.1-1.6 0-2.3 1.1-2.8 2-.1.2-.2.4-.4.6-.7 1.1-.9 1.1-1.1 1.1-.3 0-.7-.1-1.3-.3l-.8-.2c-.7-.2-1.4-.4-2.1-.4-1.2 0-2.1.6-2.8 1.6-.4.7-.5 1.3-.6 1.9-.2 1-.2 1-.8 1h-.2c-.2 0-.7-.2-1.1-.4-.6-.3-1.4-.7-2.2-.7-.7 0-1.3.3-1.8.9-.6.7-.5 1.7-.5 2.4 0 .4.1.9 0 1-.1.1-.3.2-.7.2-.3 0-.6-.2-1-.4-.5-.3-1.2-.7-2-.7h-.3c-2.6.4-3.9 5.5-3.7 7.6.2 3.7 2 4.2 5.8 4.9.7.1 1.5.2 2.4.2 7.7 0 19.1-4.9 31.3-10.2-6.4 8-11 13.8-12 15-3.6 4.4-13.6 6.9-11.3 14.2 2.3 7.3 8.3 7 12.8 4.6 4.5-2.4 10.3 1.7 13.8-1.5s-2.8-12.5.4-17.5c1.1-1.7 8.4-11.3 17.8-23.6 4.7-1.7 9.3-3 13.4-3.7 8.2-1.4 14.8-2.6 20.2-3.8 7.4 5 13.5 9.2 16.8 11.7 15.3 11.3 10.7 10.7 12.4 18.8 1.7 8.1 8.7 6.8 13 5.2 3.1-1.2 2.4-4.5 2.5-7.1.1-1.4.4-2.2 1-2.7 1.5-1.3 4.3-.7 6.8-1.9 3.1-1.9 2.7-8.6-2.2-12.8zm-71.3-13.1c-10.3 1.8-22.6 7.1-34.4 12.2-6.3 2.7-12.6 5.6-19.1 7.8-2.6.9-5.3 1.8-8.1 2.2-.4.1-5.8-.1-4.3-1.9 1-1.3 2.4-.3 3.5-.7 1.8-.6.6-1.6 2-2.8 1.3-1 2.7.1 4-.2 1.8-.4 1.5-1.4 2.6-2.5 1.6-1.5 2.9-.5 4.6-.6 1.9 0 3.5-1.3 4.8-2.7 1.5-1.6 2.1-2.6 4.5-2.5 2 .1 3.7.6 5.6-.8 1.8-1.3 1.5-2.1 3.9-2.1 1.9 0 3.8 0 5.4-1.3 1.3-1 1.6-2.7 3.3-3.2 1.5-.4 2.9.7 4.6.2 1.8-.5 2.1-2.2 3.6-3 1.6-.9 3 .8 4.7.3 1.5-.4 1.9-2.4 3.4-2.9 1.8-.6 2.3 1 4 1.2 3.2.4 8.3-3.1 10.9-4.7 3.9-2.4 5.5-7.8 10.7-7.5 5.1.3 10.5 2.8 15.3-.3-5.3.8-10.5-2.1-15.7-3.2-4.6-1-9.5-.7-14.1.5-2.1.5-4.2 1.2-6.2 1.9-1.9.6-2.7 2.3-4.3 3-2.3 1-3-.5-4.6-1.7-3.1.3-3.3 3.6-6 4-2.9.4-4.9-2.6-8-2.1-3.8.6-7.8 2.1-11.6 2.9-4.5 1-9.2 1.7-13.7 2.9-6.1 1.6-12.1 3.3-18.3 4.4-5.8 1-22.9 2.8-20.7-8.1.2-1 .8-2 1.7-2.9-.2 1.2.5 1.9 2.7.9 1.2-.6 4.8-3.7 2.6-4.6 9.9-5.2 28.1-9.3 40.4-12.1 17.6-4 20.1-9.3 21.3-15.3.4-2 .7-3.1 1.9-4.1 1.3-1.1 2.6-1.6 4.1-1.6 2.4 0 4.8 1.4 6.7 2.5.8.5 1.6.9 2.3 1.2.8.3 1.5.5 2.3.5 1.7 0 3.1-.9 4.6-1.9 2-1.3 4.7-3 10.1-4.5.9-.2 1.8-.4 2.7-.4 3.4 0 7.1 1.5 11.4 4.7 2 1.5 4 3.3 6 5.4.4.5.9 1.1 1.4 1.7.9 1.2 2 2.6 3.4 3.6.4.3.8.5 1.2.7 4.2 2.1 5.4 3.9 5.2 7.8-.3 8.1-3.9 10.7-4.1 10.8l-1.5 1 .4 1.4c0 .4-.4 2.6-3.6 6-3.9 4.6-13.7 6.8-35.5 10.5z"/>

  <g>
    <path class="eye"
          d="M128.1 79.6c1.6 1.3 3.1 2.6 4.7 3.9.6.5 2.7 2.8 3.2 1.4.5-1.3-2.4-3.5-3.2-4.3-1-1-2.2-2-3.2-3.1-1.2-1.2-4.2-5.1-6.4-3.4-.8.6-.3.9.3 1.5 1.5 1.4 3 2.7 4.6 4z"/>
    <path class="eye"
          d="M130.4 78.1c-1.5 1.4-2.9 2.9-4.3 4.3-.5.5-3.1 2.4-1.7 3.1 1.2.6 3.7-2.1 4.6-2.8 1.1-.9 2.2-2 3.4-2.9 1.3-1.1 5.4-3.8 4-6.1-.5-.8-.8-.4-1.5.2-1.6 1.4-3.1 2.8-4.5 4.2z"/>
  </g>
</svg>`;

export default () => {
  return <SvgCss xml={xml} width="100%" height="100%" />;
};

@msand
Copy link
Collaborator

msand commented Nov 2, 2019

Simulator Screen Shot - iPhone 11 Pro Max - 2019-11-02 at 14 02 47

@msand
Copy link
Collaborator

msand commented Nov 3, 2019

@tiagocorreiaitcenter Can you try this?

yarn add react-native-svg-transformer@msand/react-native-svg-transformer#e5f3734

@tiagocorreiaitcenter
Copy link
Author

@msand Hey, thanks for your time once again, I tested and with svg above the problem was indeed solved, but I just updated it to a simple circle with a linear-gradient and it still fails on this scenario, do you mind giving a new look to it? thanks

@msand
Copy link
Collaborator

msand commented Nov 4, 2019

@tiagocorreiaitcenter We currently don't have support for xlinkHref on the Gradient elements, there is a pr with partial support but not properly implemented yet: https://github.com/react-native-community/react-native-svg/pull/920/files

@tiagocorreiaitcenter
Copy link
Author

@msand Ok, I will keep an eye on it, hoping it comes out soon, thanks for your time

@stale
Copy link

stale bot commented Feb 7, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. You may also mark this issue as a "discussion" and I will leave this open.

@stale stale bot added the stale label Feb 7, 2020
@stale
Copy link

stale bot commented Feb 14, 2020

Closing this issue after a prolonged period of inactivity. Fell free to reopen this issue, if this still affecting you.

JackWillie added a commit to JackWillie/react-native-svg that referenced this issue Nov 27, 2022
# [9.12.0](software-mansion/react-native-svg@v9.11.1...v9.12.0) (2019-10-19)

### Bug Fixes

* handle setting transform attribute on clipPath, fixes [#1152](software-mansion/react-native-svg#1152) ([73b21d1](software-mansion/react-native-svg@73b21d1))
* improve handling of transform attribute on clipPath, fixes [#1152](software-mansion/react-native-svg#1152) ([3aa126e](software-mansion/react-native-svg@3aa126e))
* **ios:** backwards compatible RCTImageLoader.h handling fixes [#1141](software-mansion/react-native-svg#1141) ([3c22c97](software-mansion/react-native-svg@3c22c97))
* **ios:** clipPath rendering, fixes [#1131](software-mansion/react-native-svg#1131) ([2534537](software-mansion/react-native-svg@2534537))
* **ios:** deprecation of RCTImageLoader fixes [#1141](software-mansion/react-native-svg#1141) ([5452144](software-mansion/react-native-svg@5452144))
* **ios:** fix changes in color/currentColor/tintColor, fixes [#1151](software-mansion/react-native-svg#1151) ([0c7e94d](software-mansion/react-native-svg@0c7e94d))
* **ios:** image viewBox opposite handling of y alignment, fixes [#1138](software-mansion/react-native-svg#1138) ([c69e9e2](software-mansion/react-native-svg@c69e9e2))
* **js:** allow setting stopColor/Opacity/Offset using styles, fix [#1153](software-mansion/react-native-svg#1153) ([5984e06](software-mansion/react-native-svg@5984e06))
* getPointAtLength signature ([2c57af2](software-mansion/react-native-svg@2c57af2))
* getScreenCTM calculation ([5c5072d](software-mansion/react-native-svg@5c5072d))
* improve native method spec conformance ([c63f9e2](software-mansion/react-native-svg@c63f9e2))
* improve types for getBBox ([cecde7d](software-mansion/react-native-svg@cecde7d))
* prepare script ([9a3dc4e](software-mansion/react-native-svg@9a3dc4e))
* **ios:** memory leak in tspan, fixes [#1073](software-mansion/react-native-svg#1073) ([974f3a8](software-mansion/react-native-svg@974f3a8))
* fix native methods spec conformance ([ecedb21](software-mansion/react-native-svg@ecedb21))
* Make native methods synchronous ([8ce7611](software-mansion/react-native-svg@8ce7611))
* refine types for matrix helpers ([409af91](software-mansion/react-native-svg@409af91))
* refine types for matrix helpers ([7a3f867](software-mansion/react-native-svg@7a3f867))
* **android:** defineMarker/getDefinedMarker storage ([e6eda84](software-mansion/react-native-svg@e6eda84))
* **android:** native method scaling and getScreenCTM offset ([f3e0b19](software-mansion/react-native-svg@f3e0b19))
* native method signatures web compatibility / spec conformance ([8687a3d](software-mansion/react-native-svg@8687a3d))
* **ios:** optimize extractPathData, clear PathMeasure when no textPath ([df69c26](software-mansion/react-native-svg@df69c26))

### Features

* **flow:** add flowgen to generate flow types from typescript, [#1125](software-mansion/react-native-svg#1125) ([fcd66fb](software-mansion/react-native-svg@fcd66fb))
* implement getBBox, getCTM, getScreenCTM ([f13d54a](software-mansion/react-native-svg@f13d54a))
* implement isPointInStroke ([2ba64df](software-mansion/react-native-svg@2ba64df))
* initial implementation of isPointInFill ([203e53b](software-mansion/react-native-svg@203e53b))
* support using native methods using promises instead of callbacks ([c28499b](software-mansion/react-native-svg@c28499b))
* **android:** implement getTotalLength and getPointAtLength ([cd667d0](software-mansion/react-native-svg@cd667d0))
* **ios:** implement getTotalLength and getPointAtLength ([78c4f20](software-mansion/react-native-svg@78c4f20))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment