/* https://grabient.com/_gK1gDmgHrf7CgHyf7YgFRgDzf6NgF8fxUf3v?style=angularGradient&steps=5&angle=90 */
background: conic-gradient(from 90deg, #ecb1c7 0.000deg, #ff97b4 90.000deg, #fe708e 180.000deg, #e74163 270.000deg, #c11140 360.000deg);
<svg width="800" height="400" viewBox="0 0 800 400" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- https://grabient.com/_gK1gDmgHrf7CgHyf7YgFRgDzf6NgF8fxUf3v?style=angularGradient&steps=5&angle=90 -->
<g clip-path="url(#paint0_angular_clip_path)" data-figma-skip-parse="true"><g transform="matrix(0.197533 0.000000 0.000000 0.197533 400.000000 200.000000)"><foreignObject x="-2264" y="-2264" width="4528" height="4528"><div xmlns="http://www.w3.org/1999/xhtml" style="background:conic-gradient(from 90deg,rgba(236, 177, 199, 1) 0.000000deg,rgba(255, 151, 180, 1) 90.000000deg,rgba(254, 112, 142, 1) 180.000000deg,rgba(231, 65, 99, 1) 270.000000deg,rgba(193, 17, 64, 1) 360.000000deg);height:100%;width:100%;opacity:1"></div></foreignObject></g></g><rect width="800" height="400" data-figma-gradient-fill="{"type":"GRADIENT_ANGULAR","stops":[{"color":{"r":0.9254901960784314,"g":0.6941176470588235,"b":0.7803921568627451,"a":1},"position":0},{"color":{"r":1,"g":0.592156862745098,"b":0.7058823529411765,"a":1},"position":0.25},{"color":{"r":0.996078431372549,"g":0.4392156862745098,"b":0.5568627450980392,"a":1},"position":0.5},{"color":{"r":0.9058823529411765,"g":0.2549019607843137,"b":0.38823529411764707,"a":1},"position":0.75},{"color":{"r":0.7568627450980392,"g":0.06666666666666667,"b":0.25098039215686274,"a":1},"position":1}],"stopsVar":[{"color":{"r":0.9254901960784314,"g":0.6941176470588235,"b":0.7803921568627451,"a":1},"position":0},{"color":{"r":1,"g":0.592156862745098,"b":0.7058823529411765,"a":1},"position":0.25},{"color":{"r":0.996078431372549,"g":0.4392156862745098,"b":0.5568627450980392,"a":1},"position":0.5},{"color":{"r":0.9058823529411765,"g":0.2549019607843137,"b":0.38823529411764707,"a":1},"position":0.75},{"color":{"r":0.7568627450980392,"g":0.06666666666666667,"b":0.25098039215686274,"a":1},"position":1}],"transform":{"m00":800.000000,"m01":0.000000,"m02":0.000000,"m10":0.000000,"m11":800.000000,"m12":-200.000000},"opacity":1.0,"blendMode":"NORMAL","visible":true}"/>
<defs>
<clipPath id="paint0_angular_clip_path"><rect width="800" height="400"/></clipPath>
</defs>
</svg>
["#ecb1c7", "#ff97b4", "#fe708e", "#e74163", "#c11140"]
// https://grabient.com/_gK1gDmgHrf7CgHyf7YgFRgDzf6NgF8fxUf3v?style=angularGradient&steps=5&angle=90
// cosine gradient palette — https://iquilezles.org/articles/palettes/
const float STEPS = 5.0;
const float ANGLE = 90.0;
vec3 palette(float t) {
vec3 a = vec3(0.693, 0.230, 0.491);
vec3 b = vec3(-0.318, 0.498, -0.296);
vec3 c = vec3(0.337, 0.243, -0.371);
vec3 d = vec3(0.380, -0.940, -0.529);
return a + b * cos(6.283185 * (c * t + d));
}
// N stops sampled from the palette, blended like the CSS gradient
vec3 stops(float t) {
float n = STEPS - 1.0;
float x = clamp(t, 0.0, 1.0) * n;
return mix(palette(floor(x) / n), palette(min(floor(x) + 1.0, n) / n), fract(x));
}
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 p = fragCoord - 0.5 * iResolution.xy;
// conic from ANGLE, clockwise from top (CSS convention)
float t = fract((atan(p.x, p.y) - radians(ANGLE)) / 6.283185);
fragColor = vec4(stops(t), 1.0);
}
[
[0.693, 0.230, 0.491],
[-0.318, 0.498, -0.296],
[0.337, 0.243, -0.371],
[0.380, -0.940, -0.529]
]