/* https://grabient.com/_gAAgAAf-4gPngPngB6gPngPngu2f_CgA9gAAn0n0vogA?style=linearSwatches&steps=34&angle=90 */
background: linear-gradient(90deg, #f5f67d 0.000%, #f5f67d 2.941%, #fcea7a calc(2.941% + 1px), #fcea7a 5.882%, #ffdb74 calc(5.882% + 1px), #ffdb74 8.824%, #fdc96b calc(8.824% + 1px), #fdc96b 11.765%, #f6b463 calc(11.765% + 1px), #f6b463 14.706%, #eb9d5e calc(14.706% + 1px), #eb9d5e 17.647%, #dd855e calc(17.647% + 1px), #dd855e 20.588%, #ca6d63 calc(20.588% + 1px), #ca6d63 23.529%, #b6566b calc(23.529% + 1px), #b6566b 26.471%, #9f4074 calc(26.471% + 1px), #9f4074 29.412%, #872c7a calc(29.412% + 1px), #872c7a 32.353%, #6f1b7d calc(32.353% + 1px), #6f1b7d 35.294%, #570e7a calc(35.294% + 1px), #570e7a 38.235%, #410574 calc(38.235% + 1px), #410574 41.176%, #2d016b calc(41.176% + 1px), #2d016b 44.118%, #1c0163 calc(44.118% + 1px), #1c0163 47.059%, #0f055e calc(47.059% + 1px), #0f055e 50.000%, #060e5e calc(50.000% + 1px), #060e5e 52.941%, #011b63 calc(52.941% + 1px), #011b63 55.882%, #012c6b calc(55.882% + 1px), #012c6b 58.824%, #054073 calc(58.824% + 1px), #054073 61.765%, #0e567a calc(61.765% + 1px), #0e567a 64.706%, #1a6d7d calc(64.706% + 1px), #1a6d7d 67.647%, #2b857a calc(67.647% + 1px), #2b857a 70.588%, #3e9d74 calc(70.588% + 1px), #3e9d74 73.529%, #54b46b calc(73.529% + 1px), #54b46b 76.471%, #6cc963 calc(76.471% + 1px), #6cc963 79.412%, #84db5e calc(79.412% + 1px), #84db5e 82.353%, #9cea5e calc(82.353% + 1px), #9cea5e 85.294%, #b3f663 calc(85.294% + 1px), #b3f663 88.235%, #c8fc6b calc(88.235% + 1px), #c8fc6b 91.176%, #daff73 calc(91.176% + 1px), #daff73 94.118%, #eafd7a calc(94.118% + 1px), #eafd7a 97.059%, #f5f67d 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/_gAAgAAf-4gPngPngB6gPngPngu2f_CgA9gAAn0n0vogA?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="#f5f67d" 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="#fcea7a" 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="#ffdb74" 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="#fdc96b" 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="#f6b463" 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="#eb9d5e" 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="#dd855e" 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="#ca6d63" 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="#b6566b" 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="#9f4074" 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="#872c7a" 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="#6f1b7d" 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="#570e7a" 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="#410574" 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="#2d016b" 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="#1c0163" 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="#0f055e" 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="#060e5e" 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="#011b63" 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="#012c6b" 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="#054073" 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="#0e567a" 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="#1a6d7d" 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="#2b857a" 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="#3e9d74" 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="#54b46b" 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="#6cc963" 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="#84db5e" 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="#9cea5e" 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="#b3f663" 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="#c8fc6b" 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="#daff73" 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="#eafd7a" 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="#f5f67d" fill-opacity="1.000" /></g>
</svg>
["#f5f67d", "#fcea7a", "#ffdb74", "#fdc96b", "#f6b463", "#eb9d5e", "#dd855e", "#ca6d63", "#b6566b", "#9f4074", "#872c7a", "#6f1b7d", "#570e7a", "#410574", "#2d016b", "#1c0163", "#0f055e", "#060e5e", "#011b63", "#012c6b", "#054073", "#0e567a", "#1a6d7d", "#2b857a", "#3e9d74", "#54b46b", "#6cc963", "#84db5e", "#9cea5e", "#b3f663", "#c8fc6b", "#daff73", "#eafd7a", "#f5f67d"]
// https://grabient.com/_gAAgAAf-4gPngPngB6gPngPngu2f_CgA9gAAn0n0vogA?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.500, 0.500, 0.428);
vec3 b = vec3(0.499, 0.499, 0.061);
vec3 c = vec3(0.999, 0.999, 2.998);
vec3 d = vec3(-0.062, 0.061, 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.500, 0.500, 0.428],
[0.499, 0.499, 0.061],
[0.999, 0.999, 2.998],
[-0.062, 0.061, 0.000]
]