Skip to content
Home Theme Gallery

Typography

Home-UI names two faces and ships neither:

TokenValueUsed for
--hui-font-sans"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serifBody, labels and component text
--hui-font-heading"Roboto Slab", Georgia, "Times New Roman", serifCard 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.

--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;

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>:

ClassApplies
.hui-proseThe 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-h4The heading sizes, semibold, tight leading, heading font on .hui-card__title only
.hui-pA paragraph with bottom margin
.hui-leadLarger, muted intro paragraph
.hui-mutedSmall, --hui-muted-foreground text
.hui-blockquoteA left-bordered quote
.hui-listA list with left padding and bottom margin
.hui-link--hui-primary-text, underlined with a 4px offset
.hui-codeInline monospace on a --hui-muted fill
Prose

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.