/* https://grabient.com/_gPdgHzgIJgL_gDVgO9gCugB9gAPgIihImhqQ?style=linearSwatches&steps=34&angle=135 */
background: linear-gradient(135deg, #415ed0 0.000%, #415ed0 2.941%, #435fd1 calc(2.941% + 1px), #435fd1 5.882%, #4560d2 calc(5.882% + 1px), #4560d2 8.824%, #4761d2 calc(8.824% + 1px), #4761d2 11.765%, #4a62d3 calc(11.765% + 1px), #4a62d3 14.706%, #4c64d4 calc(14.706% + 1px), #4c64d4 17.647%, #4f65d4 calc(17.647% + 1px), #4f65d4 20.588%, #5366d5 calc(20.588% + 1px), #5366d5 23.529%, #5667d6 calc(23.529% + 1px), #5667d6 26.471%, #5968d6 calc(26.471% + 1px), #5968d6 29.412%, #5d69d7 calc(29.412% + 1px), #5d69d7 32.353%, #616bd8 calc(32.353% + 1px), #616bd8 35.294%, #656cd8 calc(35.294% + 1px), #656cd8 38.235%, #696dd9 calc(38.235% + 1px), #696dd9 41.176%, #6d6ed9 calc(41.176% + 1px), #6d6ed9 44.118%, #726fda calc(44.118% + 1px), #726fda 47.059%, #7771db calc(47.059% + 1px), #7771db 50.000%, #7b72db calc(50.000% + 1px), #7b72db 52.941%, #8073dc calc(52.941% + 1px), #8073dc 55.882%, #8574dd calc(55.882% + 1px), #8574dd 58.824%, #8b76dd calc(58.824% + 1px), #8b76dd 61.765%, #9077de calc(61.765% + 1px), #9077de 64.706%, #9578df calc(64.706% + 1px), #9578df 67.647%, #9b79df calc(67.647% + 1px), #9b79df 70.588%, #a17be0 calc(70.588% + 1px), #a17be0 73.529%, #a77ce1 calc(73.529% + 1px), #a77ce1 76.471%, #ac7de1 calc(76.471% + 1px), #ac7de1 79.412%, #b27fe2 calc(79.412% + 1px), #b27fe2 82.353%, #b880e3 calc(82.353% + 1px), #b880e3 85.294%, #be81e3 calc(85.294% + 1px), #be81e3 88.235%, #c583e4 calc(88.235% + 1px), #c583e4 91.176%, #cb84e4 calc(91.176% + 1px), #cb84e4 94.118%, #d185e5 calc(94.118% + 1px), #d185e5 97.059%, #d886e6 calc(97.059% + 1px) 100.000%);
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400" preserveAspectRatio="none">
<!-- https://grabient.com/_gPdgHzgIJgL_gDVgO9gCugB9gAPgIihImhqQ?style=linearSwatches&steps=34&angle=135 -->
<defs>
<clipPath id="bounds">
<rect x="0" y="0" width="800" height="400" />
</clipPath>
</defs>
<g clip-path="url(#bounds)"><path d="M -216.228,216.228 L 416.228,-416.228 L 433.875,-398.581 L -198.581,233.875 Z" fill="#415ed0" fill-opacity="1.000" /><path d="M -198.581,233.875 L 433.875,-398.581 L 451.522,-380.934 L -180.934,251.522 Z" fill="#435fd1" fill-opacity="1.000" /><path d="M -180.934,251.522 L 451.522,-380.934 L 469.169,-363.287 L -163.287,269.169 Z" fill="#4560d2" fill-opacity="1.000" /><path d="M -163.287,269.169 L 469.169,-363.287 L 486.816,-345.640 L -145.640,286.816 Z" fill="#4761d2" fill-opacity="1.000" /><path d="M -145.640,286.816 L 486.816,-345.640 L 504.463,-327.992 L -127.992,304.463 Z" fill="#4a62d3" fill-opacity="1.000" /><path d="M -127.992,304.463 L 504.463,-327.992 L 522.110,-310.345 L -110.345,322.110 Z" fill="#4c64d4" fill-opacity="1.000" /><path d="M -110.345,322.110 L 522.110,-310.345 L 539.757,-292.698 L -92.698,339.757 Z" fill="#4f65d4" fill-opacity="1.000" /><path d="M -92.698,339.757 L 539.757,-292.698 L 557.404,-275.051 L -75.051,357.404 Z" fill="#5366d5" fill-opacity="1.000" /><path d="M -75.051,357.404 L 557.404,-275.051 L 575.051,-257.404 L -57.404,375.051 Z" fill="#5667d6" fill-opacity="1.000" /><path d="M -57.404,375.051 L 575.051,-257.404 L 592.698,-239.757 L -39.757,392.698 Z" fill="#5968d6" fill-opacity="1.000" /><path d="M -39.757,392.698 L 592.698,-239.757 L 610.345,-222.110 L -22.110,410.345 Z" fill="#5d69d7" fill-opacity="1.000" /><path d="M -22.110,410.345 L 610.345,-222.110 L 627.992,-204.463 L -4.463,427.992 Z" fill="#616bd8" fill-opacity="1.000" /><path d="M -4.463,427.992 L 627.992,-204.463 L 645.640,-186.816 L 13.184,445.640 Z" fill="#656cd8" fill-opacity="1.000" /><path d="M 13.184,445.640 L 645.640,-186.816 L 663.287,-169.169 L 30.831,463.287 Z" fill="#696dd9" fill-opacity="1.000" /><path d="M 30.831,463.287 L 663.287,-169.169 L 680.934,-151.522 L 48.478,480.934 Z" fill="#6d6ed9" fill-opacity="1.000" /><path d="M 48.478,480.934 L 680.934,-151.522 L 698.581,-133.875 L 66.125,498.581 Z" fill="#726fda" fill-opacity="1.000" /><path d="M 66.125,498.581 L 698.581,-133.875 L 716.228,-116.228 L 83.772,516.228 Z" fill="#7771db" fill-opacity="1.000" /><path d="M 83.772,516.228 L 716.228,-116.228 L 733.875,-98.581 L 101.419,533.875 Z" fill="#7b72db" fill-opacity="1.000" /><path d="M 101.419,533.875 L 733.875,-98.581 L 751.522,-80.934 L 119.066,551.522 Z" fill="#8073dc" fill-opacity="1.000" /><path d="M 119.066,551.522 L 751.522,-80.934 L 769.169,-63.287 L 136.713,569.169 Z" fill="#8574dd" fill-opacity="1.000" /><path d="M 136.713,569.169 L 769.169,-63.287 L 786.816,-45.640 L 154.360,586.816 Z" fill="#8b76dd" fill-opacity="1.000" /><path d="M 154.360,586.816 L 786.816,-45.640 L 804.463,-27.992 L 172.008,604.463 Z" fill="#9077de" fill-opacity="1.000" /><path d="M 172.008,604.463 L 804.463,-27.992 L 822.110,-10.345 L 189.655,622.110 Z" fill="#9578df" fill-opacity="1.000" /><path d="M 189.655,622.110 L 822.110,-10.345 L 839.757,7.302 L 207.302,639.757 Z" fill="#9b79df" fill-opacity="1.000" /><path d="M 207.302,639.757 L 839.757,7.302 L 857.404,24.949 L 224.949,657.404 Z" fill="#a17be0" fill-opacity="1.000" /><path d="M 224.949,657.404 L 857.404,24.949 L 875.051,42.596 L 242.596,675.051 Z" fill="#a77ce1" fill-opacity="1.000" /><path d="M 242.596,675.051 L 875.051,42.596 L 892.698,60.243 L 260.243,692.698 Z" fill="#ac7de1" fill-opacity="1.000" /><path d="M 260.243,692.698 L 892.698,60.243 L 910.345,77.890 L 277.890,710.345 Z" fill="#b27fe2" fill-opacity="1.000" /><path d="M 277.890,710.345 L 910.345,77.890 L 927.992,95.537 L 295.537,727.992 Z" fill="#b880e3" fill-opacity="1.000" /><path d="M 295.537,727.992 L 927.992,95.537 L 945.640,113.184 L 313.184,745.640 Z" fill="#be81e3" fill-opacity="1.000" /><path d="M 313.184,745.640 L 945.640,113.184 L 963.287,130.831 L 330.831,763.287 Z" fill="#c583e4" fill-opacity="1.000" /><path d="M 330.831,763.287 L 963.287,130.831 L 980.934,148.478 L 348.478,780.934 Z" fill="#cb84e4" fill-opacity="1.000" /><path d="M 348.478,780.934 L 980.934,148.478 L 998.581,166.125 L 366.125,798.581 Z" fill="#d185e5" fill-opacity="1.000" /><path d="M 366.125,798.581 L 998.581,166.125 L 1016.228,183.772 L 383.772,816.228 Z" fill="#d886e6" fill-opacity="1.000" /></g>
</svg>
["#415ed0", "#435fd1", "#4560d2", "#4761d2", "#4a62d3", "#4c64d4", "#4f65d4", "#5366d5", "#5667d6", "#5968d6", "#5d69d7", "#616bd8", "#656cd8", "#696dd9", "#6d6ed9", "#726fda", "#7771db", "#7b72db", "#8073dc", "#8574dd", "#8b76dd", "#9077de", "#9578df", "#9b79df", "#a17be0", "#a77ce1", "#ac7de1", "#b27fe2", "#b880e3", "#be81e3", "#c583e4", "#cb84e4", "#d185e5", "#d886e6"]
// https://grabient.com/_gPdgHzgIJgL_gDVgO9gCugB9gAPgIihImhqQ?style=linearSwatches&steps=34&angle=135
// cosine gradient palette — https://iquilezles.org/articles/palettes/
const float STEPS = 34.0;
const float ANGLE = 135.0;
vec3 palette(float t) {
vec3 a = vec3(0.989, 0.499, 0.521);
vec3 b = vec3(0.767, 0.213, 0.957);
vec3 c = vec3(0.174, 0.125, 0.015);
vec3 d = vec3(0.546, 4.646, 6.800);
return a + b * cos(6.283185 * (c * t + d));
}
// N hard swatches sampled from the palette
vec3 stops(float t) {
float i = min(floor(clamp(t, 0.0, 1.0) * STEPS), STEPS - 1.0);
return palette(i / (STEPS - 1.0));
}
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 p = fragCoord - 0.5 * iResolution.xy;
// CSS angle: 0 = up, clockwise; span = CSS gradient-line length
vec2 dir = vec2(sin(radians(ANGLE)), cos(radians(ANGLE)));
float len = abs(iResolution.x * dir.x) + abs(iResolution.y * dir.y);
float t = dot(p, dir) / len + 0.5;
fragColor = vec4(stops(t), 1.0);
}
[
[0.989, 0.499, 0.521],
[0.767, 0.213, 0.957],
[0.174, 0.125, 0.015],
[0.546, 4.646, 6.800]
]