Skip to content

docs: add favicons and web app manifest#448

Merged
jdx merged 2 commits intomainfrom
claude/sweet-kapitsa-d61821
Apr 27, 2026
Merged

docs: add favicons and web app manifest#448
jdx merged 2 commits intomainfrom
claude/sweet-kapitsa-d61821

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Apr 27, 2026

Summary

  • Add a simplified vault-door favicon.svg (drops the spokes, dial markings, and handle bolt from logo.svg so the icon stays legible at 16×16) and wire it into the VitePress head config
  • Ship raster fallbacks generated from the SVG: favicon.ico, favicon-16x16.png, favicon-32x32.png, apple-touch-icon.png (180×180), android-chrome-192x192.png, android-chrome-512x512.png
  • Add site.webmanifest for installable-PWA metadata (matches the variant set used by the mise docs site)

Test plan

  • cd docs && npm run docs:dev and confirm the vault-door favicon appears in the browser tab
  • View page source — confirm <link rel="icon" ...> entries and <link rel="manifest" href="/site.webmanifest"> are present in <head>
  • Hard-refresh (favicons cache aggressively) and verify on at least one Chromium and one Safari browser
  • Spot-check apple-touch-icon.png renders correctly (open /apple-touch-icon.png directly)

🤖 Generated with Claude Code


Note

Low Risk
Low risk: docs-only change that adds static favicon/manifest assets and updates VitePress head tags, with no impact on application logic or data handling.

Overview
Updates the VitePress docs site to ship proper favicon support by adding multiple icon formats/sizes (including a new favicon.svg) and wiring them into the head config.

Adds a site.webmanifest so the docs site can expose installable/PWA metadata and icon definitions.

Reviewed by Cursor Bugbot for commit fec98e4. Bugbot is set up for automated code reviews on this repo. Configure here.

Wires a simplified vault-door SVG favicon into the VitePress head along
with raster fallbacks (16x16, 32x32, 180x180 apple-touch, 192/512
android-chrome) and a site.webmanifest, matching the variant set used by
the mise docs site.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit cdd134e. Configure here.

Comment thread docs/public/site.webmanifest Outdated
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 27, 2026

Greptile Summary

Adds favicon variants (SVG, ICO, PNG rasters), Apple touch icon, Android Chrome PWA icons, and a site.webmanifest to the VitePress docs site, wiring them into the head config. Changes are limited to static assets and metadata — no application logic is touched.

Confidence Score: 5/5

Safe to merge — purely additive static-asset and head-config change with no logic impact

Only a single P2 spec nit (sizes="any" on the .ico entry); no P0/P1 findings. All previous review concerns (missing start_url, "any maskable" mixed purpose) are already addressed in the current version.

No files require special attention

Important Files Changed

Filename Overview
docs/.vitepress/config.mjs Adds 6 <link> entries to head for favicon variants and web manifest; minor spec issue with sizes="any" on the .ico entry
docs/public/favicon.svg New simplified vault-door SVG favicon; clean markup, correct viewBox, no issues
docs/public/site.webmanifest PWA manifest with correct start_url, display: standalone, and three icon entries using purpose: "any" (no mixed-purpose issue)
docs/public/favicon.ico New .ico raster fallback for legacy browsers (binary asset)
docs/public/apple-touch-icon.png New 180×180 Apple touch icon (binary asset)
docs/public/android-chrome-192x192.png New 192×192 Android Chrome PWA icon (binary asset)
docs/public/android-chrome-512x512.png New 512×512 Android Chrome PWA icon (binary asset)
docs/public/favicon-16x16.png New 16×16 PNG favicon (binary asset)
docs/public/favicon-32x32.png New 32×32 PNG favicon (binary asset)

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    Browser([Browser requests page]) --> SVGSupport{Supports SVG icon?}
    SVGSupport -- Yes --> SVG["/favicon.svg (scalable, any size)"]
    SVGSupport -- No --> SizeCheck{Icon size needed}
    SizeCheck -- 16px --> PNG16["/favicon-16x16.png"]
    SizeCheck -- 32px --> PNG32["/favicon-32x32.png"]
    SizeCheck -- Fallback --> ICO["/favicon.ico"]
    Browser --> Apple{Apple device home-screen?}
    Apple -- Yes --> ATI["/apple-touch-icon.png (180x180)"]
    Browser --> PWA{PWA install prompt?}
    PWA -- Yes --> Manifest["/site.webmanifest"]
    Manifest --> Android192["/android-chrome-192x192.png"]
    Manifest --> Android512["/android-chrome-512x512.png"]
    Manifest --> SVG
Loading

Fix All in Claude Code

Reviews (2): Last reviewed commit: "docs(manifest): drop maskable purpose, a..." | Re-trigger Greptile

Comment thread docs/public/site.webmanifest Outdated
Comment thread docs/public/site.webmanifest
Addresses PR review feedback. The favicon.svg fills its 200×200 viewBox
edge-to-edge, which would be clipped by Android adaptive-icon masking.
Drop the "maskable" purpose so the SVG is used as-is. Also add an
explicit start_url to avoid platform-specific PWA fallback quirks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jdx jdx merged commit f225379 into main Apr 27, 2026
16 checks passed
@jdx jdx deleted the claude/sweet-kapitsa-d61821 branch April 27, 2026 01:05
NorthIsUp pushed a commit to NorthIsUp/fnox that referenced this pull request Apr 28, 2026
## Summary
- Add a simplified vault-door [favicon.svg](docs/public/favicon.svg)
(drops the spokes, dial markings, and handle bolt from `logo.svg` so the
icon stays legible at 16×16) and wire it into the VitePress `head`
config
- Ship raster fallbacks generated from the SVG: `favicon.ico`,
`favicon-16x16.png`, `favicon-32x32.png`, `apple-touch-icon.png`
(180×180), `android-chrome-192x192.png`, `android-chrome-512x512.png`
- Add `site.webmanifest` for installable-PWA metadata (matches the
variant set used by the mise docs site)

## Test plan
- [ ] `cd docs && npm run docs:dev` and confirm the vault-door favicon
appears in the browser tab
- [ ] View page source — confirm `<link rel="icon" ...>` entries and
`<link rel="manifest" href="/site.webmanifest">` are present in `<head>`
- [ ] Hard-refresh (favicons cache aggressively) and verify on at least
one Chromium and one Safari browser
- [ ] Spot-check `apple-touch-icon.png` renders correctly (open
`/apple-touch-icon.png` directly)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: docs-only change that adds static favicon/manifest assets
and updates VitePress `head` tags, with no impact on application logic
or data handling.
> 
> **Overview**
> Updates the VitePress docs site to ship proper favicon support by
adding multiple icon formats/sizes (including a new `favicon.svg`) and
wiring them into the `head` config.
> 
> Adds a `site.webmanifest` so the docs site can expose installable/PWA
metadata and icon definitions.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
fec98e4. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jdx pushed a commit that referenced this pull request May 2, 2026
### 🚜 Refactor

- extract providers and core types into fnox-core crate by
[@jdx](https://github.com/jdx) in
[#458](#458)

### 📚 Documentation

- prefix star count with ★ glyph and populate it on deploy by
[@jdx](https://github.com/jdx) in
[#447](#447)
- add favicons and web app manifest by [@jdx](https://github.com/jdx) in
[#448](#448)

### 🔍 Other Changes

- **(docs)** remove shrill.en.dev analytics script by
[@jdx](https://github.com/jdx) in
[#457](#457)
- **(release)** add musl Linux targets for Alpine compatibility by
[@jdx](https://github.com/jdx) in
[#452](#452)
- add plausible analytics by [@jdx](https://github.com/jdx) in
[#451](#451)
- bump hk to 1.44.3 by [@jdx](https://github.com/jdx) in
[#454](#454)

### 📦️ Dependency Updates

- update autofix-ci/action action to v1.3.4 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#455](#455)
- update apple-actions/import-codesign-certs action to v7 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#456](#456)
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