Files
MusicPlayer/icon.svg
Sansan 10e9e7b2a4
Build / test (pull_request) Successful in 22s
Build / build (pull_request) Skipped
New app icon, packaged with a menu entry for Linux
The icon is a plate wearing headphones with a red Nordic house cookie
on it. It replaces the default Godot icon, so the game window, Windows
and macOS builds use it.

Linux programs can't carry their own icon, so the build now also makes
MusicPlayer_<version>_linux.tar.gz with the game, the icon as a PNG, a
.desktop menu entry and install.sh, which installs them for the current
user. The bare Linux binary is still published.
2026-10-06 08:32:56 +02:00

117 lines
5.7 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
<defs>
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#6fb1d6"/>
<stop offset="1" stop-color="#2e6a94"/>
</linearGradient>
<radialGradient id="plate" cx="0.42" cy="0.38" r="0.7">
<stop offset="0" stop-color="#ffffff"/>
<stop offset="1" stop-color="#e3ded6"/>
</radialGradient>
<radialGradient id="well" cx="0.45" cy="0.4" r="0.7">
<stop offset="0" stop-color="#fbf9f5"/>
<stop offset="1" stop-color="#e9e3d9"/>
</radialGradient>
<linearGradient id="band" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#4a4a4a"/>
<stop offset="1" stop-color="#1f1f1f"/>
</linearGradient>
<linearGradient id="cup" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#3d3d3d"/>
<stop offset="1" stop-color="#151515"/>
</linearGradient>
<linearGradient id="cookie" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#d99a52"/>
<stop offset="1" stop-color="#b8742f"/>
</linearGradient>
<linearGradient id="falu" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#c63b2f"/>
<stop offset="1" stop-color="#9e2a21"/>
</linearGradient>
</defs>
<!-- Background -->
<rect x="16" y="16" width="480" height="480" rx="108" fill="url(#sky)"/>
<!-- Plate shadow, plate, rim band and well -->
<ellipse cx="262" cy="306" rx="178" ry="174" fill="#1d4a6b" opacity="0.35"/>
<circle cx="256" cy="294" r="172" fill="url(#plate)" stroke="#d6d0c6" stroke-width="3"/>
<circle cx="256" cy="294" r="150" fill="none" stroke="#3b6ea5" stroke-width="7"/>
<circle cx="256" cy="294" r="139" fill="none" stroke="#3b6ea5" stroke-width="2"/>
<circle cx="256" cy="294" r="116" fill="url(#well)" stroke="#ddd6cb" stroke-width="2"/>
<!-- Headphone band arching over the plate -->
<path d="M 92 286 A 164 164 0 0 1 420 286" fill="none" stroke="url(#band)" stroke-width="26" stroke-linecap="round"/>
<path d="M 104 262 A 152 152 0 0 1 408 262" fill="none" stroke="#6a6a6a" stroke-width="4" stroke-linecap="round" opacity="0.6"/>
<!-- Ear cups on the plate's edges -->
<g>
<rect x="58" y="232" width="62" height="118" rx="28" fill="url(#cup)"/>
<rect x="104" y="246" width="28" height="90" rx="14" fill="#2c2c2c" stroke="#ff8c1a" stroke-width="4"/>
<rect x="70" y="252" width="10" height="56" rx="5" fill="#ffffff" opacity="0.15"/>
</g>
<g>
<rect x="392" y="232" width="62" height="118" rx="28" fill="url(#cup)"/>
<rect x="380" y="246" width="28" height="90" rx="14" fill="#2c2c2c" stroke="#ff8c1a" stroke-width="4"/>
<rect x="404" y="252" width="10" height="56" rx="5" fill="#ffffff" opacity="0.15"/>
</g>
<!-- Crumbs -->
<g fill="#c98a45">
<circle cx="178" cy="370" r="4"/>
<circle cx="190" cy="381" r="2.5"/>
<circle cx="336" cy="378" r="3.5"/>
<circle cx="326" cy="214" r="2.5"/>
<circle cx="184" cy="226" r="3"/>
</g>
<!-- House-shaped cookie: thick baked edge, then falu red icing -->
<g transform="translate(256 288) scale(1.12) translate(-256 -288)">
<!-- shadow -->
<path d="M 256 192 L 344 270 L 334 270 L 334 368 L 178 368 L 178 270 L 168 270 Z"
fill="#7a4a1e" opacity="0.28" stroke="#7a4a1e" stroke-width="16" stroke-linejoin="round"
transform="translate(5 7)"/>
<!-- chimney, baked -->
<rect x="290" y="206" width="22" height="40" rx="6" fill="#c98a45" stroke="#c98a45" stroke-width="10" stroke-linejoin="round"/>
<!-- cookie body with a thick, rounded baked edge -->
<path d="M 256 192 L 344 270 L 334 270 L 334 368 L 178 368 L 178 270 L 168 270 Z"
fill="url(#cookie)" stroke="#c98a45" stroke-width="16" stroke-linejoin="round"/>
<path d="M 256 192 L 344 270 L 334 270 L 334 368 L 178 368 L 178 270 L 168 270 Z"
fill="none" stroke="#a8682a" stroke-width="2" stroke-linejoin="round" transform="translate(0 0)" opacity="0.6"/>
<rect x="295" y="214" width="12" height="26" rx="2" fill="#3a3a3a"/>
<!-- roof icing -->
<path d="M 256 210 L 324 270 L 188 270 Z" fill="#3e3e46"/>
<!-- walls icing, falu red -->
<rect x="190" y="272" width="132" height="86" rx="4" fill="url(#falu)"/>
<!-- white roof edge piping -->
<path d="M 182 274 L 256 208 L 330 274" fill="none" stroke="#fdfbf7" stroke-width="7" stroke-linecap="round" stroke-linejoin="round"/>
<!-- white corner boards -->
<rect x="190" y="272" width="8" height="86" fill="#fdfbf7"/>
<rect x="314" y="272" width="8" height="86" fill="#fdfbf7"/>
<!-- windows with white frames and crosses -->
<rect x="210" y="288" width="30" height="30" rx="2" fill="#2f5d86" stroke="#fdfbf7" stroke-width="5"/>
<path d="M 225 288 V 318 M 210 303 H 240" stroke="#fdfbf7" stroke-width="3"/>
<rect x="272" y="288" width="30" height="30" rx="2" fill="#2f5d86" stroke="#fdfbf7" stroke-width="5"/>
<path d="M 287 288 V 318 M 272 303 H 302" stroke="#fdfbf7" stroke-width="3"/>
<!-- door with white frame -->
<rect x="242" y="320" width="28" height="38" rx="2" fill="#7e1f18" stroke="#fdfbf7" stroke-width="4"/>
<circle cx="264" cy="340" r="2.5" fill="#f2c14e"/>
<!-- gable window in the roof -->
<circle cx="256" cy="246" r="8" fill="#f2c14e" stroke="#fdfbf7" stroke-width="3"/>
<!-- dotted icing along the cookie's bottom edge -->
<g fill="#fdfbf7">
<circle cx="196" cy="368" r="3"/>
<circle cx="214" cy="368" r="3"/>
<circle cx="232" cy="368" r="3"/>
<circle cx="250" cy="368" r="3"/>
<circle cx="268" cy="368" r="3"/>
<circle cx="286" cy="368" r="3"/>
<circle cx="304" cy="368" r="3"/>
<circle cx="322" cy="368" r="3"/>
</g>
</g>
</svg>