Fix the logo's pop-in with a traced vector logo

The logo was an 880 KB SVG wrapping a 1254px PNG, downloaded again on
every page load. Keep that PNG as the master (artwork/logo.png) and have
scripts/logo.py trace it with potrace into a 6 KB logo.svg (favicon,
README) and logo.js, which brand.js draws inline in the header and on the
login page so the logo arrives with the page. Remove the unused
logo-white.svg.

Static files now carry content ETags, so reloads get 304s instead of
downloading the UI again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
abrown38andClaude Opus 5.5 committed 2026-10-08 18:01:22 +00:00
1 parent cf49df0346
commit 0f04dbb4b1
15 files changed
+215 -23049

No files matched your search

+11 -6
View File
@@ -1,4 +1,4 @@
<p align="center"><img src="internal/web/static/assets/logo.svg" width="240" alt="Jarl logo: a Viking jarl in a spear-pointed crown holding a DNS tree"></p>
<p align="center"><img src="internal/web/static/assets/logo.svg" width="240" alt="Jarl logo: a bearded Viking jarl in a crown holding a DNS tree"></p>
# Jarl
@@ -43,6 +43,9 @@ error: www.adbraun.lol has a CNAME, so it can't have any other records (found A)
limited.
* **Audit log** of every login, change and token, with user, token, IP and
outcome.
* **No token needed on the server**: root's `sudo jarl ...` talks to jarld
over a local unix socket, so a lost token or password never locks you
out.
* **Query statistics** (optional, off by default): queries over time,
busiest hours of the week, top names and clients, NXDOMAIN and refused
queries, record types, cache hit rate. Shown in the web UI and the CLI,
@@ -56,7 +59,8 @@ error: www.adbraun.lol has a CNAME, so it can't have any other records (found A)
fallback.
* One static Go binary for the daemon (web UI embedded, SQLite built in) and
one for the CLI, run by a sandboxed systemd service as an unprivileged
user.
user. `make deb` builds a Debian package, and both come with bash
completion.
## Quick start
@@ -150,7 +154,8 @@ is under the SIL Open Font License 1.1 (below).
The "Jarl" name in the web UI's header uses [Cinzel](https://github.com/NDISCOVER/Cinzel) Bold
by the Cinzel Project Authors, under the SIL Open Font License 1.1
(`internal/web/static/assets/fonts/Cinzel-OFL.txt`). The logo
(`assets/logo.svg`, and `assets/logo-white.svg` for dark backgrounds) is part
of Jarl: a Viking ruler drawn like a woodcut, whose crown holds a DNS tree
(a root node with its branches). It is generated by `scripts/logo.py`.
(`internal/web/static/assets/fonts/Cinzel-OFL.txt`). The logo is part of
Jarl: a bearded Viking jarl in blue and white, whose crown holds a DNS tree
(a root node with its branches). The master is `artwork/logo.png`, which
`scripts/logo.py` traces into the vector `assets/logo.svg` and
`assets/logo.js`.