Font Tokens
Comprehensive guide to font tokens and their relationship to the complete typography system in Chassis Tokens.
This documentation is a work in progress. Some information may be incomplete, outdated, or differ from the current product behavior.
Overview
Font tokens in Chassis refer to composite typography tokens that combine multiple typographic properties (font family, weight, size, line height, spacing, etc.) into complete, ready-to-use text styles. These tokens are defined in the App group and are the primary typography tokens used when designing interfaces.
Font tokens are actually composite typography tokens documented comprehensively in the Typography Tokens page. This page provides a brief overview and directs you to the complete documentation.
Relationship to Typography System
Chassis Tokens uses a comprehensive typography system with multiple layers:
Foundational Layer (Brand Group)
Font Families: Brand-specific typeface definitions
typography.fontFamily.text- Body text fonttypography.fontFamily.display- Heading fonttypography.fontFamily.code- Monospace font
Font Weights: Semantic weight definitions
typography.fontWeight.[family].normal- Default weighttypography.fontWeight.[family].strong- Bold weighttypography.fontWeight.[family].mass- Extra bold weighttypography.fontWeight.[family].elegant- Light weight
Modular Layer (App Group)
Individual Properties:
typography.fontSize.*- Size scalestypography.lineHeight.*- Line height scalestypography.letterSpacing.*- Letter spacing valuestypography.paragraphSpacing.*- Paragraph spacing valuestypography.textCase.*- Text transformationtypography.textDecoration.*- Text decoration styles
Composite Layer (App Group)
Complete Text Styles (font.*):
These are the "font tokens" that combine all properties:
{
"font.text.medium.normal": {
"$type": "typography",
"$value": {
"fontFamily": "{typography.fontFamily.text}",
"fontWeight": "{typography.fontWeight.text.normal}",
"fontSize": "{typography.fontSize.text.medium}",
"lineHeight": "{typography.lineHeight.text.medium}",
"letterSpacing": "{typography.letterSpacing.base.zero}",
"paragraphSpacing": "{typography.paragraphSpacing.base.zero}",
"textCase": "{typography.textCase.base.none}",
"textDecoration": "{typography.textDecoration.base.none}"
}
}
}
Font Token Categories
Text Family Styles
Composite typography tokens using the text font family:
font.text.[size].normal- Regular weight textfont.text.[size].strong- Bold textfont.text.[size].mass- Extra bold textfont.text.[size].elegant- Light weight text
Where [size] can be: 2xsmall, xsmall, small, medium, large, xlarge, 2xlarge, 3xlarge, 4xlarge, 5xlarge
Display Family Styles
Composite typography tokens using the display font family:
font.display.[size].normal- Display headingsfont.display.[size].strong- Bold display textfont.display.[size].mass- Extra bold display textfont.display.[size].elegant- Refined display text
Code Family Styles
Composite typography tokens using the code font family:
font.code.small.normal- Small code textfont.code.medium.normal- Medium code textfont.code.large.normal- Large code textfont.code.[size].strong- Bold code text
Contextual Font Styles
Semantic typography tokens for specific content types:
font.context.jumbo- Largest heading (96px)font.context.hero- Hero heading (64px)font.context.lead- Lead paragraphfont.context.heading- Main page headingfont.context.title.[size]- Section titlesfont.context.body.[size]- Body textfont.context.highlight.[size]- Highlighted content
Component Font Styles
Component-specific typography tokens:
font.button.[size]- Button labelsfont.form-input.*- Input field textfont.badge.[size]- Badge textfont.alert.*- Alert textfont.list.*- List text- And many more...
When to Use Font Tokens
Use Font Tokens When:
✅ Designing UI components and layouts
✅ You need a complete, ready-to-use text style
✅ Working with component-specific text (buttons, inputs, badges)
✅ Applying semantic text styles (headings, body, titles)
✅ You want consistent typography with minimal configuration
Use Individual Typography Tokens When:
❌ You need to override a single property (e.g., just font size)
❌ Creating custom text styles not covered by font tokens
❌ Building new component typography tokens
❌ Working with brand-level font definitions
Complete Documentation
For comprehensive information about the typography system including:
- Complete font token listings
- Typography architecture and token layers
- Font family and weight definitions
- Modular typography properties
- Contextual and component typography
- HTML element typography
- Usage guidelines and best practices
- Accessibility considerations
- Brand customization examples
Please refer to: Typography Tokens
Quick Reference
Most Common Font Tokens
| Token Name | Use Case |
|---|---|
font.text.medium.normal | Standard body text (16px) |
font.text.small.normal | Small body text (14px) |
font.text.large.normal | Large body text (19px) |
font.text.medium.strong | Bold labels, emphasized text |
font.context.heading | Main page headings |
font.context.title.large | Section titles |
font.context.body.medium | Standard paragraph text |
font.button.medium | Button labels |
font.form-input.medium-value | Input field values |
Font Token Naming Pattern
Composite tokens: font.[family].[size].[weight]
- Example:
font.text.medium.strong
Contextual tokens: font.context.[semantic-name]
- Example:
font.context.heading
Component tokens: font.[component].[variant]
- Example:
font.button.large
Architecture Diagram
Brand Group (Foundational)
├─ typography.fontFamily.text
├─ typography.fontFamily.display
└─ typography.fontWeight.*
↓ referenced by
App Group (Modular)
├─ typography.fontSize.*
├─ typography.lineHeight.*
├─ typography.letterSpacing.*
└─ typography.paragraphSpacing.*
↓ combined into
App Group (Composite)
├─ font.text.[size].[weight] ← "Font Tokens"
├─ font.display.[size].[weight]
├─ font.code.[size].[weight]
└─ font.context.*
↓ referenced by
App Group (Component)
└─ font.[component].*
Migration from Other Systems
If you're migrating from systems that separate "font tokens" from "typography tokens":
In Chassis Tokens:
- What you might call "font tokens" = typography primitive tokens (fontFamily, fontWeight)
- What you might call "text style tokens" = font tokens (composite typography)
Practical mapping:
- Old: Apply font family + font size + line height separately
- New: Use single
font.text.medium.normaltoken
This consolidation reduces complexity and ensures all typographic properties are applied consistently.
See Also
- Typography Tokens - Complete typography system documentation
- Color Tokens - Color system for text colors
- Tokens Studio - How typography tokens are defined and organized