Skip to main content
PimentCSS v1.0.1, what's new
Home

Typography

Heading scale, body utilities, and font loading for Zodiak and Plus Jakarta Sans.

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.

RoleFamilyTypical use
Headings--font-family-headingPage titles, section titles, marketing hero
Body / UI--font-family-bodyParagraphs, labels, buttons, tables
Weights400 · 600 · 700Body, emphasis, headings & labels

Prerequisites

  • PimentCSS stylesheet, Installation (imports typography tokens automatically).
  • Font files (recommended), npm run build:fonts for local woff2; otherwise CDN fallbacks apply.
  • Semantic text colors, pair type with --text-heading, --text-body, --text-muted from 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.

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-h1 · lh 4.5rem

Heading H2, 3rem

.heading-h2 · lh 3.6rem

Heading H3, 2.5rem

.heading-h3 · lh 3rem

Heading H4, 2rem

.heading-h4 · lh 2.4rem

Heading H5, 1.5rem

.heading-h5 · lh 1.8rem

Heading H6, 1.25rem

.heading-h6 · lh 1.5rem

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.

ClassSizeLine height
.body-small0.75rem (12px)1.3125rem
.body-medium1rem (16px)1.6rem
.body-large1.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

Action link, --text-action

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.

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.

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-body on --surface-page is validated on Colors; test dark mode.
  • Zoom, sizes are in rem; respect user font scaling (up to 200%).

Next steps