Guide to Font Role Naming

How to name your typographic roles so your team speaks the same language.

Why Role Names Matter

Role names are how your team communicates about typography. A good name tells you where and how a style should be used without opening the inspector. Consistent naming also makes the Palette Extractor and compliance checking more useful — when a component is flagged as non-compliant, the recommended role name should immediately tell you what it should be.

Rule of thumb: If you can’t tell where a role belongs just from its name, rename it.

Common Naming Systems

There is no single “right” system. Pick one that fits your project and stick with it.

1. Semantic / Purpose-Based

Names describe the function of the text, not its appearance. This is the most common system and what most design tools (Figma, Material Design) use.

Role NameTypical UseExample
DisplayHero text, splash screens, marketing headersGame title on main menu
HeaderSection or screen titles“SETTINGS”, “LEADERBOARD”
SubheaderSecondary headings within a section“Audio Settings”, “Team Roster”
BodyMain readable text, descriptions, paragraphsItem descriptions, tutorial text
CaptionSmall supporting text, timestamps, metadata“Last played 2 hours ago”
LabelField labels, form names, short identifiers“Username:”, “Score:”
ButtonInteractive button text“PLAY”, “CONFIRM”, “CANCEL”
OverlineSmall all-caps text above a heading“CHAPTER 3” above “The Dark Forest”
TooltipHover/contextual help text“Press E to interact”
BadgeStatus indicators, tags, counters“NEW”, “3/10”, “MVP”
Material Design scale: Display > Headline > Title > Body > Label. Each has Large / Medium / Small variants. FontOps doesn’t enforce this — use it if it fits.

2. Size-Based (T-Shirt Sizing)

Names describe relative size. Simple and unambiguous, but doesn’t communicate purpose. Works well for small teams or prototyping.

Role NameSize RangeTypical Use
XXL48–72pxSplash / hero text
XL32–48pxScreen titles
LG24–32pxSection headers
MD16–24pxBody text, descriptions
SM12–16pxCaptions, labels
XS8–12pxFine print, legal, badges

3. Hierarchical (H1–H6 Style)

Borrowed from HTML/web conventions. Straightforward for developers but less intuitive for designers.

Role NameEquivalentExample
H1Display / Page TitleMain menu title
H2Section HeaderSettings category
H3Subsection HeaderAudio > Music Volume
BodyParagraph textDescriptions
SmallFine printCopyright, version

4. Context-Specific (Screen/Feature Prefixed)

For large projects with distinct visual areas (e.g., HUD vs. menus vs. dialogue). Prefix the role name with the context.

Role NameWhereExample
HUD/ScoreIn-game overlayScore counter
HUD/TimerIn-game overlayCountdown clock
HUD/AmmoIn-game overlayAmmo count
Menu/TitleMenu screensScreen name
Menu/BodyMenu screensDescription text
Menu/ButtonMenu screensButton labels
Dialog/SpeakerDialogue systemCharacter name
Dialog/LineDialogue systemSpoken text
Dialog/ChoiceDialogue systemPlayer response options
Scoreboard/NameLeaderboardPlayer name column
Scoreboard/StatLeaderboardK/D/A numbers
Scoreboard/HeaderLeaderboardColumn headers
When to use this: When the same font size/style serves completely different purposes in different parts of your game. A “Body” in a menu and a “Body” in a HUD might look identical today but evolve differently. Separate roles let you change them independently.

Real-World Examples

Mobile Casual Game

A party game with bright, bouncy UI. One font family, multiple weights.

RoleFontSizeStyleUsed For
DisplayBaloo 248pxBoldGame title, win/lose splash
HeaderBaloo 232pxBoldScreen titles
BodyBaloo 220pxRegularRules text, descriptions
ButtonBaloo 224pxBoldPLAY, SETTINGS, BACK
CaptionBaloo 214pxRegularPlayer count, lobby code
BadgeBaloo 212pxBoldNEW, 1ST, MVP

Competitive Tactical Shooter

Dark UI with high information density. Two font families — sans-serif for UI, monospace for data.

RoleFontSizeStyleUsed For
HUD/ScoreRajdhani28pxBoldKill count, round score
HUD/TimerShare Tech Mono24pxRegularRound timer, bomb timer
HUD/AmmoShare Tech Mono20pxRegular30/90 ammo display
Menu/TitleRajdhani36pxBoldLOADOUT, OPERATORS
Menu/BodyRajdhani16pxRegularOperator bios, patch notes
Menu/ButtonRajdhani18pxBoldREADY, QUEUE, EXIT
Scoreboard/NameRajdhani16pxRegularPlayer names
Scoreboard/StatShare Tech Mono14pxRegularK/D/A columns
Scoreboard/HeaderRajdhani12pxBoldColumn headers (KILLS, DEATHS)

Story-Driven RPG

Rich narrative with dialogue, inventory, and world-building lore. Three font families.

RoleFontSizeStyleUsed For
DisplayCinzel56pxBoldChapter titles, location reveals
HeaderCinzel32pxRegularMenu headers, quest log titles
BodyLora18pxRegularItem descriptions, lore entries
Body ItalicLora18pxItalicFlavour text, internal thoughts
Dialog/SpeakerCinzel20pxBoldCharacter name above dialogue
Dialog/LineLora20pxRegularSpoken dialogue text
Dialog/ChoiceLora18pxRegularPlayer response options
UI/LabelNunito Sans14pxRegularStat names: STR, DEX, INT
UI/ValueNunito Sans16pxBoldStat values: 42, +5, 1200 XP
UI/ButtonNunito Sans16pxBoldEQUIP, SELL, USE
TooltipNunito Sans13pxRegularHover info on items/skills
CaptionNunito Sans11pxRegularRarity, weight, quest markers

Minimalist Puzzle Game

Clean, simple. One font, few roles.

RoleFontSizeStyleUsed For
TitleInter36pxLightLevel name, game title
BodyInter18pxRegularInstructions, hints
ButtonInter16pxMediumRESTART, NEXT, MENU
CounterInter24pxBoldMove count, timer

Best Practices

Do

Don’t

Quick-Start Cheat Sheet

Not sure where to start? Use this minimal set and expand from there:

RoleWhat It Covers
HeaderScreen/section titles — the biggest text on any screen
BodyEverything readable — descriptions, instructions, paragraphs
ButtonAll interactive text — buttons, links, tappable labels
CaptionEverything small — metadata, timestamps, footnotes

That’s four roles. Most small-to-medium games never need more than six. Add Display if you have hero/splash text, and Label if you have form fields or stat sheets.