diff --git a/backend/static/fonts/dm-sans-var-latin.woff2 b/backend/static/fonts/dm-sans-var-latin.woff2 new file mode 100644 index 0000000..01383d7 Binary files /dev/null and b/backend/static/fonts/dm-sans-var-latin.woff2 differ diff --git a/backend/static/fonts/ibm-plex-mono-500-latin.woff2 b/backend/static/fonts/ibm-plex-mono-500-latin.woff2 new file mode 100644 index 0000000..090f82f Binary files /dev/null and b/backend/static/fonts/ibm-plex-mono-500-latin.woff2 differ diff --git a/backend/static/fonts/ibm-plex-mono-600-latin.woff2 b/backend/static/fonts/ibm-plex-mono-600-latin.woff2 new file mode 100644 index 0000000..67aeeb0 Binary files /dev/null and b/backend/static/fonts/ibm-plex-mono-600-latin.woff2 differ diff --git a/backend/static/fonts/instrument-serif-400-italic-latin.woff2 b/backend/static/fonts/instrument-serif-400-italic-latin.woff2 new file mode 100644 index 0000000..197abca Binary files /dev/null and b/backend/static/fonts/instrument-serif-400-italic-latin.woff2 differ diff --git a/backend/static/fonts/instrument-serif-400-latin.woff2 b/backend/static/fonts/instrument-serif-400-latin.woff2 new file mode 100644 index 0000000..0ad6971 Binary files /dev/null and b/backend/static/fonts/instrument-serif-400-latin.woff2 differ diff --git a/backend/static/style.css b/backend/static/style.css index af65075..76692a0 100644 --- a/backend/static/style.css +++ b/backend/static/style.css @@ -1,3 +1,45 @@ +/* Fonts are served from this binary, not from Google: this UI is read in + Bromite, where fonts.googleapis.com is routinely blocked, and over a LAN + with no internet route. Latin subsets only, woff2 only — every browser that + runs the app supports it, so there is no second format to ship. Roughly + 120 KB for all five faces, embedded via //go:embed static. */ +@font-face { + font-family: "Instrument Serif"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(/static/fonts/instrument-serif-400-latin.woff2) format("woff2"); +} +@font-face { + font-family: "Instrument Serif"; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(/static/fonts/instrument-serif-400-italic-latin.woff2) format("woff2"); +} +@font-face { + font-family: "IBM Plex Mono"; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(/static/fonts/ibm-plex-mono-500-latin.woff2) format("woff2"); +} +@font-face { + font-family: "IBM Plex Mono"; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(/static/fonts/ibm-plex-mono-600-latin.woff2) format("woff2"); +} +/* One variable file covers the 400–700 range the design uses. */ +@font-face { + font-family: "DM Sans"; + font-style: normal; + font-weight: 400 700; + font-display: swap; + src: url(/static/fonts/dm-sans-var-latin.woff2) format("woff2"); +} + /* Cinder — editorial serif, containerless sheets, ash hairlines. Heat is purely typographic: a series with an unread chapter turns its title crimson and gains an ember underline. Everything else stays cool. Dark is diff --git a/backend/templates/app.html b/backend/templates/app.html index 8555b4b..a5df111 100644 --- a/backend/templates/app.html +++ b/backend/templates/app.html @@ -6,10 +6,9 @@