Typography
Home-UI names two faces and ships neither:
| Token | Value | Used for |
|---|---|---|
--hui-font-sans | "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif | Body, labels and component text |
--hui-font-heading | "Roboto Slab", Georgia, "Times New Roman", serif | Card titles and headings |
--hui-font-mono | "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace | .hui-code, .hui-kbd |
The host loads the web fonts if it wants them. Home-UI does not @import a font service and does not ship font files — the same reasoning as .hui-surface: the host owns the page, and a host that loads nothing degrades to the fallback stack rather than breaking.
The type scale
Section titled “The type scale”--hui-text-xs: 0.75rem; /* 12px - badges, captions, help text */--hui-text-sm: 0.875rem; /* 14px - controls, table cells */--hui-text-base: 1rem; /* 16px - body copy */--hui-text-lg: 1.125rem; /* 18px - lead paragraphs, h3 */--hui-text-xl: 1.25rem; /* 20px - h2 */--hui-text-2xl: 1.5rem; /* 24px - h1 */
--hui-leading-tight: 1.25; /* headings, single-line controls */--hui-leading-normal: 1.5; /* body copy */
--hui-weight-normal: 400;--hui-weight-medium: 500;--hui-weight-semibold: 600;Prose classes
Section titled “Prose classes”A Go template renders text with a class rather than a bare element, so the design-system font applies without Home-UI styling the host’s <body>:
| Class | Applies |
|---|---|
.hui-prose | The body defaults on a wrapper: --hui-font-sans, --hui-text-base, --hui-leading-normal, --hui-foreground, and first/last child margin trimming |
.hui-h1 … .hui-h4 | The heading sizes, semibold, tight leading, heading font on .hui-card__title only |
.hui-p | A paragraph with bottom margin |
.hui-lead | Larger, muted intro paragraph |
.hui-muted | Small, --hui-muted-foreground text |
.hui-blockquote | A left-bordered quote |
.hui-list | A list with left padding and bottom margin |
.hui-link | --hui-primary-text, underlined with a 4px offset |
.hui-code | Inline monospace on a --hui-muted fill |
The <h1 class="hui-h1"> inside the prose wrapper is a reminder: these are classes, not element resets. Home-UI never restyles a bare <h1> or <p>, so it cannot collide with the host’s own page CSS.
The card title is the one exception, and it is a class too: .hui-card__title applies --hui-font-heading. See Surfaces.