Typography fundamentals for the web
Build readable, accessible interfaces through practical typeface selection, hierarchy design, and real-world implementation patterns you can use immediately.
What you'll learn
Three focused tracks covering type systems, technical implementation, and performance optimization. Each module builds on specific skills with hands-on examples.
Type anatomy and selection
Learn how x-height, stroke contrast, and aperture affect readability at different screen sizes. We compare 12 common web fonts side-by-side with actual metrics.
Visual hierarchy systems
Build modular scale systems using mathematical ratios. You'll see how Stripe, Medium, and Gov.uk structure their type scales and spacing patterns.
Line length and spacing
Optimal characters per line varies by context. We test 45-75 character ranges across mobile, tablet, and desktop with eye-tracking data from 200 readers.
CSS font stacks and fallbacks
Design bulletproof font stacks with system fonts as fallbacks. Includes size-adjust, ascent-override values to prevent layout shift when custom fonts load.
Variable fonts implementation
Use weight, width, and optical size axes to fine-tune typography across breakpoints. Real examples show file size savings of 40-60% versus loading multiple font files.
Responsive typography
Calculate fluid type scales using clamp() and viewport units. We test formulas across 340px to 1920px viewports to find smooth scaling without breakpoint jumps.
Font loading strategies
Compare FOIT, FOUT, and FOFT approaches with real performance metrics. You'll implement font-display values and preload hints that reduced our LCP by 1.2 seconds.
Subsetting and optimization
Strip unused glyphs using glyphhanger or FontForge. Case study shows reducing Roboto from 168kb to 32kb by removing Cyrillic and Greek character sets for English-only sites.
Accessibility and readability
Meet WCAG AAA contrast requirements while maintaining brand aesthetics. Test color combinations, analyze APCA contrast values, and validate with screen readers on actual devices.