/* https://grabient.com/_f__f__f8AgPngPngEcgPngPngyggAAgBmf_rn0n0mMgA?style=linearSwatches&steps=34&angle=90 */
background: linear-gradient(90deg, #ffe562 0.000%, #ffe562 2.941%, #fedf62 calc(2.941% + 1px), #fedf62 5.882%, #fdd960 calc(5.882% + 1px), #fdd960 8.824%, #fbd25c calc(8.824% + 1px), #fbd25c 11.765%, #f9ca56 calc(11.765% + 1px), #f9ca56 14.706%, #f6c24f calc(14.706% + 1px), #f6c24f 17.647%, #f2ba47 calc(17.647% + 1px), #f2ba47 20.588%, #edb13e calc(20.588% + 1px), #edb13e 23.529%, #e8a835 calc(23.529% + 1px), #e8a835 26.471%, #e29f2d calc(26.471% + 1px), #e29f2d 29.412%, #dc9626 calc(29.412% + 1px), #dc9626 32.353%, #d58c20 calc(32.353% + 1px), #d58c20 35.294%, #ce831c calc(35.294% + 1px), #ce831c 38.235%, #c6791a calc(38.235% + 1px), #c6791a 41.176%, #be6f1a calc(41.176% + 1px), #be6f1a 44.118%, #b6661d calc(44.118% + 1px), #b6661d 47.059%, #ad5d21 calc(47.059% + 1px), #ad5d21 50.000%, #a45427 calc(50.000% + 1px), #a45427 52.941%, #9a4b2e calc(52.941% + 1px), #9a4b2e 55.882%, #914237 calc(55.882% + 1px), #914237 58.824%, #873a3f calc(58.824% + 1px), #873a3f 61.765%, #7e3248 calc(61.765% + 1px), #7e3248 64.706%, #742b50 calc(64.706% + 1px), #742b50 67.647%, #6b2457 calc(67.647% + 1px), #6b2457 70.588%, #611d5d calc(70.588% + 1px), #611d5d 73.529%, #581761 calc(73.529% + 1px), #581761 76.471%, #4f1262 calc(76.471% + 1px), #4f1262 79.412%, #460e62 calc(79.412% + 1px), #460e62 82.353%, #3e0a5f calc(82.353% + 1px), #3e0a5f 85.294%, #36065b calc(85.294% + 1px), #36065b 88.235%, #2e0455 calc(88.235% + 1px), #2e0455 91.176%, #27024d calc(91.176% + 1px), #27024d 94.118%, #200045 calc(94.118% + 1px), #200045 97.059%, #1a003c 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__f__f8AgPngPngEcgPngPngyggAAgBmf_rn0n0mMgA?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="#ffe562" 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="#fedf62" 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="#fdd960" 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="#fbd25c" 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="#f9ca56" 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="#f6c24f" 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="#f2ba47" 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="#edb13e" 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="#e8a835" 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="#e29f2d" 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="#dc9626" 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="#d58c20" 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="#ce831c" 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="#c6791a" 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="#be6f1a" 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="#b6661d" 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="#ad5d21" 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="#a45427" 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="#9a4b2e" 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="#914237" 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="#873a3f" 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="#7e3248" 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="#742b50" 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="#6b2457" 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="#611d5d" 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="#581761" 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="#4f1262" 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="#460e62" 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="#3e0a5f" 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="#36065b" 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="#2e0455" 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="#27024d" 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="#200045" 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="#1a003c" fill-opacity="1.000" /></g>
</svg>
["#ffe562", "#fedf62", "#fdd960", "#fbd25c", "#f9ca56", "#f6c24f", "#f2ba47", "#edb13e", "#e8a835", "#e29f2d", "#dc9626", "#d58c20", "#ce831c", "#c6791a", "#be6f1a", "#b6661d", "#ad5d21", "#a45427", "#9a4b2e", "#914237", "#873a3f", "#7e3248", "#742b50", "#6b2457", "#611d5d", "#581761", "#4f1262", "#460e62", "#3e0a5f", "#36065b", "#2e0455", "#27024d", "#200045", "#1a003c"]
// https://grabient.com/_f__f__f8AgPngPngEcgPngPngyggAAgBmf_rn0n0mMgA?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.499, 0.499, 0.244);
vec3 b = vec3(0.499, 0.499, 0.142);
vec3 c = vec3(0.396, 0.396, 1.280);
vec3 d = vec3(0.000, 0.102, -0.021);
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.499, 0.499, 0.244],
[0.499, 0.499, 0.142],
[0.396, 0.396, 1.280],
[0.000, 0.102, -0.021]
]