/* https://grabient.com/_gCYgAKgAAfrmfqUf2cgOVgOpgsPgA9f_XgAAn0n0wVgA?style=angularSwatches&steps=34&angle=180 */
background: conic-gradient(from 180deg, #0c0031 0.000deg, #0c0031 10.588deg, #1a003e calc(10.588deg + 0.1deg), #1a003e 21.176deg, #2c005e calc(21.176deg + 0.1deg), #2c005e 31.765deg, #430089 calc(31.765deg + 0.1deg), #430089 42.353deg, #5d00b1 calc(42.353deg + 0.1deg), #5d00b1 52.941deg, #7900c9 calc(52.941deg + 0.1deg), #7900c9 63.529deg, #970fcb calc(63.529deg + 0.1deg), #970fcb 74.118deg, #b52ab6 calc(74.118deg + 0.1deg), #b52ab6 84.706deg, #d3488f calc(84.706deg + 0.1deg), #d3488f 95.294deg, #ef6864 calc(95.294deg + 0.1deg), #ef6864 105.882deg, #ff8841 calc(105.882deg + 0.1deg), #ff8841 116.471deg, #ffa932 calc(116.471deg + 0.1deg), #ffa932 127.059deg, #ffc83a calc(127.059deg + 0.1deg), #ffc83a 137.647deg, #ffe558 calc(137.647deg + 0.1deg), #ffe558 148.235deg, #ffff82 calc(148.235deg + 0.1deg), #ffff82 158.824deg, #ffffab calc(158.824deg + 0.1deg), #ffffab 169.412deg, #ffffc7 calc(169.412deg + 0.1deg), #ffffc7 180.000deg, #ffffcd calc(180.000deg + 0.1deg), #ffffcd 190.588deg, #ffffba calc(190.588deg + 0.1deg), #ffffba 201.176deg, #ffff96 calc(201.176deg + 0.1deg), #ffff96 211.765deg, #ffff6b calc(211.765deg + 0.1deg), #ffff6b 222.353deg, #f6ff46 calc(222.353deg + 0.1deg), #f6ff46 232.941deg, #daff33 calc(232.941deg + 0.1deg), #daff33 243.529deg, #bcf237 calc(243.529deg + 0.1deg), #bcf237 254.118deg, #9ed652 calc(254.118deg + 0.1deg), #9ed652 264.706deg, #80b87b calc(264.706deg + 0.1deg), #80b87b 275.294deg, #6398a5 calc(275.294deg + 0.1deg), #6398a5 285.882deg, #4977c4 calc(285.882deg + 0.1deg), #4977c4 296.471deg, #3156cd calc(296.471deg + 0.1deg), #3156cd 307.059deg, #1e37bf calc(307.059deg + 0.1deg), #1e37bf 317.647deg, #0f1b9c calc(317.647deg + 0.1deg), #0f1b9c 328.235deg, #050271 calc(328.235deg + 0.1deg), #050271 338.824deg, #00004b calc(338.824deg + 0.1deg), #00004b 349.412deg, #010034 calc(349.412deg + 0.1deg) 360.000deg);
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="400" viewBox="0 0 800 400" preserveAspectRatio="none">
<!-- https://grabient.com/_gCYgAKgAAfrmfqUf2cgOVgOpgsPgA9f_XgAAn0n0wVgA?style=angularSwatches&steps=34&angle=180 -->
<defs>
<clipPath id="squareClip">
<rect x="0" y="0" width="800" height="400" />
</clipPath>
<filter id="antiGap">
<feGaussianBlur in="SourceGraphic" stdDeviation="0.3" />
</filter>
</defs>
<g clip-path="url(#squareClip)" filter="url(#antiGap)" shape-rendering="crispEdges">
<path d="
M 400.000,200.000
L 400.000,647.214
A 447.214,447.214 0 0 1 317.826,639.600
Z
" fill="#0c0031" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 317.826,639.600
A 447.214,447.214 0 0 1 238.451,617.016
Z
" fill="#1a003e" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 238.451,617.016
A 447.214,447.214 0 0 1 164.570,580.228
Z
" fill="#2c005e" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 164.570,580.228
A 447.214,447.214 0 0 1 98.714,530.495
Z
" fill="#430089" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 98.714,530.495
A 447.214,447.214 0 0 1 43.116,469.508
Z
" fill="#5d00b1" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 43.116,469.508
A 447.214,447.214 0 0 1 -0.328,399.343
Z
" fill="#7900c9" fill-opacity="1.000" /><path d="
M 400.000,200.000
L -0.328,399.343
A 447.214,447.214 0 0 1 -30.143,322.383
Z
" fill="#970fcb" fill-opacity="1.000" /><path d="
M 400.000,200.000
L -30.143,322.383
A 447.214,447.214 0 0 1 -45.306,241.263
Z
" fill="#b52ab6" fill-opacity="1.000" /><path d="
M 400.000,200.000
L -45.306,241.263
A 447.214,447.214 0 0 1 -45.306,158.737
Z
" fill="#d3488f" fill-opacity="1.000" /><path d="
M 400.000,200.000
L -45.306,158.737
A 447.214,447.214 0 0 1 -30.143,77.617
Z
" fill="#ef6864" fill-opacity="1.000" /><path d="
M 400.000,200.000
L -30.143,77.617
A 447.214,447.214 0 0 1 -0.328,0.657
Z
" fill="#ff8841" fill-opacity="1.000" /><path d="
M 400.000,200.000
L -0.328,0.657
A 447.214,447.214 0 0 1 43.116,-69.508
Z
" fill="#ffa932" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 43.116,-69.508
A 447.214,447.214 0 0 1 98.714,-130.495
Z
" fill="#ffc83a" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 98.714,-130.495
A 447.214,447.214 0 0 1 164.570,-180.228
Z
" fill="#ffe558" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 164.570,-180.228
A 447.214,447.214 0 0 1 238.451,-217.016
Z
" fill="#ffff82" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 238.451,-217.016
A 447.214,447.214 0 0 1 317.826,-239.600
Z
" fill="#ffffab" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 317.826,-239.600
A 447.214,447.214 0 0 1 400.000,-247.214
Z
" fill="#ffffc7" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 400.000,-247.214
A 447.214,447.214 0 0 1 482.174,-239.600
Z
" fill="#ffffcd" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 482.174,-239.600
A 447.214,447.214 0 0 1 561.549,-217.016
Z
" fill="#ffffba" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 561.549,-217.016
A 447.214,447.214 0 0 1 635.430,-180.228
Z
" fill="#ffff96" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 635.430,-180.228
A 447.214,447.214 0 0 1 701.286,-130.495
Z
" fill="#ffff6b" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 701.286,-130.495
A 447.214,447.214 0 0 1 756.884,-69.508
Z
" fill="#f6ff46" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 756.884,-69.508
A 447.214,447.214 0 0 1 800.328,0.657
Z
" fill="#daff33" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 800.328,0.657
A 447.214,447.214 0 0 1 830.143,77.617
Z
" fill="#bcf237" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 830.143,77.617
A 447.214,447.214 0 0 1 845.306,158.737
Z
" fill="#9ed652" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 845.306,158.737
A 447.214,447.214 0 0 1 845.306,241.263
Z
" fill="#80b87b" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 845.306,241.263
A 447.214,447.214 0 0 1 830.143,322.383
Z
" fill="#6398a5" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 830.143,322.383
A 447.214,447.214 0 0 1 800.328,399.343
Z
" fill="#4977c4" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 800.328,399.343
A 447.214,447.214 0 0 1 756.884,469.508
Z
" fill="#3156cd" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 756.884,469.508
A 447.214,447.214 0 0 1 701.286,530.495
Z
" fill="#1e37bf" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 701.286,530.495
A 447.214,447.214 0 0 1 635.430,580.228
Z
" fill="#0f1b9c" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 635.430,580.228
A 447.214,447.214 0 0 1 561.549,617.016
Z
" fill="#050271" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 561.549,617.016
A 447.214,447.214 0 0 1 482.174,639.600
Z
" fill="#00004b" fill-opacity="1.000" /><path d="
M 400.000,200.000
L 482.174,639.600
A 447.214,447.214 0 0 1 400.000,647.214
Z
" fill="#010034" fill-opacity="1.000" /></g>
</svg>
["#0c0031", "#1a003e", "#2c005e", "#430089", "#5d00b1", "#7900c9", "#970fcb", "#b52ab6", "#d3488f", "#ef6864", "#ff8841", "#ffa932", "#ffc83a", "#ffe558", "#ffff82", "#ffffab", "#ffffc7", "#ffffcd", "#ffffba", "#ffff96", "#ffff6b", "#f6ff46", "#daff33", "#bcf237", "#9ed652", "#80b87b", "#6398a5", "#4977c4", "#3156cd", "#1e37bf", "#0f1b9c", "#050271", "#00004b", "#010034"]
// https://grabient.com/_gCYgAKgAAfrmfqUf2cgOVgOpgsPgA9f_XgAAn0n0wVgA?style=angularSwatches&steps=34&angle=180
// cosine gradient palette — https://iquilezles.org/articles/palettes/
const float STEPS = 34.0;
const float ANGLE = 180.0;
vec3 palette(float t) {
vec3 a = vec3(0.652, 0.510, 0.500);
vec3 b = vec3(-0.653, -0.694, -0.306);
vec3 c = vec3(0.958, 0.979, 2.958);
vec3 d = vec3(0.061, -0.041, 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;
// conic from ANGLE, clockwise from top (CSS convention)
float t = fract((atan(p.x, p.y) - radians(ANGLE)) / 6.283185);
fragColor = vec4(stops(t), 1.0);
}
[
[0.652, 0.510, 0.500],
[-0.653, -0.694, -0.306],
[0.958, 0.979, 2.958],
[0.061, -0.041, 0.000]
]