/* https://grabient.com/_gIagH1gJDgJtgL4gIjgDFgFrgDZhBdggugAAgAuewIWR?style=linearSwatches&steps=34&angle=135 */
background: linear-gradient(135deg, #030037 0.000%, #030037 2.941%, #050033 calc(2.941% + 1px), #050033 5.882%, #080030 calc(5.882% + 1px), #080030 8.824%, #0b002c calc(8.824% + 1px), #0b002c 11.765%, #0e0029 calc(11.765% + 1px), #0e0029 14.706%, #110026 calc(14.706% + 1px), #110026 17.647%, #140023 calc(17.647% + 1px), #140023 20.588%, #180021 calc(20.588% + 1px), #180021 23.529%, #1b001e calc(23.529% + 1px), #1b001e 26.471%, #1f001c calc(26.471% + 1px), #1f001c 29.412%, #23001a calc(29.412% + 1px), #23001a 32.353%, #270018 calc(32.353% + 1px), #270018 35.294%, #2c0017 calc(35.294% + 1px), #2c0017 38.235%, #300016 calc(38.235% + 1px), #300016 41.176%, #350514 calc(41.176% + 1px), #350514 44.118%, #390e14 calc(44.118% + 1px), #390e14 47.059%, #3e1913 calc(47.059% + 1px), #3e1913 50.000%, #432313 calc(50.000% + 1px), #432313 52.941%, #482f12 calc(52.941% + 1px), #482f12 55.882%, #4d3a13 calc(55.882% + 1px), #4d3a13 58.824%, #534613 calc(58.824% + 1px), #534613 61.765%, #585213 calc(61.765% + 1px), #585213 64.706%, #5d5f14 calc(64.706% + 1px), #5d5f14 67.647%, #636c15 calc(67.647% + 1px), #636c15 70.588%, #687817 calc(70.588% + 1px), #687817 73.529%, #6e8518 calc(73.529% + 1px), #6e8518 76.471%, #73921a calc(76.471% + 1px), #73921a 79.412%, #799f1c calc(79.412% + 1px), #799f1c 82.353%, #7fab1e calc(82.353% + 1px), #7fab1e 85.294%, #84b720 calc(85.294% + 1px), #84b720 88.235%, #8ac323 calc(88.235% + 1px), #8ac323 91.176%, #90cf25 calc(91.176% + 1px), #90cf25 94.118%, #95da28 calc(94.118% + 1px), #95da28 97.059%, #9be52c 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/_gIagH1gJDgJtgL4gIjgDFgFrgDZhBdggugAAgAuewIWR?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="#030037" 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="#050033" 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="#080030" 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="#0b002c" 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="#0e0029" 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="#110026" 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="#140023" 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="#180021" 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="#1b001e" 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="#1f001c" 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="#23001a" 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="#270018" 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="#2c0017" 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="#300016" 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="#350514" 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="#390e14" 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="#3e1913" 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="#432313" 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="#482f12" 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="#4d3a13" 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="#534613" 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="#585213" 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="#5d5f14" 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="#636c15" 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="#687817" 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="#6e8518" 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="#73921a" 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="#799f1c" 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="#7fab1e" 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="#84b720" 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="#8ac323" 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="#90cf25" 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="#95da28" 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="#9be52c" fill-opacity="1.000" /></g>
</svg>
["#030037", "#050033", "#080030", "#0b002c", "#0e0029", "#110026", "#140023", "#180021", "#1b001e", "#1f001c", "#23001a", "#270018", "#2c0017", "#300016", "#350514", "#390e14", "#3e1913", "#432313", "#482f12", "#4d3a13", "#534613", "#585213", "#5d5f14", "#636c15", "#687817", "#6e8518", "#73921a", "#799f1c", "#7fab1e", "#84b720", "#8ac323", "#90cf25", "#95da28", "#9be52c"]
// https://grabient.com/_gIagH1gJDgJtgL4gIjgDFgFrgDZhBdggugAAgAuewIWR?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.538, 0.501, 0.579);
vec3 b = vec3(0.575, 0.704, 0.507);
vec3 c = vec3(0.203, 0.375, 0.224);
vec3 d = vec3(3.566, 1.471, -0.623);
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.538, 0.501, 0.579],
[0.575, 0.704, 0.507],
[0.203, 0.375, 0.224],
[3.566, 1.471, -0.623]
]