feat(icon): coffin + play app icon

Replace the crypt-archway icon with a goth coffin whose play wedge is
punched out as negative space, in the same default palette. Regenerate
all derived PNGs (web icon-512/192, apple-touch-icon, and the 256px
icon.png used for the desktop window/tray + Linux/AppImage/macOS packaging).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019d9sNr6GAtXoVpLJsnh19L
This commit is contained in:
Luna 2026-07-22 04:02:42 -07:00
parent c06d28cef5
commit db3fa5f86c
No known key found for this signature in database
5 changed files with 19 additions and 19 deletions

BIN
icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

View file

@ -1,31 +1,31 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<!-- Catacomb app icon: a crypt archway sheltering a play wedge, in the <!-- Catacomb app icon: a goth coffin with a play triangle punched out of
UI's default palette (bg #1a1a2e / accent #e94560). Full-bleed it (negative space), in the UI's default palette (bg #1a1a2e / accent
background with all strokes inside the central maskable safe zone, #e94560). Full-bleed background with the coffin inside the central
so the same art serves purpose:any and purpose:maskable. maskable safe zone, so the same art serves purpose:any and
Regenerate the PNGs after editing: purpose:maskable.
rsvg-convert -w 512 -h 512 icon.svg -o icon-512.png Regenerate every derived PNG after editing:
rsvg-convert -w 192 -h 192 icon.svg -o icon-192.png rsvg-convert -w 512 -h 512 src/web_ui/icon.svg -o src/web_ui/icon-512.png
rsvg-convert -w 180 -h 180 icon.svg -o apple-touch-icon.png --> rsvg-convert -w 192 -h 192 src/web_ui/icon.svg -o src/web_ui/icon-192.png
rsvg-convert -w 180 -h 180 src/web_ui/icon.svg -o src/web_ui/apple-touch-icon.png
rsvg-convert -w 256 -h 256 src/web_ui/icon.svg -o icon.png # desktop window / tray / packaging -->
<defs> <defs>
<radialGradient id="bg" cx="30%" cy="12%" r="130%"> <radialGradient id="bg" cx="30%" cy="12%" r="130%">
<stop offset="0" stop-color="#272747"/> <stop offset="0" stop-color="#272747"/>
<stop offset="1" stop-color="#131322"/> <stop offset="1" stop-color="#131322"/>
</radialGradient> </radialGradient>
<linearGradient id="arch" x1="0" y1="0" x2="0" y2="1"> <linearGradient id="acc" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#ff5f7d"/> <stop offset="0" stop-color="#ff5f7d"/>
<stop offset="1" stop-color="#cc2b4d"/> <stop offset="1" stop-color="#cc2b4d"/>
</linearGradient> </linearGradient>
<!-- punch the play wedge out of the solid coffin so the bg shows through -->
<mask id="cut">
<rect width="512" height="512" fill="white"/>
<polygon points="230,206 230,308 312,257" fill="black"/>
</mask>
</defs> </defs>
<rect width="512" height="512" fill="url(#bg)"/> <rect width="512" height="512" fill="url(#bg)"/>
<!-- doorway interior: faint accent glow so the opening reads as depth --> <!-- hexagonal coffin: flat head edge, sharp shoulder, long taper, flat foot -->
<path d="M192 396 V240 a64 64 0 0 1 128 0 V396 Z" fill="#e94560" opacity="0.16"/> <polygon points="206,104 306,104 354,172 314,426 198,426 158,172"
<!-- arch --> fill="url(#acc)" mask="url(#cut)"/>
<path d="M154 396 V240 a102 102 0 0 1 204 0 V396" fill="none"
stroke="url(#arch)" stroke-width="28" stroke-linecap="round"/>
<!-- floor (solid colour: a zero-height bounding box degenerates the
objectBoundingBox gradient and rsvg drops the stroke entirely) -->
<path d="M118 396 H394" stroke="#cc2b4d" stroke-width="28" stroke-linecap="round"/>
<!-- play wedge in the doorway -->
<path d="M233 282 l60 34 -60 34 Z" fill="#ff5f7d"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before After
Before After