Skip to content

Favicon: add .ico + apple-touch fallbacks so the stack mark shows in every tab#4

Merged
VijitSingh97 merged 1 commit into
mainfrom
claude/favicon-fallbacks
Jun 14, 2026
Merged

Favicon: add .ico + apple-touch fallbacks so the stack mark shows in every tab#4
VijitSingh97 merged 1 commit into
mainfrom
claude/favicon-fallbacks

Conversation

@VijitSingh97

Copy link
Copy Markdown
Contributor

Symptom: the browser tab wasn't showing the orange stack mark.

Root cause (not just cache): the favicon was SVG-only, and both /favicon.ico and /apple-touch-icon.png returned 404. Browsers that don't render SVG favicons — notably Safari, plus older browsers and some non-tab surfaces — request /favicon.ico, get a 404, and fall back to a blank/default icon. So the mark never appeared even though favicon.svg was already the correct orange stack.

Fix

  • static/favicon.ico — 16/32/48, rendered from the existing favicon.svg via librsvg (rsvg-convert). ImageMagick's built-in SVG engine drops stroked paths, so I rendered with librsvg and packed the ICO from the PNGs.
  • static/apple-touch-icon.png — 180×180, solid dark square (iOS rounds corners itself).
  • head.html now links all three:
    <link rel="icon" href="/favicon.ico" sizes="32x32">
    <link rel="icon" href="/favicon.svg" type="image/svg+xml">
    <link rel="apple-touch-icon" href="/apple-touch-icon.png">
    Modern browsers keep using the crisp SVG; Safari/legacy/iOS use the raster fallbacks.

Same orange layered stack mark as the header/footer brand — no new artwork.

Verification

  • hugo --gc --minify --panicOnWarning — clean.
  • htmltest — passes (all three icon files resolve in the build).
  • Rasterized output checked: 32px and the 180px Apple icon render the mark correctly; 16px is legible.

Note: after this deploys, you may still need a hard refresh (or a new tab) to see it — browsers cache favicons very aggressively.

🤖 Generated with Claude Code

…rowser tab

The favicon was SVG-only, and /favicon.ico + /apple-touch-icon.png both 404'd.
Browsers that don't use SVG favicons — notably Safari — request /favicon.ico,
get a 404, and fall back to a blank/default icon, so the orange stack mark wasn't
showing in the tab even though favicon.svg was already correct.

- Add static/favicon.ico (16/32/48, rendered from favicon.svg via librsvg) and
  static/apple-touch-icon.png (180×180, solid dark square for iOS).
- head.html now links .ico + .svg + apple-touch — modern browsers use the crisp
  SVG, everything else gets the raster fallback.
- Same orange layered stack mark as the header/footer brand; no new artwork.

Verified: hugo --gc --minify --panicOnWarning clean; htmltest passes; all three
icon files resolve in the build; .ico/32px and the apple icon render the mark
correctly (checked the rasterized output).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@VijitSingh97 VijitSingh97 merged commit fb75bd6 into main Jun 14, 2026
2 checks passed
@VijitSingh97 VijitSingh97 deleted the claude/favicon-fallbacks branch June 14, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant