/* https://grabient.com/_gyXfuzgwzgpugdYgxGgBmgCSgB6gHcgN2gI7gTvovovO?style=linearSwatches&steps=21&angle=90 */
background: linear-gradient(90deg, #b31e20 0.000%, #b31e20 4.762%, #ad2e29 calc(4.762% + 1px), #ad2e29 9.524%, #a73e33 calc(9.524% + 1px), #a73e33 14.286%, #a24d3f calc(14.286% + 1px), #a24d3f 19.048%, #9e5c4b calc(19.048% + 1px), #9e5c4b 23.810%, #9a6a58 calc(23.810% + 1px), #9a6a58 28.571%, #977767 calc(28.571% + 1px), #977767 33.333%, #958377 calc(33.333% + 1px), #958377 38.095%, #938e87 calc(38.095% + 1px), #938e87 42.857%, #929899 calc(42.857% + 1px), #929899 47.619%, #92a2ab calc(47.619% + 1px), #92a2ab 52.381%, #92aabf calc(52.381% + 1px), #92aabf 57.143%, #94b2d3 calc(57.143% + 1px), #94b2d3 61.905%, #95b8e8 calc(61.905% + 1px), #95b8e8 66.667%, #98befe calc(66.667% + 1px), #98befe 71.429%, #9bc3ff calc(71.429% + 1px), #9bc3ff 76.190%, #9fc6ff calc(76.190% + 1px), #9fc6ff 80.952%, #a4c9ff calc(80.952% + 1px), #a4c9ff 85.714%, #a9cbff calc(85.714% + 1px), #a9cbff 90.476%, #afcbff calc(90.476% + 1px), #afcbff 95.238%, #b6cbff calc(95.238% + 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/_gyXfuzgwzgpugdYgxGgBmgCSgB6gHcgN2gI7gTvovovO?style=linearSwatches&steps=21&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 38.095,-247.214 L 38.095,647.214 Z" fill="#b31e20" fill-opacity="1.000" /><path d="M 38.095,647.214 L 38.095,-247.214 L 76.190,-247.214 L 76.190,647.214 Z" fill="#ad2e29" fill-opacity="1.000" /><path d="M 76.190,647.214 L 76.190,-247.214 L 114.286,-247.214 L 114.286,647.214 Z" fill="#a73e33" fill-opacity="1.000" /><path d="M 114.286,647.214 L 114.286,-247.214 L 152.381,-247.214 L 152.381,647.214 Z" fill="#a24d3f" fill-opacity="1.000" /><path d="M 152.381,647.214 L 152.381,-247.214 L 190.476,-247.214 L 190.476,647.214 Z" fill="#9e5c4b" fill-opacity="1.000" /><path d="M 190.476,647.214 L 190.476,-247.214 L 228.571,-247.214 L 228.571,647.214 Z" fill="#9a6a58" fill-opacity="1.000" /><path d="M 228.571,647.214 L 228.571,-247.214 L 266.667,-247.214 L 266.667,647.214 Z" fill="#977767" fill-opacity="1.000" /><path d="M 266.667,647.214 L 266.667,-247.214 L 304.762,-247.214 L 304.762,647.214 Z" fill="#958377" fill-opacity="1.000" /><path d="M 304.762,647.214 L 304.762,-247.214 L 342.857,-247.214 L 342.857,647.214 Z" fill="#938e87" fill-opacity="1.000" /><path d="M 342.857,647.214 L 342.857,-247.214 L 380.952,-247.214 L 380.952,647.214 Z" fill="#929899" fill-opacity="1.000" /><path d="M 380.952,647.214 L 380.952,-247.214 L 419.048,-247.214 L 419.048,647.214 Z" fill="#92a2ab" fill-opacity="1.000" /><path d="M 419.048,647.214 L 419.048,-247.214 L 457.143,-247.214 L 457.143,647.214 Z" fill="#92aabf" fill-opacity="1.000" /><path d="M 457.143,647.214 L 457.143,-247.214 L 495.238,-247.214 L 495.238,647.214 Z" fill="#94b2d3" fill-opacity="1.000" /><path d="M 495.238,647.214 L 495.238,-247.214 L 533.333,-247.214 L 533.333,647.214 Z" fill="#95b8e8" fill-opacity="1.000" /><path d="M 533.333,647.214 L 533.333,-247.214 L 571.429,-247.214 L 571.429,647.214 Z" fill="#98befe" fill-opacity="1.000" /><path d="M 571.429,647.214 L 571.429,-247.214 L 609.524,-247.214 L 609.524,647.214 Z" fill="#9bc3ff" fill-opacity="1.000" /><path d="M 609.524,647.214 L 609.524,-247.214 L 647.619,-247.214 L 647.619,647.214 Z" fill="#9fc6ff" fill-opacity="1.000" /><path d="M 647.619,647.214 L 647.619,-247.214 L 685.714,-247.214 L 685.714,647.214 Z" fill="#a4c9ff" fill-opacity="1.000" /><path d="M 685.714,647.214 L 685.714,-247.214 L 723.810,-247.214 L 723.810,647.214 Z" fill="#a9cbff" fill-opacity="1.000" /><path d="M 723.810,647.214 L 723.810,-247.214 L 761.905,-247.214 L 761.905,647.214 Z" fill="#afcbff" fill-opacity="1.000" /><path d="M 761.905,647.214 L 761.905,-247.214 L 800.000,-247.214 L 800.000,647.214 Z" fill="#b6cbff" fill-opacity="1.000" /></g>
</svg>
["#b31e20", "#ad2e29", "#a73e33", "#a24d3f", "#9e5c4b", "#9a6a58", "#977767", "#958377", "#938e87", "#929899", "#92a2ab", "#92aabf", "#94b2d3", "#95b8e8", "#98befe", "#9bc3ff", "#9fc6ff", "#a4c9ff", "#a9cbff", "#afcbff", "#b6cbff"]
// https://grabient.com/_gyXfuzgwzgpugdYgxGgBmgCSgB6gHcgN2gI7gTvovovO?style=linearSwatches&steps=21&angle=90
// cosine gradient palette — https://iquilezles.org/articles/palettes/
const float STEPS = 21.0;
const float ANGLE = 90.0;
vec3 palette(float t) {
vec3 a = vec3(3.242, -1.082, 3.142);
vec3 b = vec3(2.670, 1.880, 3.142);
vec3 c = vec3(0.102, 0.146, 0.122);
vec3 d = vec3(1.450, 1.860, 1.545);
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);
}
[
[3.242, -1.082, 3.142],
[2.670, 1.880, 3.142],
[0.102, 0.146, 0.122],
[1.450, 1.860, 1.545]
]