feat(brand): V-viewfinder favicon set (replaces split-W on photo)
CI / test (push) Has been cancelled

Picked 3a from the favicons-and-logo-v2 iteration: a yellow V cut out of
navy with the harbor photo visible inside — "you are looking at a
photograph framed by the V". The brand's own glyph rather than initials.

What changed:
- favicon-16 / -32 / -64 / icon-192 / icon-512 / apple-touch-icon (180):
  V at 86% of canvas, navy outside, full center-cropped harbor inside,
  yellow stroke-outlined border proportional to size.
- icon-512-maskable: V at 65% of canvas (inside the Android safe zone),
  navy in the outer 35% so circle/squircle launcher masks crop navy
  pixels, not the V.
- favicon.svg: lightweight vector — yellow V outline on navy, no embedded
  photo (kept under 300 bytes so it's fast even before the build cache).
- favicon.ico: multi-resolution 16/32/64 for legacy clients.

Root-level fallbacks (public/apple-touch-icon.png + -precomposed +
favicon.{svg,ico}) updated in lock-step so iOS's Add-to-Home-Screen
probes pick up the new icon without falling back to a cached old one.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-15 10:28:09 -04:00
parent 3bd0b9a5a1
commit e7b97561c1
20 changed files with 12 additions and 30 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 30 KiB

+4 -10
View File
@@ -1,12 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<defs>
<clipPath id="wv-left"><rect x="0" y="0" width="32" height="64"/></clipPath>
<clipPath id="wv-right"><rect x="32" y="0" width="32" height="64"/></clipPath>
</defs>
<rect width="64" height="64" rx="12" fill="#1a3a5c"/>
<g font-family="system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
font-weight="900" font-size="56" text-anchor="middle">
<text x="32" y="50" fill="#fafafa" clip-path="url(#wv-left)">W</text>
<text x="32" y="50" fill="#f0d000" clip-path="url(#wv-right)">W</text>
</g>
<rect width="64" height="64" rx="10" fill="#0e2740"/>
<path d="M 12 12 L 32 52 L 52 12"
stroke="#f0d000" stroke-width="6"
stroke-linejoin="round" stroke-linecap="round" fill="none"/>
</svg>

Before

Width:  |  Height:  |  Size: 599 B

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

+4 -10
View File
@@ -1,12 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<defs>
<clipPath id="wv-left"><rect x="0" y="0" width="32" height="64"/></clipPath>
<clipPath id="wv-right"><rect x="32" y="0" width="32" height="64"/></clipPath>
</defs>
<rect width="64" height="64" rx="12" fill="#1a3a5c"/>
<g font-family="system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
font-weight="900" font-size="56" text-anchor="middle">
<text x="32" y="50" fill="#fafafa" clip-path="url(#wv-left)">W</text>
<text x="32" y="50" fill="#f0d000" clip-path="url(#wv-right)">W</text>
</g>
<rect width="64" height="64" rx="10" fill="#0e2740"/>
<path d="M 12 12 L 32 52 L 52 12"
stroke="#f0d000" stroke-width="6"
stroke-linejoin="round" stroke-linecap="round" fill="none"/>
</svg>

Before

Width:  |  Height:  |  Size: 599 B

After

Width:  |  Height:  |  Size: 271 B