Files
ds-galo/openspec/changes/add-halo-branding/proposal.md
T
iu 50dff63ece feat: rename service to galo, add halo branding and release build
- rename Go module, binary, systemd unit, PG_DATABASE default, frontend package and docs from shared-album to galo
- add theme-aware halo emblem and favicon (new ui-branding capability)
- add make build-release (versioned, stripped, static binary) and run the binary from the repo root
2026-10-11 11:36:56 +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.