Overview
The Antilles pairing separates display (Zodiak, serif) from interface (Plus Jakarta Sans, sans-serif). Sizes, line heights, and letter-spacing are exposed as CSS variables and component classes utility classes, the same tokens power buttons, forms, and alerts.
| Role | Family | Typical use |
|---|---|---|
| Headings | --font-family-heading | Page titles, section titles, marketing hero |
| Body / UI | --font-family-body | Paragraphs, labels, buttons, tables |
| Weights | 400 · 600 · 700 | Body, emphasis, headings & labels |
Prerequisites
- PimentCSS stylesheet, Installation (imports typography tokens automatically).
- Font files (recommended),
npm run build:fontsfor local woff2; otherwise CDN fallbacks apply. - Semantic text colors, pair type with
--text-heading,--text-body,--text-mutedfrom Colors.
CSS tokens
Canonical definitions live in tokens/typography.css (compiled from scss/tokens/_typography.scss). Override Sass variables before @use "pimentcss-design-system", see Customization.
:root {
--font-family-heading: "Zodiak", Georgia, serif;
--font-family-body: "Plus Jakarta Sans", system-ui, sans-serif;
--font-weight-regular: 400;
--font-weight-semi-bold: 600;
--font-weight-bold: 700;
--font-size-heading-h1: 3.75rem;
--line-height-heading-h1: 4.5rem;
--font-size-body-medium: 1rem;
--line-height-body-medium: 1.6rem;
}
Heading scale
Apply .heading-h1 … .heading-h6 on any element (usually <h1>–<h6>). Negative letter-spacing keeps large display type tight.
Heading H1, 3.75rem
Heading H2, 3rem
Heading H3, 2.5rem
Heading H4, 2rem
Heading H5, 1.5rem
Heading H6, 1.25rem
<h1 class="heading-h1">Dashboard</h1>
Body scale
Three body steps cover UI density: small (metadata), medium (default), large (intro / lead). Add .body-medium--semibold for emphasis without changing size.
Body large, lead paragraph or short intro.
Body medium, default copy in forms, tables, and buttons.
Body medium semibold, inline emphasis.
Body small, captions, footnotes, helper text.
| Class | Size | Line height |
|---|---|---|
.body-small | 0.75rem (12px) | 1.3125rem |
.body-medium | 1rem (16px) | 1.6rem |
.body-large | 1.25rem (20px) | 2rem |
Semantic text colors
Always set color with semantic tokens so light/dark modes stay readable (RGAA / WCAG).
Heading, uses --text-headings
Body, uses --text-body (default on .body-*).
Muted, --text-muted
Caption tokens
Labels and helper text use caption tokens (--font-size-caption) inside components such as .label and field hints, no separate utility class required.
<div class="input">
<label class="label" for="email"><span class="label__text">Email</span></label>
<div class="field">
<input class="field__input" id="email" type="email">
</div>
<p class="input__hint">Helper uses caption tokens.</p>
</div>
Composition patterns
Combine heading + body utilities with layout tokens. Long-form copy should respect --copy-block-max-width (33rem) for comfortable line length.
Welcome back
Track shipments across the Caribbean hub.
PimentCSS maps typography to semantic colors. Toggle dark mode in the header to verify contrast.
Last updated · 21 May 2026
Typography in components
Buttons, alerts, and form labels inherit body tokens automatically. Use the Input block (.input → .label + .field + optional .input__hint), not class="input" on the <input> itself. Place the primary action below the field group for a clear tab order (label → field → hint → button).
We never share your address.
Typography
Titles and body styles come from the same token set.
Sass customization
Override families and scale before compiling your theme.
@use "pimentcss-design-system" with (
$font-family-heading: "Zodiak", Georgia, serif,
$font-family-body: "Plus Jakarta Sans", system-ui, sans-serif,
$font-size-heading-h1: 3.25rem,
$font-size-body-medium: 1rem,
$enable-local-fonts: true,
);
Accessibility
Readable type
- Real headings, use
<h1>–<h6>with utility classes; do not skip levels for styling only. - Line length, keep paragraphs near
--copy-block-max-width(≈ 66 characters). - Contrast,
--text-bodyon--surface-pageis validated on Colors; test dark mode. - Zoom, sizes are in
rem; respect user font scaling (up to 200%).