Icon: redraw # as vector path for true centering

User flagged the Windows .exe icon as having the hash sign visually
biased toward the top. Root cause: the previous icon source SVG used
<text> with dominant-baseline="central" — the rasterizer fell back to
whatever monospaced font it found, and that font's # glyph isn't
positioned at the geometric center of its em-box (most monospaced
fonts have the # mark biased upward in their em-square).

Replace the text-rendered # with 4 vector <line> elements forming a
mathematically symmetric # centered at (512, 512) of the 1024 canvas.
No font dependency, deterministic across rasterizers.

Re-rendered:
  - assets/images/app_logo.png — master 1024x1024 PNG
  - windows/runner/resources/app_icon.ico — 7-size .ico (16..256)
  - assets/images/cakewallet_android_icon/mipmap-*/ic_launcher.png
    (5 densities, the legacy launcher PNG; CI symlinks from here)

NOT regenerated in this commit (follow-up):
  - assets/images/cakewallet_android_icon/mipmap-*/ic_launcher_{foreground,background,monochrome}.png
    (adaptive icons used on Android 8+ — need separate foreground/
    background composition logic)
  - assets/images/ios_icons/cakewallet_ios_icons/* (70 files)
  - assets/images/macos_icons/cakewallet_macos_icons/* (7 files)
This commit is contained in:
jwinterm
2026-05-22 12:16:07 -04:00
parent a2a9c1b0aa
commit 20ad49a403
8 changed files with 14 additions and 10 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 925 B

+14 -10
View File
@@ -5,14 +5,18 @@
hash_wallet_logos.svg (#1a5c38). iOS/Android round the corners
automatically; we ship a square fill. -->
<rect width="1024" height="1024" fill="#1a5c38"/>
<!-- # mark, white, centered. ui-monospace falls back to the platform's
default monospace; the rasterizer bakes this into a PNG so font
availability on user devices doesn't matter. -->
<text x="512" y="512"
text-anchor="middle"
dominant-baseline="central"
font-family="ui-monospace, 'JetBrains Mono', 'Courier New', monospace"
font-size="720"
font-weight="700"
fill="#ffffff">#</text>
<!-- # mark, drawn as 4 vector lines centered at (512, 512). Previous
version used <text> with dominant-baseline="central", but the
rendered # was visually biased toward the top because monospaced
font glyph metrics don't put the # at the geometric center of the
em-box. Path-based rendering removes the font dependency
entirely. -->
<g stroke="#ffffff" stroke-width="80" stroke-linecap="square">
<!-- horizontal bars (top, bottom) — at y = 512 ± 100 -->
<line x1="212" y1="412" x2="812" y2="412"/>
<line x1="212" y1="612" x2="812" y2="612"/>
<!-- vertical bars (left, right) — at x = 512 ± 100 -->
<line x1="412" y1="212" x2="412" y2="812"/>
<line x1="612" y1="212" x2="612" y2="812"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 861 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 135 KiB