/* https://grabient.com/_gAAgAAgAAgPngPngPngPngPngPngAAgCOgEdn0n0mMgA?style=linearSwatches&steps=34&angle=90 */
background: linear-gradient(90deg, #ffcf64 0.000%, #ffcf64 2.941%, #ffc85a calc(2.941% + 1px), #ffc85a 5.882%, #fdc051 calc(5.882% + 1px), #fdc051 8.824%, #fcb749 calc(8.824% + 1px), #fcb749 11.765%, #f9ae40 calc(11.765% + 1px), #f9ae40 14.706%, #f6a538 calc(14.706% + 1px), #f6a538 17.647%, #f29c30 calc(17.647% + 1px), #f29c30 20.588%, #ee9329 calc(20.588% + 1px), #ee9329 23.529%, #e88922 calc(23.529% + 1px), #e88922 26.471%, #e3801c calc(26.471% + 1px), #e3801c 29.412%, #dc7616 calc(29.412% + 1px), #dc7616 32.353%, #d66c11 calc(32.353% + 1px), #d66c11 35.294%, #ce630d calc(35.294% + 1px), #ce630d 38.235%, #c75a09 calc(38.235% + 1px), #c75a09 41.176%, #be5106 calc(41.176% + 1px), #be5106 44.118%, #b64803 calc(44.118% + 1px), #b64803 47.059%, #ad3f01 calc(47.059% + 1px), #ad3f01 50.000%, #a43700 calc(50.000% + 1px), #a43700 52.941%, #9b3000 calc(52.941% + 1px), #9b3000 55.882%, #912801 calc(55.882% + 1px), #912801 58.824%, #882202 calc(58.824% + 1px), #882202 61.765%, #7e1b04 calc(61.765% + 1px), #7e1b04 64.706%, #751606 calc(64.706% + 1px), #751606 67.647%, #6b1109 calc(67.647% + 1px), #6b1109 70.588%, #620c0d calc(70.588% + 1px), #620c0d 73.529%, #580912 calc(73.529% + 1px), #580912 76.471%, #4f0517 calc(76.471% + 1px), #4f0517 79.412%, #47031d calc(79.412% + 1px), #47031d 82.353%, #3e0123 calc(82.353% + 1px), #3e0123 85.294%, #36002a calc(85.294% + 1px), #36002a 88.235%, #2f0031 calc(88.235% + 1px), #2f0031 91.176%, #270139 calc(91.176% + 1px), #270139 94.118%, #210241 calc(94.118% + 1px), #210241 97.059%, #1b044a 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/_gAAgAAgAAgPngPngPngPngPngPngAAgCOgEdn0n0mMgA?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="#ffcf64" 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="#ffc85a" 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="#fdc051" 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="#fcb749" 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="#f9ae40" 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="#f6a538" 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="#f29c30" 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="#ee9329" 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="#e88922" 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="#e3801c" 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="#dc7616" 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="#d66c11" 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="#ce630d" 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="#c75a09" 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="#be5106" 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="#b64803" 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="#ad3f01" 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="#a43700" 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="#9b3000" 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="#912801" 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="#882202" 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="#7e1b04" 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="#751606" 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="#6b1109" 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="#620c0d" 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="#580912" 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="#4f0517" 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="#47031d" 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="#3e0123" 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="#36002a" 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="#2f0031" 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="#270139" 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="#210241" 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="#1b044a" fill-opacity="1.000" /></g>
</svg>
["#ffcf64", "#ffc85a", "#fdc051", "#fcb749", "#f9ae40", "#f6a538", "#f29c30", "#ee9329", "#e88922", "#e3801c", "#dc7616", "#d66c11", "#ce630d", "#c75a09", "#be5106", "#b64803", "#ad3f01", "#a43700", "#9b3000", "#912801", "#882202", "#7e1b04", "#751606", "#6b1109", "#620c0d", "#580912", "#4f0517", "#47031d", "#3e0123", "#36002a", "#2f0031", "#270139", "#210241", "#1b044a"]
// https://grabient.com/_gAAgAAgAAgPngPngPngPngPngPngAAgCOgEdn0n0mMgA?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.500);
vec3 b = vec3(0.499, 0.499, 0.499);
vec3 c = vec3(0.396, 0.396, 0.396);
vec3 d = vec3(0.000, 0.142, 0.285);
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.500],
[0.499, 0.499, 0.499],
[0.396, 0.396, 0.396],
[0.000, 0.142, 0.285]
]