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 -5
View File
@@ -76,11 +76,12 @@ The first version, to be released as 0.1.0.
name servers (and when glue addresses are needed), how reverse zones map
to networks, and why dynamic updates give way to API tokens.
- A logo: a Viking jarl drawn like a woodcut, with a spear-pointed crown
that holds a DNS tree (a root node and its branches), a stern face and a
full carved beard. White on a Nordic-blue disc (`assets/logo.svg`), plus an all-white
variant (`assets/logo-white.svg`). It is shown on the login page, links
home in the top left of the web UI, and is the favicon.
- A logo: a bearded Viking jarl in blue and white, whose crown holds a DNS
tree (a root node and its branches). The master is `artwork/logo.png`;
`scripts/logo.py` traces it into vector paths (`assets/logo.svg`, 6 KB,
and `assets/logo.js`). It is shown on the login page, links home in the
top left of the web UI, and is the favicon. The UI draws it inline, so it
appears together with the page.
- The login page shows an angular, Norse-style "JARL" wordmark drawn as
SVG paths (`assets/brand.js`) above a rule with a "DNS" node; it follows
the light and dark themes. The header's "Jarl" uses Cinzel Bold (SIL OFL),
@@ -214,6 +215,11 @@ The first version, to be released as 0.1.0.
### Fixed
- The logo popped in after the page: it was an 880 KB SVG wrapping a
1254-pixel PNG, downloaded in full on every page load. It is now traced
into 6 KB of vector paths and drawn inline. Static files also get an ETag,
so reloads revalidate them with 304 answers instead of downloading them
again.
- `jarl token create --save` stored the token at the top level of the
CLI configuration even when a named server was selected; it now goes into
that server's entry.