chore: generate all SVG assets via rust builders

This commit is contained in:
m00d 2025-10-01 12:45:00 +02:00
parent 15287674f1
commit cb66f64896
10 changed files with 1042 additions and 405 deletions

53
assets/logo.svg Normal file
View file

@ -0,0 +1,53 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="320" viewBox="0 0 640 320" role="img" aria-labelledby="title desc">
<title id="title">LPKG Logo</title>
<desc id="desc">Stylised package icon with circuitry and the letters LPKG.</desc>
<defs>
<linearGradient id="bgGradient" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#0f172a" />
<stop offset="100%" stop-color="#1e293b" />
</linearGradient>
<linearGradient id="cubeGradient" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#38bdf8" />
<stop offset="100%" stop-color="#0ea5e9" />
</linearGradient>
<linearGradient id="cubeShadow" x1="0" y1="1" x2="1" y2="0">
<stop offset="0%" stop-color="#0ea5e9" stop-opacity="0.4" />
<stop offset="100%" stop-color="#38bdf8" stop-opacity="0.1" />
</linearGradient>
<linearGradient id="textGradient" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#f8fafc" />
<stop offset="100%" stop-color="#cbd5f5" />
</linearGradient>
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="8" result="blur" />
<feMerge><feMergeNode in="blur" /><feMergeNode in="SourceGraphic" /></feMerge>
</filter>
</defs>
<rect width="640" height="320" rx="28" fill="url(#bgGradient)" />
<g transform="translate(100 60)">
<g filter="url(#glow)">
<path d="M222 86l86-42 86 42v96l-86 42-86-42z" fill="url(#cubeGradient)" />
<path d="M308 44v182l86-42V86z" fill="url(#cubeShadow)" />
<path d="M262 96l46-22 46 22v48l-46 22-46-22z" fill="#0f172a" opacity="0.85" />
<path d="M308 74l32 15v32l-32 15-32-15v-32z" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linejoin="round" />
<path d="M308 122l-32-15" stroke="#38bdf8" stroke-width="4" stroke-linecap="round" opacity="0.6" />
<path d="M308 122l32-15" stroke="#38bdf8" stroke-width="4" stroke-linecap="round" opacity="0.6" />
<circle cx="276" cy="107" r="5" fill="#38bdf8" />
<circle cx="340" cy="107" r="5" fill="#38bdf8" />
</g>
</g>
<g fill="none" stroke="#38bdf8" stroke-width="3" stroke-linecap="round" opacity="0.55">
<path d="M120 78h72" />
<path d="M120 110h48" />
<path d="M120 142h64" />
<path d="M448 110h72" />
<path d="M472 142h88" />
<path d="M448 174h96" />
</g>
<g font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-weight="600" font-size="90" letter-spacing="6">
<text x="120" y="246" fill="url(#textGradient)">LPKG</text>
</g>
<g font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-size="22" fill="#94a3b8">
<text x="122" y="278">Lightweight Package Manager</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

33
assets/nixette-logo.svg Normal file
View file

@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="200" viewBox="0 0 640 200" role="img" aria-labelledby="title desc">
<title id="title">Nixette Logo</title>
<desc id="desc">Wordmark combining Nix and Gentoo motifs with trans pride colours.</desc>
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#55CDFC" />
<stop offset="100%" stop-color="#F7A8B8" />
</linearGradient>
<linearGradient id="text" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#FFFFFF" />
<stop offset="100%" stop-color="#E5E7FF" />
</linearGradient>
<filter id="softShadow" x="-10%" y="-10%" width="120%" height="120%">
<feDropShadow dx="0" dy="6" stdDeviation="12" flood-color="#7C3AED" flood-opacity="0.3" />
</filter>
</defs>
<rect width="640" height="200" rx="36" fill="#0F172A" />
<g transform="translate(100 60)">
<g filter="url(#softShadow)">
<path d="M40 40 L72 0 L144 0 L176 40 L144 80 L72 80 Z" fill="url(#bg)" />
<path d="M72 0 L144 80" stroke="#FFFFFF" stroke-width="6" stroke-linecap="round" opacity="0.55" />
<path d="M144 0 L72 80" stroke="#FFFFFF" stroke-width="6" stroke-linecap="round" opacity="0.55" />
<circle cx="108" cy="40" r="22" fill="#0F172A" stroke="#FFFFFF" stroke-width="6" opacity="0.85" />
<path d="M108 24c8 0 14 6 14 16s-6 16-14 16" stroke="#F7A8B8" stroke-width="4" stroke-linecap="round" fill="none" />
</g>
</g>
<g transform="translate(220 126)" font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-weight="700" font-size="72" letter-spacing="4" fill="url(#text)">
<text>NIXETTE</text>
</g>
<g transform="translate(220 160)" font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-size="22" fill="#A5B4FC">
<text>Declarative · Sourceful · Herself</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

50
assets/nixette-mascot.svg Normal file
View file

@ -0,0 +1,50 @@
<svg xmlns="http://www.w3.org/2000/svg" width="480" height="520" viewBox="0 0 480 520" role="img" aria-labelledby="title desc">
<title id="title">Nixette Mascot Badge</title>
<desc id="desc">Chibi penguin mascot with trans flag hair, blending Nix and Gentoo motifs.</desc>
<defs>
<linearGradient id="bgGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#312E81" />
<stop offset="100%" stop-color="#1E1B4B" />
</linearGradient>
<linearGradient id="hairLeft" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#55CDFC" />
<stop offset="100%" stop-color="#0EA5E9" />
</linearGradient>
<linearGradient id="hairRight" x1="1" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#F7A8B8" />
<stop offset="100%" stop-color="#FB7185" />
</linearGradient>
<linearGradient id="bellyGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#FFFFFF" />
<stop offset="100%" stop-color="#E2E8F0" />
</linearGradient>
</defs>
<rect width="480" height="520" rx="48" fill="url(#bgGrad)" />
<g transform="translate(240 220)">
<path d="M-160 -20 C-140 -160 140 -160 160 -20 C180 140 60 220 0 220 C-60 220 -180 140 -160 -20" fill="#0F172A" />
<ellipse cx="0" cy="40" rx="120" ry="140" fill="#1E293B" />
<path d="M-88 -80 Q-40 -140 0 -120 Q40 -140 88 -80" fill="#1E293B" />
<path d="M-96 -84 Q-60 -160 -8 -132 L-8 -40 Z" fill="url(#hairLeft)" />
<path d="M96 -84 Q60 -160 8 -132 L8 -40 Z" fill="url(#hairRight)" />
<ellipse cx="-44" cy="-8" rx="26" ry="32" fill="#FFFFFF" />
<ellipse cx="44" cy="-8" rx="26" ry="32" fill="#FFFFFF" />
<circle cx="-44" cy="-4" r="14" fill="#0F172A" />
<circle cx="44" cy="-4" r="14" fill="#0F172A" />
<circle cx="-40" cy="-8" r="6" fill="#FFFFFF" opacity="0.7" />
<circle cx="48" cy="-10" r="6" fill="#FFFFFF" opacity="0.7" />
<path d="M0 12 L-18 32 Q0 44 18 32 Z" fill="#F472B6" />
<path d="M0 32 L-16 52 Q0 60 16 52 Z" fill="#FBEAED" />
<path d="M0 46 Q-32 78 0 86 Q32 78 0 46" fill="#FCA5A5" />
<ellipse cx="0" cy="74" rx="70" ry="82" fill="url(#bellyGrad)" />
<path d="M-128 48 Q-176 56 -176 120 Q-128 112 -104 80" fill="#F7A8B8" />
<path d="M128 48 Q176 56 176 120 Q128 112 104 80" fill="#55CDFC" />
<circle cx="-100" cy="94" r="18" fill="#FDE68A" opacity="0.85" />
<circle cx="100" cy="94" r="18" fill="#FDE68A" opacity="0.85" />
</g>
<g transform="translate(90 420)" font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-size="42" fill="#E0E7FF" letter-spacing="6">
<text>NIXIE</text>
</g>
<g transform="translate(90 468)" font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-size="20" fill="#A5B4FC">
<text>Declarative · Sourceful · Herself</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" width="3840" height="2160" viewBox="0 0 3840 2160" role="img" aria-labelledby="title desc">
<title id="title">Nixette Wallpaper</title>
<desc id="desc">Gradient wallpaper combining trans flag waves with Nix and Gentoo motifs.</desc>
<defs>
<linearGradient id="sky" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#0f172a" />
<stop offset="100%" stop-color="#1e1b4b" />
</linearGradient>
<linearGradient id="wave1" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#55CDFC" stop-opacity="0" />
<stop offset="50%" stop-color="#55CDFC" stop-opacity="0.5" />
<stop offset="100%" stop-color="#55CDFC" stop-opacity="0" />
</linearGradient>
<linearGradient id="wave2" x1="1" y1="0" x2="0" y2="0">
<stop offset="0%" stop-color="#F7A8B8" stop-opacity="0" />
<stop offset="50%" stop-color="#F7A8B8" stop-opacity="0.55" />
<stop offset="100%" stop-color="#F7A8B8" stop-opacity="0" />
</linearGradient>
<radialGradient id="halo" cx="0.5" cy="0.5" r="0.7">
<stop offset="0%" stop-color="#FDE68A" stop-opacity="0.8" />
<stop offset="100%" stop-color="#FDE68A" stop-opacity="0" />
</radialGradient>
</defs>
<rect width="3840" height="2160" fill="url(#sky)" />
<rect x="0" y="0" width="3840" height="2160" fill="url(#halo)" opacity="0.4" />
<path d="M0 1430 C640 1320 1280 1580 1860 1500 C2440 1420 3040 1660 3840 1500 L3840 2160 L0 2160 Z" fill="url(#wave1)" />
<path d="M0 1700 C500 1580 1200 1880 1900 1760 C2600 1640 3200 1920 3840 1800 L3840 2160 L0 2160 Z" fill="url(#wave2)" />
<g opacity="0.08" fill="none" stroke="#FFFFFF" stroke-width="24">
<path d="M600 360 l220 -220 h360 l220 220 l-220 220 h-360 z" />
<path d="M600 360 l220 -220" />
<path d="M820 140 l220 220" />
</g>
<g opacity="0.12" fill="none" stroke="#FFFFFF" stroke-width="22" transform="translate(2820 320) scale(0.9)">
<path d="M0 0 C120 -40 220 40 220 160 C220 260 160 320 60 320" />
</g>
<g transform="translate(940 1320)" font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-size="220" font-weight="700" letter-spacing="18" fill="#FFFFFF" opacity="0.95">
<text>NIXETTE</text>
</g>
<g transform="translate(960 1500)" font-family="'Fira Sans', 'Inter', 'Segoe UI', sans-serif" font-size="64" fill="#F7A8B8" opacity="0.9">
<text>Declarative · Sourceful · Herself</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB