PrintToVeraeTimeStamp/site/printit.verae.ai/fonts/README.md
George Lambert 042342bd69
Some checks failed
windows-msi / full-msi-unsigned (push) Has been cancelled
docs: DOWNLOADS-MANIFEST 0.3.6 TBD + VM-DUAL-SHIP-CHECKLIST + CERT spacing
Manifest placeholders until signed upload; printable VM A/B/C sheet.
2026-10-14 00:20:58 -04:00

4.2 KiB
Raw Blame History

CERT self-host fonts (printit.verae.ai)

Placeholder directory for self-hosted woff2 used by the CERT-01 web viewer (../certificate.html). Binaries are not committed yet — only .gitkeep keeps the path in git.

Current state

Surface Fonts today Offline fallback
certificate.html title Fraunces 600/700 via Google Fonts CDN Georgia / Times New Roman / serif
Mono digests JetBrains Mono 500 via same CDN ui-monospace / SF Mono / Menlo
UI kit (verae-ui-kit.css) Inter + Material Symbols Rounded CDN system stacks in brand/tokens.css
Issued PDF (internal/pdfcert) System / library serif — not Fraunces embed N/A (separate from web)

Design source of truth: verae-2026-design/ui-designs/src/html/CERT-01.html (tokens --font-serif: 'Fraunces'; design-kit src/fonts/ currently ships Cantarell + Material Symbols TTF only — no Fraunces binary in-repo yet).

Not claimed: full CERT-01.html pixel match, PDF Fraunces embed, or self-hosted production fonts.

Goal

Serve brand serif (and optional mono) from this origin so the certificate viewer works without fonts.googleapis.com / fonts.gstatic.com, and print/PDF-from-browser paths stay consistent offline.

Planned files (when licensed binaries land)

fonts/
  README.md                 (this file)
  .gitkeep
  fetch-fonts.example.sh    # curl placeholders; no download until uncommented
  fraunces-opsz-wght-600.woff2   # variable or static; opsz + weight 600
  fraunces-opsz-wght-700.woff2   # weight 700 (title)
  jetbrains-mono-500.woff2      # optional; digests already have mono stack
  OFL.txt / LICENSE             # required license text beside binaries

Fetch scaffold (TODO-7 A7)

fetch-fonts.example.sh — example only. Comment-only upstream URLs (google/fonts OFL trees, gstatic discovery). Does not curl until an operator uncomments a pinned-commit block after license review. Smoke:

./fetch-fonts.example.sh          # prints instructions; no network
./fetch-fonts.example.sh --check  # exit 1 until woff2 + OFL.txt present

Exact filenames may follow upstream release naming; keep them stable once wired so deploys and cache busting stay simple.

How to wire (later — do not claim done until files exist)

  1. Obtain OFL-licensed Fraunces (and optional JetBrains Mono) woff2 from the upstream release or a subsetted build (title glyphs only is enough for CERT).

  2. Drop files into this directory; commit license text next to them.

  3. Add local @font-face in certificate.html (or a small fonts/cert-fonts.css):

    @font-face {
      font-family: 'Fraunces';
      src: url('/fonts/fraunces-opsz-wght-700.woff2') format('woff2');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    
  4. Remove the three Google Fonts <link> tags from certificate.html head once local faces load cleanly.

  5. Keep the Georgia/serif stack as final fallback.

  6. Deploy with the rest of the static site (rsync to /var/www/printit.verae.ai/ — see parent README.md).

  7. Smoke: open /certificate.html with network blocked; title must still render serif (local woff2 or Georgia).

Out of scope here

Item Owner / later
PDF CERT Fraunces embed I7 done: pdfcert/build.mjs note + test — Times/Helvetica only until embed lands
Inter / Material Symbols self-host for whole site optional; CERT title is the residual gap called out in OPEN-ISSUES #7
Cantarell from design-kit TTFs GNOME mock only; not required for CERT-01 web title
Pixel-perfect CERT-01.html match Still later (OPEN-ISSUES Advanced)

Status

Step State
Placeholder dir + this plan Done (L7)
fetch-fonts.example.sh placeholders Done (TODO-7 A7) — no binaries fetched
Web cert spacing toward CERT-01 Closer (title-block 26/18, pad 56×64, rule 2×120, mh 2×6, verify center) — not full pixel
woff2 binaries + LICENSE Not started
@font-face + drop CDN links Not started
Pixel match / PDF embed claim Not started — do not claim