Typography
Typography
Typography (formerly
fonts) lives under core.assets/assets/typography/, organized by category.Layout
core.assets/assets/typography/
├── serif/
│ └── TimesNewRoman/
│ ├── times-new-roman-regular.woff2
│ └── times-new-roman-bold.woff2
├── sans-serif/
│ └── Inter/
│ ├── inter-regular.woff2
│ └── inter-bold.woff2
├── monospace/
│ └── FiraCode/
│ └── firacode-regular.woff2
└── misc/
└── CustomFont/
└── customfont.woff2Place font files (
.ttf, .woff, .woff2, .otf) directly in the font folder.Requesting fonts
Path-style (recommended)
GET /typography/serif/TimesNewRomanServes the latest file by modification time. If only one file exists, it serves that file directly.
Query-string style
GET /typography?name=serif-TimesNewRomanSpecific file
GET /typography/serif/TimesNewRoman?version=times-new-regular.woff2
GET /typography?name=serif-TimesNewRoman&version=times-new-regular.woff2Listing available font files
GET /typography/serif/TimesNewRoman?listReturns a JSON array with all files, sizes, and modification times.
Version resolution
| Request | Behavior |
?version=stable | If stable.md exists → serve that file; otherwise → serve latest |
?version=latest | Serve newest file by modification time |
?version=<name> | Serve exact file match (by name, basename, or hashed prefix) |
| (no param) | Serve latest file by modification time |
Adding a new font
- Create a category folder if needed (
serif/,sans-serif/,monospace/,misc/). - Create a font folder inside:
core.assets/assets/typography/<category>/<FontName>/. - Place font files (
.woff2,.woff,.ttf,.otf) inside. - The resolver picks up new files automatically — no build step needed.