| Name | Last commit date | |
|---|---|---|
| .. | ||
| geist-mono.woff2 | 3 months ago | |
| geist-sans.woff2 | 3 months ago | |
| README.md | 3 months ago | |
Shell fonts
Geist and Geist Mono, subset to Latin + the punctuation and arrows a dashboard
actually renders, and vendored here as woff2.
They are vendored rather than loaded from Google Fonts because the inner
renderer's srcDoc runs under font-src data: — it may open no network
connection at all, by design (see buildRendererSrcDoc in shell-app.tsx). The
only way a branded typeface reaches model-written UI is as bytes inside the
document, so globals.css references these files and the shell's Vite build
inlines them as data: URLs (build.assetsInlineLimit in
vite.config.shell.ts). The shell's CSS is then copied into the srcDoc
verbatim, carrying the fonts with it.
Without this the shell falls back to system-ui and artifacts are the only
executor surface not set in Geist.
Regenerating
Source: the geist npm package (v1.7.2), variable weights.
bun run --cwd packages/hosts/mcp-apps-shell fonts:subset
That script downloads the published package and re-subsets it. The subset range
is Latin-1 plus the arrows, bullets and dashes used in metric deltas and axis
labels; tnum is kept because the design system sets numbers in tabular
figures.