/* https://grabient.com/_gFGgFGgFGgEygEygEygPogPogPygAAgFagKhi2vo_QgA?style=linearSwatches&steps=34&angle=90 */
background: linear-gradient(90deg, #d0555d 0.000%, #d0555d 2.941%, #ca417a calc(2.941% + 1px), #ca417a 5.882%, #ba3598 calc(5.882% + 1px), #ba3598 8.824%, #a235b2 calc(8.824% + 1px), #a235b2 11.765%, #853fc5 calc(11.765% + 1px), #853fc5 14.706%, #6853cf calc(14.706% + 1px), #6853cf 17.647%, #4e6ecd calc(17.647% + 1px), #4e6ecd 20.588%, #3c8bc0 calc(20.588% + 1px), #3c8bc0 23.529%, #34a7aa calc(23.529% + 1px), #34a7aa 26.471%, #37be8e calc(26.471% + 1px), #37be8e 29.412%, #44cc70 calc(29.412% + 1px), #44cc70 32.353%, #5bcf55 calc(32.353% + 1px), #5bcf55 35.294%, #76c740 calc(35.294% + 1px), #76c740 38.235%, #94b635 calc(38.235% + 1px), #94b635 41.176%, #af9c35 calc(41.176% + 1px), #af9c35 44.118%, #c37f40 calc(44.118% + 1px), #c37f40 47.059%, #ce6255 calc(47.059% + 1px), #ce6255 50.000%, #ce4a70 calc(50.000% + 1px), #ce4a70 52.941%, #c33a8e calc(52.941% + 1px), #c33a8e 55.882%, #af34aa calc(55.882% + 1px), #af34aa 58.824%, #9439c0 calc(58.824% + 1px), #9439c0 61.765%, #7648cd calc(61.765% + 1px), #7648cd 64.706%, #5b60cf calc(64.706% + 1px), #5b60cf 67.647%, #447dc6 calc(67.647% + 1px), #447dc6 70.588%, #379ab2 calc(70.588% + 1px), #379ab2 73.529%, #34b498 calc(73.529% + 1px), #34b498 76.471%, #3cc67a calc(76.471% + 1px), #3cc67a 79.412%, #4ecf5e calc(79.412% + 1px), #4ecf5e 82.353%, #68cd46 calc(82.353% + 1px), #68cd46 85.294%, #85c038 calc(85.294% + 1px), #85c038 88.235%, #a2aa34 calc(88.235% + 1px), #a2aa34 91.176%, #ba8e3b calc(91.176% + 1px), #ba8e3b 94.118%, #ca704d calc(94.118% + 1px), #ca704d 97.059%, #d05566 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/_gFGgFGgFGgEygEygEygPogPogPygAAgFagKhi2vo_QgA?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="#d0555d" 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="#ca417a" 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="#ba3598" 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="#a235b2" 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="#853fc5" 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="#6853cf" 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="#4e6ecd" 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="#3c8bc0" 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="#34a7aa" 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="#37be8e" 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="#44cc70" 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="#5bcf55" 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="#76c740" 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="#94b635" 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="#af9c35" 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="#c37f40" 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="#ce6255" 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="#ce4a70" 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="#c33a8e" 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="#af34aa" 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="#9439c0" 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="#7648cd" 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="#5b60cf" 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="#447dc6" 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="#379ab2" 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="#34b498" 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="#3cc67a" 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="#4ecf5e" 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="#68cd46" 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="#85c038" 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="#a2aa34" 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="#ba8e3b" 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="#ca704d" 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="#d05566" fill-opacity="1.000" /></g>
</svg>
["#d0555d", "#ca417a", "#ba3598", "#a235b2", "#853fc5", "#6853cf", "#4e6ecd", "#3c8bc0", "#34a7aa", "#37be8e", "#44cc70", "#5bcf55", "#76c740", "#94b635", "#af9c35", "#c37f40", "#ce6255", "#ce4a70", "#c33a8e", "#af34aa", "#9439c0", "#7648cd", "#5b60cf", "#447dc6", "#379ab2", "#34b498", "#3cc67a", "#4ecf5e", "#68cd46", "#85c038", "#a2aa34", "#ba8e3b", "#ca704d", "#d05566"]
// https://grabient.com/_gFGgFGgFGgEygEygEygPogPogPygAAgFagKhi2vo_QgA?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.508, 0.508, 0.508);
vec3 b = vec3(0.306, 0.306, 0.306);
vec3 c = vec3(2.000, 2.000, 2.020);
vec3 d = vec3(0.000, 0.346, 0.673);
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.508, 0.508, 0.508],
[0.306, 0.306, 0.306],
[2.000, 2.000, 2.020],
[0.000, 0.346, 0.673]
]