/* https://grabient.com/_f-ef-ef-egGYgGYgGYgPngPngPnf9IgAAgC3oOvovogA?style=linearSwatches&steps=34&angle=90 */
background: linear-gradient(90deg, #97d598 0.000%, #97d598 2.941%, #a8d385 calc(2.941% + 1px), #a8d385 5.882%, #b7ce71 calc(5.882% + 1px), #b7ce71 8.824%, #c4c55e calc(8.824% + 1px), #c4c55e 11.765%, #cdb84a calc(11.765% + 1px), #cdb84a 14.706%, #d3aa39 calc(14.706% + 1px), #d3aa39 17.647%, #d59829 calc(17.647% + 1px), #d59829 20.588%, #d4861b calc(20.588% + 1px), #d4861b 23.529%, #ce7210 calc(23.529% + 1px), #ce7210 26.471%, #c65f09 calc(26.471% + 1px), #c65f09 29.412%, #ba4b06 calc(29.412% + 1px), #ba4b06 32.353%, #ab3906 calc(32.353% + 1px), #ab3906 35.294%, #9a2909 calc(35.294% + 1px), #9a2909 38.235%, #871c11 calc(38.235% + 1px), #871c11 41.176%, #74111c calc(41.176% + 1px), #74111c 44.118%, #600929 calc(44.118% + 1px), #600929 47.059%, #4d063a calc(47.059% + 1px), #4d063a 50.000%, #3b064c calc(50.000% + 1px), #3b064c 52.941%, #2a095f calc(52.941% + 1px), #2a095f 55.882%, #1c1072 calc(55.882% + 1px), #1c1072 58.824%, #121b86 calc(58.824% + 1px), #121b86 61.765%, #0a2999 calc(61.765% + 1px), #0a2999 64.706%, #0639aa calc(64.706% + 1px), #0639aa 67.647%, #054bb9 calc(67.647% + 1px), #054bb9 70.588%, #095ec5 calc(70.588% + 1px), #095ec5 73.529%, #1072ce calc(73.529% + 1px), #1072ce 76.471%, #1a85d3 calc(76.471% + 1px), #1a85d3 79.412%, #2898d5 calc(79.412% + 1px), #2898d5 82.353%, #37a9d3 calc(82.353% + 1px), #37a9d3 85.294%, #49b8ce calc(85.294% + 1px), #49b8ce 88.235%, #5cc4c5 calc(88.235% + 1px), #5cc4c5 91.176%, #70cdb8 calc(91.176% + 1px), #70cdb8 94.118%, #84d3a9 calc(94.118% + 1px), #84d3a9 97.059%, #96d598 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/_f-ef-ef-egGYgGYgGYgPngPngPnf9IgAAgC3oOvovogA?style=linearSwatches&steps=34&angle=90 -->
<defs>
<clipPath id="bounds">
<rect x="0" y="0" width="800" height="400" />
</clipPath>
</defs>
<g clip-path="url(#bounds)"><path d="M 0.000,647.214 L 0.000,-247.214 L 23.529,-247.214 L 23.529,647.214 Z" fill="#97d598" fill-opacity="1.000" /><path d="M 23.529,647.214 L 23.529,-247.214 L 47.059,-247.214 L 47.059,647.214 Z" fill="#a8d385" fill-opacity="1.000" /><path d="M 47.059,647.214 L 47.059,-247.214 L 70.588,-247.214 L 70.588,647.214 Z" fill="#b7ce71" fill-opacity="1.000" /><path d="M 70.588,647.214 L 70.588,-247.214 L 94.118,-247.214 L 94.118,647.214 Z" fill="#c4c55e" fill-opacity="1.000" /><path d="M 94.118,647.214 L 94.118,-247.214 L 117.647,-247.214 L 117.647,647.214 Z" fill="#cdb84a" fill-opacity="1.000" /><path d="M 117.647,647.214 L 117.647,-247.214 L 141.176,-247.214 L 141.176,647.214 Z" fill="#d3aa39" fill-opacity="1.000" /><path d="M 141.176,647.214 L 141.176,-247.214 L 164.706,-247.214 L 164.706,647.214 Z" fill="#d59829" fill-opacity="1.000" /><path d="M 164.706,647.214 L 164.706,-247.214 L 188.235,-247.214 L 188.235,647.214 Z" fill="#d4861b" fill-opacity="1.000" /><path d="M 188.235,647.214 L 188.235,-247.214 L 211.765,-247.214 L 211.765,647.214 Z" fill="#ce7210" fill-opacity="1.000" /><path d="M 211.765,647.214 L 211.765,-247.214 L 235.294,-247.214 L 235.294,647.214 Z" fill="#c65f09" fill-opacity="1.000" /><path d="M 235.294,647.214 L 235.294,-247.214 L 258.824,-247.214 L 258.824,647.214 Z" fill="#ba4b06" fill-opacity="1.000" /><path d="M 258.824,647.214 L 258.824,-247.214 L 282.353,-247.214 L 282.353,647.214 Z" fill="#ab3906" fill-opacity="1.000" /><path d="M 282.353,647.214 L 282.353,-247.214 L 305.882,-247.214 L 305.882,647.214 Z" fill="#9a2909" fill-opacity="1.000" /><path d="M 305.882,647.214 L 305.882,-247.214 L 329.412,-247.214 L 329.412,647.214 Z" fill="#871c11" fill-opacity="1.000" /><path d="M 329.412,647.214 L 329.412,-247.214 L 352.941,-247.214 L 352.941,647.214 Z" fill="#74111c" fill-opacity="1.000" /><path d="M 352.941,647.214 L 352.941,-247.214 L 376.471,-247.214 L 376.471,647.214 Z" fill="#600929" fill-opacity="1.000" /><path d="M 376.471,647.214 L 376.471,-247.214 L 400.000,-247.214 L 400.000,647.214 Z" fill="#4d063a" fill-opacity="1.000" /><path d="M 400.000,647.214 L 400.000,-247.214 L 423.529,-247.214 L 423.529,647.214 Z" fill="#3b064c" fill-opacity="1.000" /><path d="M 423.529,647.214 L 423.529,-247.214 L 447.059,-247.214 L 447.059,647.214 Z" fill="#2a095f" fill-opacity="1.000" /><path d="M 447.059,647.214 L 447.059,-247.214 L 470.588,-247.214 L 470.588,647.214 Z" fill="#1c1072" fill-opacity="1.000" /><path d="M 470.588,647.214 L 470.588,-247.214 L 494.118,-247.214 L 494.118,647.214 Z" fill="#121b86" fill-opacity="1.000" /><path d="M 494.118,647.214 L 494.118,-247.214 L 517.647,-247.214 L 517.647,647.214 Z" fill="#0a2999" fill-opacity="1.000" /><path d="M 517.647,647.214 L 517.647,-247.214 L 541.176,-247.214 L 541.176,647.214 Z" fill="#0639aa" fill-opacity="1.000" /><path d="M 541.176,647.214 L 541.176,-247.214 L 564.706,-247.214 L 564.706,647.214 Z" fill="#054bb9" fill-opacity="1.000" /><path d="M 564.706,647.214 L 564.706,-247.214 L 588.235,-247.214 L 588.235,647.214 Z" fill="#095ec5" fill-opacity="1.000" /><path d="M 588.235,647.214 L 588.235,-247.214 L 611.765,-247.214 L 611.765,647.214 Z" fill="#1072ce" fill-opacity="1.000" /><path d="M 611.765,647.214 L 611.765,-247.214 L 635.294,-247.214 L 635.294,647.214 Z" fill="#1a85d3" fill-opacity="1.000" /><path d="M 635.294,647.214 L 635.294,-247.214 L 658.824,-247.214 L 658.824,647.214 Z" fill="#2898d5" fill-opacity="1.000" /><path d="M 658.824,647.214 L 658.824,-247.214 L 682.353,-247.214 L 682.353,647.214 Z" fill="#37a9d3" fill-opacity="1.000" /><path d="M 682.353,647.214 L 682.353,-247.214 L 705.882,-247.214 L 705.882,647.214 Z" fill="#49b8ce" fill-opacity="1.000" /><path d="M 705.882,647.214 L 705.882,-247.214 L 729.412,-247.214 L 729.412,647.214 Z" fill="#5cc4c5" fill-opacity="1.000" /><path d="M 729.412,647.214 L 729.412,-247.214 L 752.941,-247.214 L 752.941,647.214 Z" fill="#70cdb8" fill-opacity="1.000" /><path d="M 752.941,647.214 L 752.941,-247.214 L 776.471,-247.214 L 776.471,647.214 Z" fill="#84d3a9" fill-opacity="1.000" /><path d="M 776.471,647.214 L 776.471,-247.214 L 800.000,-247.214 L 800.000,647.214 Z" fill="#96d598" fill-opacity="1.000" /></g>
</svg>
["#97d598", "#a8d385", "#b7ce71", "#c4c55e", "#cdb84a", "#d3aa39", "#d59829", "#d4861b", "#ce7210", "#c65f09", "#ba4b06", "#ab3906", "#9a2909", "#871c11", "#74111c", "#600929", "#4d063a", "#3b064c", "#2a095f", "#1c1072", "#121b86", "#0a2999", "#0639aa", "#054bb9", "#095ec5", "#1072ce", "#1a85d3", "#2898d5", "#37a9d3", "#49b8ce", "#5cc4c5", "#70cdb8", "#84d3a9", "#96d598"]
// https://grabient.com/_f-ef-ef-egGYgGYgGYgPngPngPnf9IgAAgC3oOvovogA?style=linearSwatches&steps=34&angle=90
// cosine gradient palette — https://iquilezles.org/articles/palettes/
const float STEPS = 34.0;
const float ANGLE = 90.0;
vec3 palette(float t) {
vec3 a = vec3(0.428, 0.428, 0.428);
vec3 b = vec3(0.408, 0.408, 0.408);
vec3 c = vec3(0.999, 0.999, 0.999);
vec3 d = vec3(-0.184, 0.000, 0.183);
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.428, 0.428, 0.428],
[0.408, 0.408, 0.408],
[0.999, 0.999, 0.999],
[-0.184, 0.000, 0.183]
]