/* https://grabient.com/_gGCgGEgGDgENgD6gEcgIegHNgJugAEgnYg6phevo8OZs?style=linearSwatches&steps=34&angle=45 */
background: linear-gradient(45deg, #43aa50 0.000%, #43aa50 2.941%, #4ba345 calc(2.941% + 1px), #4ba345 5.882%, #559b3c calc(5.882% + 1px), #559b3c 8.824%, #619236 calc(8.824% + 1px), #619236 11.765%, #6d8833 calc(11.765% + 1px), #6d8833 14.706%, #7a7e33 calc(14.706% + 1px), #7a7e33 17.647%, #867436 calc(17.647% + 1px), #867436 20.588%, #936a3d calc(20.588% + 1px), #936a3d 23.529%, #9e6146 calc(23.529% + 1px), #9e6146 26.471%, #a85852 calc(26.471% + 1px), #a85852 29.412%, #b15060 calc(29.412% + 1px), #b15060 32.353%, #b8496f calc(32.353% + 1px), #b8496f 35.294%, #bc437e calc(35.294% + 1px), #bc437e 38.235%, #bf3f8d calc(38.235% + 1px), #bf3f8d 41.176%, #bf3c9c calc(41.176% + 1px), #bf3c9c 44.118%, #bc3ba9 calc(44.118% + 1px), #bc3ba9 47.059%, #b83cb3 calc(47.059% + 1px), #b83cb3 50.000%, #b13ebc calc(50.000% + 1px), #b13ebc 52.941%, #a841c1 calc(52.941% + 1px), #a841c1 55.882%, #9e46c3 calc(55.882% + 1px), #9e46c3 58.824%, #924dc2 calc(58.824% + 1px), #924dc2 61.765%, #8654bd calc(61.765% + 1px), #8654bd 64.706%, #795db6 calc(64.706% + 1px), #795db6 67.647%, #6d66ac calc(67.647% + 1px), #6d66ac 70.588%, #60709f calc(70.588% + 1px), #60709f 73.529%, #557a91 calc(73.529% + 1px), #557a91 76.471%, #4b8482 calc(76.471% + 1px), #4b8482 79.412%, #438e72 calc(79.412% + 1px), #438e72 82.353%, #3c9763 calc(82.353% + 1px), #3c9763 85.294%, #38a055 calc(85.294% + 1px), #38a055 88.235%, #36a749 calc(88.235% + 1px), #36a749 91.176%, #36ae3f calc(91.176% + 1px), #36ae3f 94.118%, #39b338 calc(94.118% + 1px), #39b338 97.059%, #3eb733 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/_gGCgGEgGDgENgD6gEcgIegHNgJugAEgnYg6phevo8OZs?style=linearSwatches&steps=34&angle=45 -->
<defs>
<clipPath id="bounds">
<rect x="0" y="0" width="800" height="400" />
</clipPath>
</defs>
<g clip-path="url(#bounds)"><path d="M 416.228,816.228 L -216.228,183.772 L -198.581,166.125 L 433.875,798.581 Z" fill="#43aa50" fill-opacity="1.000" /><path d="M 433.875,798.581 L -198.581,166.125 L -180.934,148.478 L 451.522,780.934 Z" fill="#4ba345" fill-opacity="1.000" /><path d="M 451.522,780.934 L -180.934,148.478 L -163.287,130.831 L 469.169,763.287 Z" fill="#559b3c" fill-opacity="1.000" /><path d="M 469.169,763.287 L -163.287,130.831 L -145.640,113.184 L 486.816,745.640 Z" fill="#619236" fill-opacity="1.000" /><path d="M 486.816,745.640 L -145.640,113.184 L -127.992,95.537 L 504.463,727.992 Z" fill="#6d8833" fill-opacity="1.000" /><path d="M 504.463,727.992 L -127.992,95.537 L -110.345,77.890 L 522.110,710.345 Z" fill="#7a7e33" fill-opacity="1.000" /><path d="M 522.110,710.345 L -110.345,77.890 L -92.698,60.243 L 539.757,692.698 Z" fill="#867436" fill-opacity="1.000" /><path d="M 539.757,692.698 L -92.698,60.243 L -75.051,42.596 L 557.404,675.051 Z" fill="#936a3d" fill-opacity="1.000" /><path d="M 557.404,675.051 L -75.051,42.596 L -57.404,24.949 L 575.051,657.404 Z" fill="#9e6146" fill-opacity="1.000" /><path d="M 575.051,657.404 L -57.404,24.949 L -39.757,7.302 L 592.698,639.757 Z" fill="#a85852" fill-opacity="1.000" /><path d="M 592.698,639.757 L -39.757,7.302 L -22.110,-10.345 L 610.345,622.110 Z" fill="#b15060" fill-opacity="1.000" /><path d="M 610.345,622.110 L -22.110,-10.345 L -4.463,-27.992 L 627.992,604.463 Z" fill="#b8496f" fill-opacity="1.000" /><path d="M 627.992,604.463 L -4.463,-27.992 L 13.184,-45.640 L 645.640,586.816 Z" fill="#bc437e" fill-opacity="1.000" /><path d="M 645.640,586.816 L 13.184,-45.640 L 30.831,-63.287 L 663.287,569.169 Z" fill="#bf3f8d" fill-opacity="1.000" /><path d="M 663.287,569.169 L 30.831,-63.287 L 48.478,-80.934 L 680.934,551.522 Z" fill="#bf3c9c" fill-opacity="1.000" /><path d="M 680.934,551.522 L 48.478,-80.934 L 66.125,-98.581 L 698.581,533.875 Z" fill="#bc3ba9" fill-opacity="1.000" /><path d="M 698.581,533.875 L 66.125,-98.581 L 83.772,-116.228 L 716.228,516.228 Z" fill="#b83cb3" fill-opacity="1.000" /><path d="M 716.228,516.228 L 83.772,-116.228 L 101.419,-133.875 L 733.875,498.581 Z" fill="#b13ebc" fill-opacity="1.000" /><path d="M 733.875,498.581 L 101.419,-133.875 L 119.066,-151.522 L 751.522,480.934 Z" fill="#a841c1" fill-opacity="1.000" /><path d="M 751.522,480.934 L 119.066,-151.522 L 136.713,-169.169 L 769.169,463.287 Z" fill="#9e46c3" fill-opacity="1.000" /><path d="M 769.169,463.287 L 136.713,-169.169 L 154.360,-186.816 L 786.816,445.640 Z" fill="#924dc2" fill-opacity="1.000" /><path d="M 786.816,445.640 L 154.360,-186.816 L 172.008,-204.463 L 804.463,427.992 Z" fill="#8654bd" fill-opacity="1.000" /><path d="M 804.463,427.992 L 172.008,-204.463 L 189.655,-222.110 L 822.110,410.345 Z" fill="#795db6" fill-opacity="1.000" /><path d="M 822.110,410.345 L 189.655,-222.110 L 207.302,-239.757 L 839.757,392.698 Z" fill="#6d66ac" fill-opacity="1.000" /><path d="M 839.757,392.698 L 207.302,-239.757 L 224.949,-257.404 L 857.404,375.051 Z" fill="#60709f" fill-opacity="1.000" /><path d="M 857.404,375.051 L 224.949,-257.404 L 242.596,-275.051 L 875.051,357.404 Z" fill="#557a91" fill-opacity="1.000" /><path d="M 875.051,357.404 L 242.596,-275.051 L 260.243,-292.698 L 892.698,339.757 Z" fill="#4b8482" fill-opacity="1.000" /><path d="M 892.698,339.757 L 260.243,-292.698 L 277.890,-310.345 L 910.345,322.110 Z" fill="#438e72" fill-opacity="1.000" /><path d="M 910.345,322.110 L 277.890,-310.345 L 295.537,-327.992 L 927.992,304.463 Z" fill="#3c9763" fill-opacity="1.000" /><path d="M 927.992,304.463 L 295.537,-327.992 L 313.184,-345.640 L 945.640,286.816 Z" fill="#38a055" fill-opacity="1.000" /><path d="M 945.640,286.816 L 313.184,-345.640 L 330.831,-363.287 L 963.287,269.169 Z" fill="#36a749" fill-opacity="1.000" /><path d="M 963.287,269.169 L 330.831,-363.287 L 348.478,-380.934 L 980.934,251.522 Z" fill="#36ae3f" fill-opacity="1.000" /><path d="M 980.934,251.522 L 348.478,-380.934 L 366.125,-398.581 L 998.581,233.875 Z" fill="#39b338" fill-opacity="1.000" /><path d="M 998.581,233.875 L 366.125,-398.581 L 383.772,-416.228 L 1016.228,216.228 Z" fill="#3eb733" fill-opacity="1.000" /></g>
</svg>
["#43aa50", "#4ba345", "#559b3c", "#619236", "#6d8833", "#7a7e33", "#867436", "#936a3d", "#9e6146", "#a85852", "#b15060", "#b8496f", "#bc437e", "#bf3f8d", "#bf3c9c", "#bc3ba9", "#b83cb3", "#b13ebc", "#a841c1", "#9e46c3", "#924dc2", "#8654bd", "#795db6", "#6d66ac", "#60709f", "#557a91", "#4b8482", "#438e72", "#3c9763", "#38a055", "#36a749", "#36ae3f", "#39b338", "#3eb733"]
// https://grabient.com/_gGCgGEgGDgENgD6gEcgIegHNgJugAEgnYg6phevo8OZs?style=linearSwatches&steps=34&angle=45
// cosine gradient palette — https://iquilezles.org/articles/palettes/
const float STEPS = 34.0;
const float ANGLE = 45.0;
vec3 palette(float t) {
vec3 a = vec3(0.480, 0.482, 0.481);
vec3 b = vec3(0.269, 0.250, 0.284);
vec3 c = vec3(0.979, 0.833, 1.123);
vec3 d = vec3(-0.400, 2.116, 3.349);
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.480, 0.482, 0.481],
[0.269, 0.250, 0.284],
[0.979, 0.833, 1.123],
[-0.400, 2.116, 3.349]
]