Typography

Single variant-driven primitive covering headings, prose, inline code, lists, and blockquotes. Renders the semantic tag per variant; override with the `as` prop when you need a different element.

H1

Designing with clarity

H2

Principles of type

H3

Hierarchy and scale

H4

Supporting headings

Paragraph

Every primitive ships with covered states, reduced-motion fallbacks, and both themes out of the box. Typography inherits the Geist Variable stack.

Blockquote

"Motion as information — transitions make state changes legible, nothing moves for decoration."

Table

PrimitiveTagVariant
Heading 1h1h1
Paragraphpp
Inline codecodecode

List

  • Reduced-motion first
  • Tokens over literals
  • Both themes, always

Inline code

Wrap identifiers with useState() — a lightweight inline affordance for keywords, paths, and CLI fragments.

Lead

A library of Svelte-native primitives, built on hex design tokens.

Large

Large text for quiet emphasis.

Small

Small, for footnotes and captions.

Muted

Muted, for supporting copy and metadata.

Inline link with a 1px underline at offset-4. On hover, Geist's variable weight axis tweens 500 → 600 over --motion-duration-fast; reduced-motion zeroes the duration automatically.

Visit the tokens reference to see the token palette in full.

API reference

PropTypeDescription
'h1' | 'h2' | 'h3' | 'h4' | 'p' | 'blockquote' | 'lead' | 'large' | 'small' | 'muted' | 'code' | 'list' | 'link'Chooses both the visual style and the default semantic tag.
keyof HTMLElementTagNameMapOverride the rendered element. Useful for inline `code` inside a paragraph, or rendering a heading as a link.
stringMerged onto the root via tailwind-merge.
HTMLElement | nullTwo-way-bindable element reference.