Repository navigation
feat: first-class app icon and manifest files, placeholder scaffold icon - #1588
Merged
Merged
Conversation
Every app scaffolded by webjs create served the WebJs brand mark as its favicon (public/favicon.svg declared through metadata.icons), so apps built on it looked like WebJs demos in every tab. Static app-root files now carry the icon: app/icon.svg|png|ico, app/apple-icon.png, app/favicon.ico and app/manifest.webmanifest|json are served at their own names, auto-linked into <head> with type and real pixel sizes, and /favicon.ico falls back to the app icon. The manifest route or file is linked too. The scaffold ships a neutral, marked placeholder icon plus a manifest with the app's name, and webjs doctor (APP_ICON) warns until the placeholder or the old brand mark is replaced. Claude-Session: https://claude.ai/code/session_01SZ72LSPAo4NvYvBDSD6RLo
|
Preview for Next: fix the listed keys in the compose file |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every app made with
webjs createserved the WebJs brand mark as its favicon (public/favicon.svgviametadata.icons), so apps built on WebJs looked like WebJs demos in every tab.app/icon.svg|png|ico,app/apple-icon.png,app/favicon.ico,app/manifest.webmanifest|jsonare served at their own names and auto-linked into<head>withtypeand real pixelsizes(PNG IHDR;anyfor SVG). Raster before SVG; a static icon wins the link over anicon.tsroute;metadata.iconsstill suppresses all.manifest.tsroute) is auto-linked;metadata.manifestwins,manifest: nullopts out./favicon.icofalls back toapp/favicon.ico, then the app icon (raster first, then the route).app/icon.svg(grey tile, dashed frame,data-webjs-placeholder) andapp/manifest.webmanifestwith the app's name; the WebJs-brandedpublic/favicon.svgand the layout'smetadata.iconsare gone.webjs doctorAPP_ICONwarns while the placeholder (or the old brand mark) is still the favicon.Tests: ssr head unit tests, the cross-runtime metadata-icon proof (node + bun), doctor, scaffold integration. Pre-existing failures on main (differential-elision, three bun listener tests) are unrelated.
https://claude.ai/code/session_01SZ72LSPAo4NvYvBDSD6RLo