Skip to content

tab-icon

Provenance

  • Source: .spec/spexcode/spec-dashboard/tab-icon/spec.md
  • Source SHA-256: 175a295af144d918c224a2be2364a91ae78e1689efa9e63fc50f3b452591a5f6

The sibling of [[tab-title]]: every tab projects the icon belonging to its current pathname scope. A project stores its chosen value in spexcode.json dashboard.icon (featured presets and the broad Iconify catalog plus preserved legacy emoji/Iconify/URL forms); the global gateway stores its chosen icon only in the host config described by [[identity-config]]. The backend and catalog expose resolved identities, and [[project-identity]] selects the gateway record for /projects or the matching project row for /p/<id>/.

Favicon SVG/data-URI generation comes from [[icon-presets]], the same registry and serializer the visible marks use. index.html contains only the link mount and plain title fallback, never a second hand-written icon. The mount starts at the neutral data:, URL while scope is unresolved, so the browser never falls back to a route-relative /favicon.ico; the resolved identity helper is the only writer of an actual icon. Missing settings resolve to stable SpexCode/gateway defaults, so every loaded face gets a favicon; switching scope or changing an icon updates the existing link live and survives reload/restart through its canonical source.