npm install --save @vx/gradient
Inspired by: https://dribbble.com/shots/3380672-Sketch-Gradients-Freebie
import { AreaClosed } from '@vx/shape';
import { GradientPinkBlue } from '@vx/gradient';
const GradientArea = () => {
return (
<svg>
<GradientPinkBlue id="gradient" />
<AreaClosed fill="url('#gradient')" />
</svg>
);
}
Like patterns, gradients are "defined." When you put down a <PinkBlue />
, it's putting a <linearGradient/>
attribute inside a <def>
in the SVG.
It's often better to think of these as variable definitions rather than true DOM elements. When you use fill="url('#gradient')"
you're referencing the gradient's id: gradient
.
vx comes with a couple pre-made gradients for you to use.
Gradients Available |
---|
GradientDarkgreenGreen |
GradientLightgreenGreen |
GradientOrangeRed |
GradientPinkBlue |
GradientPinkRed |
GradientPurpleOrange |
GradientPurpleTeal |
GradientSteelPurple |
GradientTealBlue |
You can make any linear gradient like so:
import { LinearGradient } from '@vx/gradient';
<LinearGradient
from='#a18cd1'
to='#fbc2eb'
/>