Typography
A thoughtful type system built on three font families: Plus Jakarta Sans for display, Inter for body text, and JetBrains Mono for code.
Font Families
Display
Plus Jakarta Sans - The quick brown fox
Body
Inter - The quick brown fox jumps over the lazy dog. Perfect for longer reading.
Mono
JetBrains Mono - const greeting = "Hello, world!";
--font-display: 'Plus Jakarta Sans', -apple-system, sans-serif;
--font-body: 'Inter', -apple-system, sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
Type Scale
A modular scale for consistent text sizing across the UI.
text-6xl
3.75rem
3.75rem
Hero headline
text-5xl
3rem
3rem
Page title
text-4xl
2.25rem
2.25rem
Section heading
text-3xl
1.875rem
1.875rem
Subsection heading
text-2xl
1.5rem
1.5rem
Card title
text-xl
1.25rem
1.25rem
Lead paragraph or emphasized text
text-lg
1.125rem
1.125rem
Slightly larger body text
text-base
1rem
1rem
Default body text for paragraphs and UI elements
text-sm
0.875rem
0.875rem
Secondary text, labels, and captions
text-xs
0.75rem
0.75rem
Small labels, badges, and helper text
Line Heights
leading-tight
1.2
1.2
Tight line height for headlines and display text. Use sparingly for short text blocks.
leading-snug
1.375
1.375
Snug line height for subheadings and card titles where space is limited but readability matters.
leading-normal
1.5
1.5
Normal line height for body text. This is the default for paragraphs and most UI text.
leading-relaxed
1.625
1.625
Relaxed line height for long-form content, articles, and documentation where readability is paramount.
Usage
/* Headlines */
h1 {
font-family: var(--font-display);
font-size: var(--text-5xl);
line-height: var(--leading-tight);
font-weight: 700;
}
/* Body text */
p {
font-family: var(--font-body);
font-size: var(--text-base);
line-height: var(--leading-normal);
}
/* Code blocks */
pre, code {
font-family: var(--font-mono);
font-size: var(--text-sm);
line-height: var(--leading-relaxed);
}