add favicon and site icon generation from uploaded images
All checks were successful
deploy / deploy (push) Successful in 1m26s

Upload a source image (PNG, JPEG, or SVG) and get a complete favicon
setup: PNG variants at 32, 180, 192, 512px served from DB via
FaviconController with ETag caching, SVG favicon for vector sources,
dynamic site.webmanifest, and theme-color meta tag. Theme editor gains
a site icon section with "use logo as icon" toggle, dedicated icon
upload, short name, and background colour picker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-02-24 17:22:15 +00:00
parent 12d87998ee
commit f788108665
15 changed files with 837 additions and 4 deletions

View File

@@ -105,6 +105,18 @@ defmodule BerrypodWeb.Router do
get "/sitemap.xml", SeoController, :sitemap
end
# Favicon & PWA manifest — served from DB, minimal pipeline
scope "/", BerrypodWeb do
pipe_through [:seo]
get "/favicon.svg", FaviconController, :favicon_svg
get "/favicon-32x32.png", FaviconController, :favicon_32
get "/apple-touch-icon.png", FaviconController, :apple_touch_icon
get "/icon-192.png", FaviconController, :icon_192
get "/icon-512.png", FaviconController, :icon_512
get "/site.webmanifest", FaviconController, :webmanifest
end
# Cart API (session persistence for LiveView)
scope "/api", BerrypodWeb do
pipe_through [:browser]