typography
Apply professional typography principles to create readable, hierarchical, and aesthetically refined interfaces. Use when setting type scales, choosing fonts, adjusting spacing, designing text-heavy layouts, or when the user asks about readability, font pairing, line height, measure, or typographic hierarchy.
When & Why to Use This Skill
This Claude skill provides professional typography guidance to create readable, hierarchical, and aesthetically refined user interfaces. It helps designers and developers establish robust type systems, select harmonious font pairings, and implement accessibility-first layouts using industry-standard principles like modular scales and optimal line lengths.
Use Cases
- Generating a complete modular type scale and visual hierarchy for a new design system or web application.
- Conducting typography audits to identify and fix issues related to readability, contrast, and inconsistent font usage.
- Selecting and pairing fonts (serif, sans-serif, or monospace) that align with brand identity and performance requirements.
- Optimizing text-heavy layouts by calculating ideal line heights (leading) and measures (line length) for better scanning and reading.
- Implementing responsive and fluid typography using CSS variables and modern techniques like the clamp() function.
- Adjusting typographic elements for accessibility and dark mode, including letter spacing and weight refinements.
| name | typography |
|---|---|
| description | Apply professional typography principles to create readable, hierarchical, and aesthetically refined interfaces. Use when setting type scales, choosing fonts, adjusting spacing, designing text-heavy layouts, or when the user asks about readability, font pairing, line height, measure, or typographic hierarchy. |
Typography
Professional typography for user interfaces.
Output Contract
For type system recommendations:
## Type System
### Scale
- Base: [size, e.g., 16px]
- Ratio: [e.g., Minor Third 1.200]
- Rationale: [why this ratio]
### Hierarchy
| Level | Size | Weight | Line Height | Letter Spacing | Use |
|-------|------|--------|-------------|----------------|-----|
| Display | ... | ... | ... | ... | Hero, marketing |
| H1 | ... | ... | ... | ... | Page titles |
| H2 | ... | ... | ... | ... | Section heads |
| Body | ... | ... | ... | ... | Paragraphs |
| Small | ... | ... | ... | ... | Captions, labels |
### Fonts
- Primary: [font] - [rationale]
- Secondary: [font, if applicable]
- Mono: [font, if applicable]
### Implementation
```css
/* Ready-to-use CSS variables */
For typography audits:
```markdown
## Typography Audit
### Issues
| Element | Problem | Recommendation |
|---------|---------|----------------|
| ... | ... | ... |
### Quick Wins
- [Immediate improvement 1]
- [Immediate improvement 2]
Core Principles
Hierarchy & Structure
- Establish clear visual hierarchy through size, weight, and spacing
- Limit to 3-4 distinct heading levels in practice
- Use weight contrast (not just size) to differentiate levels
- Maintain consistent hierarchy patterns across the application
Readability First
- Optimize for scanning: users read in F-patterns
- Left-align body text (centered only for short, formal text)
- Ensure sufficient contrast (4.5:1 minimum, 7:1 preferred)
- Test with real content, not lorem ipsum
Restraint & Consistency
- Use 1-2 font families maximum (one serif, one sans-serif if pairing)
- Establish a type scale and stick to it
- Avoid decorative fonts for functional UI text
- Let whitespace do the work; resist the urge to fill
Type Scales
Modular Scales
Common ratios for harmonious sizing:
- Minor Second (1.067): Subtle, conservative
- Major Second (1.125): Gentle, professional
- Minor Third (1.200): Balanced, versatile
- Major Third (1.250): Bold, impactful
- Perfect Fourth (1.333): Strong hierarchy
- Golden Ratio (1.618): Dramatic, editorial
Practical Scale (Minor Third, base 16px)
text-xs: 12px (0.75rem)
text-sm: 14px (0.875rem)
text-base: 16px (1rem)
text-lg: 18px (1.125rem)
text-xl: 20px (1.25rem)
text-2xl: 24px (1.5rem)
text-3xl: 30px (1.875rem)
text-4xl: 36px (2.25rem)
text-5xl: 48px (3rem)
When to Deviate
- Marketing/hero sections can use larger jumps
- Dense data interfaces may need tighter scales
- Mobile often requires slightly larger base sizes
Measure (Line Length)
Optimal Ranges
- Body text: 45-75 characters (66 ideal)
- Short-form: 40-60 characters
- Wide layouts: Use columns or max-width constraints
- Mobile: Full width is acceptable due to narrow viewport
Implementation
/* Tailwind equivalents */
max-w-prose /* ~65ch */
max-w-2xl /* 672px, good for articles */
max-w-xl /* 576px, compact content */
Multi-Column Considerations
- Narrower columns = shorter measure acceptable
- Gutters should be at least 20px (1.25rem)
- Avoid orphaned words at column breaks
Line Height (Leading)
Guidelines by Context
- Body text: 1.5-1.7 (generous for readability)
- Headings: 1.1-1.3 (tighter, especially large sizes)
- UI labels: 1.2-1.4 (compact but legible)
- Buttons: 1.0-1.25 (single line, tight)
Adjustments
- Increase line height for wider measure
- Decrease for larger type sizes
- Consider the x-height of the typeface
- Dark mode may benefit from slightly more leading
Letter Spacing (Tracking)
General Rules
- Body text: Default (0) or very slight increase
- All caps: Always add positive tracking (+0.05em to +0.1em)
- Large headings: Slight negative tracking (-0.01em to -0.02em)
- Small text: Slight positive tracking for legibility
Tailwind Classes
tracking-tighter: -0.05em
tracking-tight: -0.025em
tracking-normal: 0
tracking-wide: 0.025em
tracking-wider: 0.05em
tracking-widest: 0.1em
All-Caps Text
- Always use
uppercase tracking-wideortracking-wider - Keep short (1-3 words ideal)
- Common for labels, category tags, eyebrow text
Font Selection
System Font Stacks
Performant and native-feeling:
/* Sans-serif (modern) */
font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
/* Serif */
font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
/* Monospace */
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
Web Font Considerations
- Limit to 2-3 weights per family (400, 500/600, 700)
- Use
font-display: swapfor performance - Variable fonts reduce file size for multiple weights
- Self-host for privacy and reliability
Pairing Principles
- Pair by contrast (serif + sans-serif)
- Match x-height for visual harmony
- Use one font for headings, one for body
- Ensure both have needed weights/styles
Safe Recommendations
- Sans-serif: Inter, Source Sans Pro, Open Sans, Work Sans
- Serif: Source Serif Pro, Lora, Merriweather, Literata
- Monospace: JetBrains Mono, Fira Code, Source Code Pro
Paragraph Spacing
Between Paragraphs
- Use margin-bottom equal to line-height or slightly more
- Typically 1em to 1.5em between paragraphs
- First paragraph after heading: reduced or no top margin
Between Sections
- 2-3x paragraph spacing between major sections
- Use consistent spacing tokens from design system
- Consider visual grouping via proximity
Typographic Details
Quotation Marks
- Use curly quotes (" " ' ') not straight quotes (" ')
- Proper apostrophes: it's, don't, '90s
- Consider the locale (French guillemets, German quotes)
Dashes
- Hyphen (-): Word breaks, compound words
- En dash (–): Ranges (2020–2024), relationships (New York–London)
- Em dash (—): Parenthetical statements, emphasis
Numbers
- Use tabular (monospace) figures in tables for alignment
- Use proportional figures in body text
- Consider old-style figures for editorial content
Ellipsis
- Use proper ellipsis character (…) not three periods
- Add thin space before/after in formal typography
Responsive Typography
Fluid Type
Scale font sizes smoothly between breakpoints:
/* clamp(min, preferred, max) */
font-size: clamp(1rem, 0.5rem + 1.5vw, 1.5rem);
Breakpoint Adjustments
- Increase base size slightly on mobile (17-18px)
- Reduce heading scale on mobile
- Increase line height for small screens
- Reduce measure on tablets (prose can feel too wide)
Touch Targets
- Minimum 44x44px for tappable text elements
- Generous padding around links in body text
- Avoid text-only targets without visual indication
Dark Mode Typography
Adjustments
- Reduce font weight slightly (medium instead of semibold)
- Increase letter spacing marginally
- Consider warmer white (#f5f5f5) over pure white (#fff)
- Increase line height by ~0.1 for perceived lightness
Contrast Considerations
- Pure white on pure black is harsh; soften both
- Aim for 10:1 to 15:1 contrast in dark mode
- Test with actual users; perceived contrast differs
Accessibility
Font Size Minimums
- Body text: 16px minimum (don't go below)
- Secondary text: 14px minimum, 12px absolute floor
- Legal/caption: 12px with increased tracking
User Preferences
- Respect
font-sizefrom browser settings - Use relative units (rem) not fixed (px) for text
- Provide text scaling options for dense UIs
Dyslexia Considerations
- Avoid justified text
- Prefer sans-serif with distinct letterforms
- Generous line height and paragraph spacing
- OpenDyslexic as optional font choice
Common Mistakes
Avoid
- All-caps body text or long headings
- Centered body paragraphs
- Line length over 80 characters
- Insufficient contrast for "aesthetic" reasons
- Mixing too many font families
- Decorative fonts for UI text
- Justified text on the web (causes rivers)
- Tiny gray text on white backgrounds
Watch For
- Orphans and widows in prominent text
- Inconsistent heading hierarchy
- Missing font fallbacks
- Layout shift from web font loading
- Underlined text that isn't a link