/* https://grabient.com/_gIagH1gJDgJtgL4gIjgDFgFrgDZhBdggugAAgAuewIgA?style=linearSwatches&steps=34&angle=135 */
background: linear-gradient(135deg, #c0ffff 0.000%, #c0ffff 2.941%, #bbffff calc(2.941% + 1px), #bbffff 5.882%, #b5ffff calc(5.882% + 1px), #b5ffff 8.824%, #b0fcff calc(8.824% + 1px), #b0fcff 11.765%, #aaf3ff calc(11.765% + 1px), #aaf3ff 14.706%, #a5e9ff calc(14.706% + 1px), #a5e9ff 17.647%, #9fdeff calc(17.647% + 1px), #9fdeff 20.588%, #9ad3ff calc(20.588% + 1px), #9ad3ff 23.529%, #94c7ff calc(23.529% + 1px), #94c7ff 26.471%, #8ebbff calc(26.471% + 1px), #8ebbff 29.412%, #89afff calc(29.412% + 1px), #89afff 32.353%, #83a3ff calc(32.353% + 1px), #83a3ff 35.294%, #7d96ff calc(35.294% + 1px), #7d96ff 38.235%, #7889ff calc(38.235% + 1px), #7889ff 41.176%, #727cfe calc(41.176% + 1px), #727cfe 44.118%, #6c70fb calc(44.118% + 1px), #6c70fb 47.059%, #6763f8 calc(47.059% + 1px), #6763f8 50.000%, #6156f4 calc(50.000% + 1px), #6156f4 52.941%, #5c4af1 calc(52.941% + 1px), #5c4af1 55.882%, #573eed calc(55.882% + 1px), #573eed 58.824%, #5132e9 calc(58.824% + 1px), #5132e9 61.765%, #4c27e4 calc(61.765% + 1px), #4c27e4 64.706%, #471ce0 calc(64.706% + 1px), #471ce0 67.647%, #4212dc calc(67.647% + 1px), #4212dc 70.588%, #3d08d7 calc(70.588% + 1px), #3d08d7 73.529%, #3800d2 calc(73.529% + 1px), #3800d2 76.471%, #3400cd calc(76.471% + 1px), #3400cd 79.412%, #2f00c8 calc(79.412% + 1px), #2f00c8 82.353%, #2b00c3 calc(82.353% + 1px), #2b00c3 85.294%, #2600be calc(85.294% + 1px), #2600be 88.235%, #2200b9 calc(88.235% + 1px), #2200b9 91.176%, #1e00b3 calc(91.176% + 1px), #1e00b3 94.118%, #1b00ae calc(94.118% + 1px), #1b00ae 97.059%, #1700a9 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/_gIagH1gJDgJtgL4gIjgDFgFrgDZhBdggugAAgAuewIgA?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="#c0ffff" 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="#bbffff" 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="#b5ffff" 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="#b0fcff" 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="#aaf3ff" 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="#a5e9ff" 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="#9fdeff" 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="#9ad3ff" 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="#94c7ff" 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="#8ebbff" 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="#89afff" 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="#83a3ff" 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="#7d96ff" 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="#7889ff" 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="#727cfe" 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="#6c70fb" 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="#6763f8" 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="#6156f4" 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="#5c4af1" 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="#573eed" 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="#5132e9" 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="#4c27e4" 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="#471ce0" 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="#4212dc" 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="#3d08d7" 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="#3800d2" 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="#3400cd" 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="#2f00c8" 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="#2b00c3" 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="#2600be" 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="#2200b9" 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="#1e00b3" 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="#1b00ae" 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="#1700a9" fill-opacity="1.000" /></g>
</svg>
["#c0ffff", "#bbffff", "#b5ffff", "#b0fcff", "#aaf3ff", "#a5e9ff", "#9fdeff", "#9ad3ff", "#94c7ff", "#8ebbff", "#89afff", "#83a3ff", "#7d96ff", "#7889ff", "#727cfe", "#6c70fb", "#6763f8", "#6156f4", "#5c4af1", "#573eed", "#5132e9", "#4c27e4", "#471ce0", "#4212dc", "#3d08d7", "#3800d2", "#3400cd", "#2f00c8", "#2b00c3", "#2600be", "#2200b9", "#1e00b3", "#1b00ae", "#1700a9"]
// https://grabient.com/_gIagH1gJDgJtgL4gIjgDFgFrgDZhBdggugAAgAuewIgA?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(4.189, 2.094, 0.000);
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],
[4.189, 2.094, 0.000]
]