---
id: d78c02ca-8db5-4711-a6d2-b5e3b0160fea
title: Favicon + head standards (manifest, og, theme-color)
state: closed
labels:
- area:render
assignees: []
milestone: m6-polish
created: 2026-09-10T05:32:54.661459489Z
updated: 2026-09-10T05:50:50.757767058Z
---
Context: Favicon + head standards. Blocked by #15 (needs logo.svg).
Tasks:
1. `static/favicon.svg` (logo adapted) + `favicon.ico`? (ICO needs binary — prefer SVG-first: `<link rel=icon type=image/svg+xml>`, plus `apple-touch-icon.png`? PNG needs generation — use SVG + documented fallback; if PIL/canvas unavailable, ship svg + 180px svg apple-touch reference. Decide in-work, keep zero-dep: hand-write SVG only, no binary assets.)
2. Head standards in layout: favicon links, `apple-touch-icon`, `theme-color` (#1a1b26 dark / light per #18?), `og:title/description/type`, `manifest.webmanifest` (name, short_name hu13, icons svg, display minimal, theme colors). Serve .webmanifest with correct content-type in serve (mime map addition, test it).
3. Tests: head asserts on fixture build (icon/manifest/theme-color/og present), manifest parses as JSON, mime test for .webmanifest.
Success rubric:
- [ ] All head tags present in every page (layout-level); manifest valid JSON; no binary blobs in repo.
Swarm: Owlette. Branch `m6/favicon`. Merge after #15.
