Files
ds-galo/openspec/changes/archive/2026-10-11-add-halo-branding/proposal.md
T
iu b1b0b4a83e chore(openspec): archive completed changes and sync main specs
- archive rename-shared-album-to-galo, add-halo-branding
- sync specs: ui-branding (new capability)
2026-10-11 11:37:23 +03:00

1.9 KiB

Proposal

Why

The app references a favicon that does not exist (frontend/src/app.html:6 points at %sveltekit.assets%/favicon.png, but there is no frontend/static/), so browsers get a 404. At the same time the product name Galo (= гало, the ring around the sun) has no visual mark — the brand is only text. This change gives the project a self-hosted halo emblem and a working favicon, consistent with the existing icon system that forbids external requests.

What Changes

  • Introduce a halo emblem: a sun disc surrounded by a separated ring (variant A — pure ring + disc, legible at 16px).
  • Add an inline, theme-aware SVG emblem component used in the UI (header, login/public layout, share header); the sun disc uses --primary, the ring uses --primary at reduced opacity with a monochrome currentColor fallback.
  • Add static brand assets under frontend/static/: favicon.svg (theme-aware via prefers-color-scheme), favicon.png fallback, and apple-touch-icon.png.
  • Update frontend/src/app.html to reference favicon.svg with the PNG fallback.
  • Keep the "Galo" wordmark next to the emblem; the emblem is decorative there.

Capabilities

New Capabilities

  • ui-branding: the halo emblem and favicon identity — a self-hosted, theme-aware visual mark that appears in the UI and as the browser/tab and touch icon.

Modified Capabilities

Impact

  • Frontend: new frontend/static/ assets (served through the existing go:embed pipeline after build), frontend/src/app.html, frontend/src/lib/components/AppShell.svelte, frontend/src/routes/(public)/+layout.svelte, share page header.
  • Backend: none (static assets are embedded and served by the existing static handler).
  • Behavior: the missing favicon 404 is replaced by a served, theme-aware icon; no API changes.