Text & Fonts
The CSS text properties you author with (font-family, font-size,
font-weight, color, text-shadow, text-align, …) are documented on
CSS Text. This page is the practical guide to fonts: using
your own, the bundled default, emoji, and monochrome symbols.
Using your own fonts
The bundled default face is Inter. To use a different font you have four options — all standard, no engine changes:
1. Drop-in by name (simplest). Put MyFont.ttf (and optional
MyFont-Bold.ttf / MyFont-Italic.ttf) in Assets/Resources/Fonts/, then in
CSS:
body { font-family: "MyFont", sans-serif; }
2. @font-face in your stylesheet:
@font-face { font-family: "MyFont"; src: url("Assets/UI/Fonts/MyFont.ttf"); }
h1 { font-family: "MyFont"; }
3. An OS-installed font — just name it: font-family: "Comic Sans MS";.
On Windows, font-family: "Segoe UI" resolves to the user's own installed copy,
no bundling required.
4. Programmatically via Weva.WevaFonts (handy from a controller / settings
screen / mod loader):
// Register a custom family, then reference "MyFont" in CSS:
Weva.WevaFonts.Register("MyFont", "Assets/UI/Fonts/MyFont.ttf");
// Or replace the bundled Inter default for ALL unstyled text + generic
// families (sans-serif / serif / monospace / system-ui):
Weva.WevaFonts.SetDefault(
"Assets/UI/Fonts/MyFont.ttf",
boldPath: "Assets/UI/Fonts/MyFont-Bold.ttf",
italicPath: "Assets/UI/Fonts/MyFont-Italic.ttf");
WevaFonts is idempotent and order-independent — call it before or after the
document builds.
Emoji
Color emoji render via a bundled Noto Color Emoji font — no setup, no bake step. (Segoe UI Emoji and Apple Color Emoji are proprietary and can't be bundled; Noto is the open, redistributable equivalent.)
To use a different emoji set (Twemoji, OpenMoji, …), drop its TTF at
Assets/UI/Fonts/NotoColorEmoji.ttf in your project — that override wins over
the bundled font.
Monochrome symbols
Monochrome symbols (★ ◆ ▲ ● ♠ ✓ ⚠ … — Geometric Shapes, Dingbats, Misc Symbols)
render from a bundled Noto Sans Symbols 2 (OFL) so those codepoints come
through as crisp, CSS-colorable outlines rather than emoji chrome. Override
per-project with Assets/UI/Fonts/NotoSansSymbols2-Regular.ttf. The emoji and
symbol fonts both work in player builds, not just the editor.
The default face
The bundled default sans-serif face is Inter (SIL OFL) — chosen because
it's redistributable (Segoe UI is Microsoft-proprietary and can't ship). Inter's
line-height: normal metrics differ slightly from Chrome's Arial, so uniform
vertical shifts relative to a Chrome baseline are accepted divergence, not
bugs. On Windows, explicitly naming font-family: "Segoe UI" resolves to the
user's own installed copy — so designs authored against Segoe still match there
without bundling it.
Next: Samples
Weva