react js - use svg linear gradient not working

For others coming here later, style={{fill:'url(#linear-gradient)'}} is unnecessary for just one or a mere few styles. Instead, simplify to fill="url(#linear-gradient)". The same applies to other common SVG styling like stroke="url()".


In react the attributes form of linear gradient are a bit different and supposed to be like this:

<linearGradient
    id="linear-gradient"
    gradientUnits="userSpaceOnUse"
    x1="1041.6901"
    y1="169.485"
    x2="1383.9301"
    y2="169.485"
    gradientTransform="matrix(1 0 0 -1 -761.14 398.97)"
>
    <stop offset="14%" stopColor="#2f343b" stopOpacity="0%" />
    <stop offset="43%" stopColor="#337082" stopOpacity="41%" />
    <stop offset="67%" stopColor="#369fb9" stopOpacity="73%" />
    <stop offset="79%" stopColor="#37b1cf" stopOpacity="85%" />
</linearGradient>

It mean that the syntax should be from stop-color => stopColor

offset should be in percentage

ReactJs + svg