What Is Letter Spacing?
Letter spacing--sometimes called tracking--is one of the most powerful yet frequently misunderstood typography tools available to web designers. When applied correctly, letter spacing enhances readability, improves visual hierarchy, and creates polished, professional designs. When applied incorrectly, it can make text difficult to read, strain the eyes, and undermine the entire design.
Key Distinctions
- Kerning: Space between specific letter pairs (individual adjustments)
- Letter spacing: Uniform adjustment applied to entire words or text blocks
Understanding the difference helps you apply the right technique for each situation. Kerning is typically manual fine-tuning for logos and headlines, while letter spacing is a systematic CSS property for consistent text styling across your website.
Before and After Examples
Consider a headline like "SUMMER SALE" set in all caps. With default browser letter spacing, the characters may feel cramped because uppercase letters were historically designed with more space to accommodate serifs and stroke variation. Adding 0.08em to 0.12em of letter spacing creates breathing room, making the text feel more sophisticated and easier to read. Conversely, body text at 16px typically works best with default or minimal adjustments--even small spacing increases multiply across longer passages, potentially creating uncomfortably long line lengths that disrupt the reading rhythm.
The professional polish of a design often comes down to these subtle typographic decisions. Default browser typography rarely provides optimal spacing for all contexts, which is why established design systems specify letter spacing values for different text roles including headlines, body text, captions, and buttons. For teams building comprehensive web applications, proper typography implementation is essential for user experience and accessibility.
WCAG Accessibility Requirements: Success Criterion 1.4.12
The Web Content Accessibility Guidelines (WCAG) 2.1, Success Criterion 1.4.12, establishes minimum text spacing requirements to ensure content remains readable for users with disabilities, including those with dyslexia, visual impairments, and cognitive differences. This criterion requires that content be adaptable when users modify text spacing settings, with specific thresholds for letter spacing, word spacing, line height, and paragraph spacing.
Minimum Requirements
The WCAG standard specifies that letter spacing (tracking) must be adjustable to at least 0.12 times the font size without loss of content or functionality. This means:
- A 16px font must accommodate at least 1.92px of letter spacing
- Content must not clip, overlap, or break when spacing increases
- Users with dyslexia and visual impairments can adjust settings for their needs
Compliance Checklist
- Use flexible layouts (CSS Grid, Flexbox) instead of fixed-width containers
- Avoid absolute positioning for text elements
- Test layouts with simulated increased spacing settings
- Use relative units (em) rather than fixed pixel values
- Ensure text containers can expand horizontally when spacing increases
Common Layout Failures
When layouts don't accommodate increased spacing, several problems occur:
- Text overflow: Characters extend beyond container boundaries
- Overlapping elements: Text overlaps adjacent content or navigation
- Truncated text: Content gets cut off without scroll access
- Broken multi-column layouts: Columns stack unexpectedly or overlap
The solution involves using flexible layout techniques and relative units. Many organizations use bookmarklets or browser extensions to simulate WCAG spacing requirements and identify compliance issues in existing designs. For professional web development services, testing for accessibility compliance should be part of every project workflow.
CSS letter-spacing Property: Implementation Guide
The CSS letter-spacing property offers straightforward syntax with nuanced behavior. The property accepts the keyword normal, which allows the browser and font to determine spacing, or a <length> value that explicitly sets spacing. Length values can be positive (increased spacing) or negative (decreased spacing). The most common units are em, which scales with font size, and px, which provides absolute control.
Syntax and Values
/* Proportional letter spacing with em units */
.headline {
letter-spacing: 0.02em;
}
.body-text {
letter-spacing: 0.01em;
}
/* Tighter spacing for uppercase headlines */
.all-caps-headline {
letter-spacing: 0.08em;
}
Best Practices
The em unit is generally recommended for letter spacing because it maintains proportional relationships across different font sizes. If a design specifies letter-spacing: 0.02em, that 2% additional spacing applies consistently whether the text is 12px caption size or 48px headline size. Pixel values, by contrast, require separate declarations for each font size if proportional spacing is desired, increasing maintenance burden and risking inconsistency.
Negative Values
Negative letter spacing requires careful application. When text appears crowded, negative spacing can improve readability, but values that are too negative cause character overlap, making text illegible. Testing with representative content is essential, as the threshold for overlap varies significantly between fonts. Some scripts and writing systems should never use negative letter spacing, as their character shapes depend on specific spacing relationships.
Common Use Cases
| Context | Recommended Letter Spacing | Purpose |
|---|---|---|
| Body text (16px+) | 0em or -0.01em | Maintain readability |
| All-caps headlines | 0.05em to 0.15em | Add breathing room |
| Small caps labels | 0.03em to 0.08em | Improve legibility |
| Very large display (48px+) | -0.01em to 0em | Prevent loose appearance |
For more CSS techniques, see our guide on native CSS nesting to understand how modern CSS features work together with typography properties.
Design System Approaches to Letter Spacing Scales
Mature design systems include letter spacing specifications as part of their typography scales. Rather than specifying letter spacing inline for each element, design systems define spacing tokens that can be applied consistently across similar text roles. This approach ensures visual coherence while simplifying maintenance and enabling systematic updates.
Spacing Scale Example
| Token | Description | Typical Value |
|---|---|---|
spacing-tight | Negative or zero | -0.02em |
spacing-normal | Default font spacing | 0em |
spacing-loose | Slight increase | 0.02em |
spacing-xloose | Substantial increase | 0.08em |
Implementation Strategies
Token-Based Design: Define spacing values as design tokens in your system. This creates a single source of truth that designers and developers reference consistently. The specific values depend on the chosen typeface, as different fonts have different default character widths and spacing characteristics.
Programmatic Adjustments: Design systems should document when letter spacing values should be adjusted programmatically. For instance, a system might automatically apply additional letter spacing to all-uppercase text, as uppercase letters were historically designed with more space between them.
CSS Custom Properties: Modern design systems often use CSS custom properties for typography scales:
:root {
--letter-spacing-tight: -0.02em;
--letter-spacing-normal: 0em;
--letter-spacing-loose: 0.02em;
--letter-spacing-xloose: 0.08em;
}
.headline {
letter-spacing: var(--letter-spacing-loose);
}
Component Consistency: Use the same spacing token for similar text elements across different components. This creates visual harmony and helps users recognize text hierarchy. Consider implementing linting rules that flag inconsistent spacing declarations during development.
Practical Guidelines by Text Context
Headlines and Display Text
All-caps headlines typically require increased letter spacing--values between 0.05em and 0.15em often improve readability and create a more sophisticated appearance. Title-case headlines may use default spacing or slight increases, depending on the font and desired effect. Very large display text (48px and above) often looks better with slightly reduced letter spacing, as the larger canvas can make default spacing feel loose.
Example: A 32px headline in all caps might use letter-spacing: 0.08em, while the same text in mixed case uses letter-spacing: 0.01em.
Body Text
Body text and paragraph content generally work best with default or slightly reduced letter spacing. The larger volume of body text in a typical reading experience means that even small spacing increases multiply into significant line length changes. However, for users who need increased spacing for accessibility, body text should accommodate generous letter spacing without breaking layouts. This is where WCAG compliance testing becomes essential.
Buttons and Navigation
Button text, navigation items, and other short text strings often benefit from increased letter spacing compared to body text. These interactive elements benefit from the breathing room that additional spacing provides, making them easier to tap or click and improving visual distinction from surrounding content. Small all-caps button text is particularly susceptible to legibility issues when under-spaced.
Captions and Metadata
Caption text and metadata (dates, categories, bylines) may use increased spacing to distinguish them from primary content while maintaining legibility at smaller sizes. Values around 0.02em to 0.05em often work well for caption-style text.
For a comprehensive approach to typography, see our guide on CSS variables and scoping to understand how to manage typography systems effectively.
Internationalization and Script Considerations
Letter spacing behavior varies significantly across writing systems and scripts. Understanding these differences is essential for building accessible, professional websites that serve global audiences.
Scripts to Handle Carefully
Arabic: Should never have letter spacing applied. Arabic text relies on connected letterforms that should remain visually connected--applying letter spacing breaks the script's fundamental structure and can render text unreadable for Arabic readers. The connected nature of Arabic letters means spacing is inherent to the script's design.
CJK (Chinese, Japanese, Korean): These scripts have different typographic conventions than Latin-based scripts. Character spacing in these systems is typically uniform, and spacing adjustments follow different rules. Web designs serving international audiences should consider script-specific typography guidelines and avoid applying Latin-based letter spacing assumptions to CJK content.
Hebrew: May benefit from spacing adjustments depending on the font, but generally requires careful testing. Unlike Arabic, Hebrew doesn't connect letters, but spacing still affects readability.
RTL Languages
Right-to-left (RTL) languages including Arabic, Hebrew, and Persian require careful attention to typography settings. Design systems serving multilingual audiences should include documentation about letter spacing applicability to different scripts.
Best Practices for International Typography
- Language-specific font stacks: Select fonts designed for each script
- Conditional spacing: Apply letter spacing only to Latin text
- Testing with native speakers: Validate typography with representative users
- Document script guidelines: Include international typography in your design system documentation
For projects requiring multilingual support, working with experienced web development professionals ensures proper implementation across all languages and scripts.
Common Mistakes and How to Avoid Them
Over-spacing Body Text
Applying generous letter spacing (that works for headlines) to body text creates excessive line lengths and disrupted reading flow. The cognitive load of reading increases significantly when character spacing moves too far from familiar norms, even if individual letters remain clearly distinguishable. For body text, stick to default or minimal spacing adjustments unless specific accessibility requirements demand otherwise.
Solution: Reserve generous spacing for headlines, navigation, and buttons. Keep body text at or below default spacing.
Under-spacing All-Caps Text
Default spacing designed for mixed-case text often leaves all-caps text feeling cramped, as the uniform height of capital letters creates visual crowding. A modest increase (0.05em to 0.1em) for all-caps text typically improves both readability and aesthetics.
Solution: Create a utility class for all-caps text that applies appropriate spacing automatically.
Inconsistent Spacing
Different letter spacing values for similar text elements registers as a design error. When one headline has default spacing and a similar headline elsewhere uses 0.05em spacing, the difference appears unintentional.
Solution: Use design system tokens and establish a single source of truth for all typography values.
Ignoring Accessibility Requirements
Failing to account for WCAG 1.4.12 creates barriers for users with disabilities and may expose organizations to legal liability.
Solution: Test layouts with increased spacing settings before launch. Use automated tools and manual testing with assistive technologies.
Applying Latin Conventions to Other Scripts
Using the same letter spacing values for Arabic, CJK, or other non-Latin scripts can render text unreadable.
Solution: Research script-specific typography guidelines and test with native speakers. Never assume Latin-based rules apply universally.
For more on avoiding common CSS pitfalls, see our guide on how to remove unused CSS from a site.
Testing and Validation
Automated Testing
WCAG Compliance Validators: Tools like axe, WAVE, and Lighthouse can identify accessibility issues, though specific text spacing testing often requires additional tools.
WCAG Text Spacing Bookmarklet: This official W3C bookmarklet enables quick manual testing of any webpage by applying the standard's spacing thresholds and revealing content that breaks under increased spacing.
Layout Regression Testing: Use visual regression tools to capture baseline screenshots and compare against versions with increased spacing settings.
Manual Testing
Cross-Browser Testing: Letter spacing rendering can vary slightly between browsers. Test in Chrome, Firefox, Safari, and Edge.
Device Testing: Different operating systems and devices render fonts differently. Test on Windows, macOS, iOS, and Android.
Zoom and Accessibility Settings: Test with browser zoom at 125%, 150%, and 200%, as well as with increased minimum font size settings.
User Testing
Accessibility-focused testing with users who have visual impairments or dyslexia provides invaluable insights. These tests reveal issues that automated tools and conventional testing miss. Consider:
- Extended reading session tests
- Real-world task completion with typography-heavy content
- Comparison testing with different spacing configurations
Recommended Tools
| Tool | Purpose | Type |
|---|---|---|
| WCAG Text Spacing Bookmarklet | Simulate WCAG spacing requirements | Manual |
| axe DevTools | Automated accessibility testing | Automated |
| WAVE | Visual accessibility analysis | Automated |
| Lighthouse | Comprehensive accessibility audit | Automated |
| Browser Zoom Testing | Manual layout verification | Manual |
Implementing proper letter spacing is just one aspect of accessible web design. Our web development services include comprehensive accessibility testing and compliance verification.
Frequently Asked Questions
What is the difference between letter spacing and kerning?
Kerning adjusts space between specific letter pairs (like 'AV' or 'To'), while letter spacing (tracking) applies uniform adjustment to entire words or text blocks. Kerning is typically manual fine-tuning for logos, while letter spacing is applied systematically via CSS.
What is the best unit for letter spacing?
The em unit is generally recommended because it scales proportionally with font size, maintaining consistent visual relationships across different text sizes. This is particularly important for responsive designs and accessibility compliance.
How much letter spacing should all-caps text have?
All-caps text typically benefits from 0.05em to 0.15em additional spacing, though the ideal value depends on the specific typeface, font weight, and text size. Smaller all-caps text generally needs more spacing.
What is the WCAG requirement for letter spacing?
WCAG 2.1 Success Criterion 1.4.12 requires letter spacing to be adjustable to at least 0.12 times the font size without loss of content or functionality. Content must not clip, overlap, or become unusable when spacing increases.
Can letter spacing break accessibility?
Yes--overly tight or loose spacing can make text difficult to read for all users. Additionally, layouts that don't accommodate increased spacing fail WCAG compliance and create barriers for users with dyslexia and visual impairments.
Should I apply letter spacing to non-Latin scripts?
Generally no, especially for Arabic. Connected letterforms depend on specific spacing, and applying letter spacing breaks readability. CJK scripts follow different typographic conventions. Always research script-specific guidelines.
Sources
- W3C WAI: Understanding Success Criterion 1.4.12 Text Spacing - Official WCAG accessibility standard with specific letter spacing requirements
- MDN Web Docs: letter-spacing CSS Property - CSS property syntax, implementation details, and accessibility notes
- Edric Studio: Typography Spacing Guidelines - Practical typography spacing recommendations and best practices
- UCOP Electronic Accessibility: Text Spacing Standards - Accessibility compliance guidance for text spacing