Brik Design System
Build Standards

Paragraphs

The body-text roles and line-height pairings, and how to decide between a ContentBlock description, Prose, and a raw slot paragraph.

Body copy is sized with --body-* and paired with a line-height that matches its length: the more a reader has to track across lines, the more leading it needs. Pick the role by what the text is, then let the owning component set the rhythm.

Role by intent

IntentRole tokenLine-heightExample
Lead / intro--body-lg--body-xl--font-line-height-normalA section's opening sentence
Default reading copy--body-md--font-line-height-relaxedDescriptions, prose, card body
Secondary / caption--body-sm--body-xs--font-line-height-normalMetadata, captions, helper text
Subtitle line under a title--body-md--font-line-height-normalThe subtitle slot paired with a title

--font-line-height-relaxed (175%) is the reading default for multi-line copy — ContentBlock's description slot and Prose's base both use it. --font-line-height-tight (110%) is headings-only; don't put it on body text. The subtitle line is a --body-md role, not a heading.

Body copy uses --font-family-body; never a --heading-* size or --font-family-heading on a paragraph. See the font-family role rule.

Which component renders the paragraph

Three ways a paragraph reaches the page — pick by the shape of the content, not by appearance.

UseWhenOwns
ContentBlock descriptionA known, single block of supporting copy under a title — a card, feature, or CTAFixed slot; adjacency rhythm to the title above it
ProseFree-form, already-sanitized CMS / rich HTML — multiple paragraphs, lists, and headings authored elsewhereElement-adjacency rhythm (h + p, p + p)
Raw <p> in a __description slotA one-off paragraph that is neither a fixed content block nor CMS HTMLNothing — the surrounding slot sets spacing

Prefer a Block over a raw <p> when the text has a title, a subtitle, or an action beside it — that is a ContentBlock, and it carries the rhythm for free. Reach for Prose the moment the copy is open-ended rich text with no fixed slot shape.

description is explanatory prose under a title — longer and more neutral than a subtitle. Never name a body slot __body; see slot vocabulary.

On this page

💬