From dcafcb245c4d2e39d35dc6be5c9c301a8e66e6a2 Mon Sep 17 00:00:00 2001 From: Eugene Blikh Date: Sun, 26 Apr 2026 16:15:19 +0300 Subject: [PATCH] web: add lambda favicon (svg + ico + apple-touch-icon) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces the project mark — a Greek capital lambda Λ (initial of Λήθη / Lethe) standing above a stylized rust ripple on a deep ink plate. Reads as a glyph at 16 px; the ripple and inner rim emerge at 32 px and above. Three formats are shipped via web/public/ so Vite copies them verbatim into the embedded dist bundle: - favicon.svg canonical 64x64 vector source - favicon.ico 16/32/48 multi-resolution legacy fallback - apple-touch-icon.png 180x180 iOS home-screen bookmark The ICO and PNG were rasterized from the SVG with rsvg-convert (ImageMagick's built-in MSVG renderer drops strokes); magick is only used to assemble the multi-image ICO container. The dist/ placeholder index.html is regenerated alongside so a fresh clone that hasn't run web-build yet still serves the icon links from the committed fallback HTML. --- internal/server/web/dist/index.html | 3 +++ web/index.html | 3 +++ web/public/apple-touch-icon.png | Bin 0 -> 6517 bytes web/public/favicon.ico | Bin 0 -> 15086 bytes web/public/favicon.svg | 12 ++++++++++++ 5 files changed, 18 insertions(+) create mode 100644 web/public/apple-touch-icon.png create mode 100644 web/public/favicon.ico create mode 100644 web/public/favicon.svg diff --git a/internal/server/web/dist/index.html b/internal/server/web/dist/index.html index 2bb89178bd50c00f5830b1719e73a54b8d6de5c6..576934c70b8ea69dd6fd555de1f6491b9ae7aead 100644 --- a/internal/server/web/dist/index.html +++ b/internal/server/web/dist/index.html @@ -3,6 +3,9 @@ + + + Lethe diff --git a/web/index.html b/web/index.html index e4d14f3e633b0106b2afdf6529f453254ec802a3..5f2d05e2b8b1f16c033a1c182e99ca2a47f13d82 100644 --- a/web/index.html +++ b/web/index.html @@ -3,6 +3,9 @@ + + + Lethe diff --git a/web/public/apple-touch-icon.png b/web/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..18a055a01d1b6e93885d58c19e13be201d5e7a65 GIT binary patch literal 6517 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 literal 0 HcmV?d00001 diff --git a/web/public/favicon.ico b/web/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0d012507e2d27ec0466693d51890adbc41524571 GIT binary patch literal 15086 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 OwGWcp`7k86`~Lux8X4RG literal 0 HcmV?d00001 diff --git a/web/public/favicon.svg b/web/public/favicon.svg new file mode 100644 index 0000000000000000000000000000000000000000..89cf2761c8bd5d71b5d00e20b2acfb3c58f87b28 --- /dev/null +++ b/web/public/favicon.svg @@ -0,0 +1,12 @@ + + + Lethe + + + + +