skip to content

Typography

How a system sets type: scale steps, named text styles, readability rules, responsive sizing and many scripts. Interviewers probe it because ad-hoc font sizes are the first sign of no system.

part ofDesign systems & UX foundationsoverview, primer and where to startread it →
on this pageshow

explore

questions

20

In a design system, what is a semantic text style such as heading, body or caption, and why use named styles over raw sizes?

level: juniorimportance: must knowfreq 55%

answer

  1. properties that always travel together
  2. a role, not a number
  3. one change, every screen
  4. shared vocabulary for design and code
  5. the scale supplies sizes, styles pick combinations

basics

~20 s

A semantic text style is a named typographic role, such as body or caption, that bundles size, weight, line height and letter spacing. Teams choose the role, not the numbers, so text stays consistent and one edit updates every screen.

solid answer

~50 s

A **text style** packages the typographic properties that always travel together — font family, size, weight, line height, letter spacing — under a name that describes its **role**: display, heading, title, body, label, caption. In a ride-hailing driver app, the fare on an incoming ride request uses a display style, the pickup address uses body, the accept button's text uses label, and the rider's rating line uses caption. Choosing a role instead of raw values means two teams building similar screens land on the same result, hierarchy follows a system rather than taste, and design files and code share one vocabulary. It also makes change cheap: adjusting the body style's line height updates every screen that uses body. The raw sizes come from the type scale underneath; the styles are the small, named set of combinations the product actually uses.

go deeper

for a junior

Recall what a text style bundles, the common roles from display to caption, and why you pick a role rather than typing sizes.

for a middle

Explain why role names outlast appearance names, why color is often kept out of styles, and how styles sit on top of the type scale.

for a senior

Show you can spot screens bypassing the styles and trace the inconsistency and change cost that creates across platforms.

for a principal

Discuss how named roles let many teams stay consistent without coordination, and where a system should allow local typographic freedom.

## From values to roles A **type scale** gives a product its list of allowed font sizes. That alone does not tell anyone how to set a pickup address or a fare. A **text style** (also called a type style or typographic role) answers that by bundling the properties that are always chosen together: - **font family** — which typeface; - **size** — one step from the type scale; - **weight** — regular, medium, bold and so on; - **line height** — the vertical space each line occupies; - **letter spacing** — often tightened for large text and loosened for small uppercase labels. The style gets a **semantic name** — a name for what the text is for, not what it looks like. Designers apply the style in design files, engineers reference the same named style in code, and native mobile and web implementations each map it to their own text-styling mechanism. ## A typical role set | Role | Purpose | Typical traits | Driver-app example | |---|---|---|---| | **Display** | The one number or phrase that must be seen first | Largest size, often bold, tight letter spacing | Fare estimate on a ride request | | **Heading** | Titles a screen or a section | Large, strong weight | Today's earnings screen title | | **Title** | Names a card, list item or dialog | Medium size, medium or bold weight | Rider name on a trip card | | **Body** | Running text and most content | Base size, regular weight, comfortable line height | Pickup and drop-off addresses | | **Label** | Text on controls and form fields | Small to base size, medium weight | Accept and decline buttons | | **Caption** | Secondary metadata | Smallest size, regular weight | Rider rating, distance to pickup | Many systems split roles into two or three sizes each (large, medium, small), which is why real sets run to a dozen or so styles rather than six. The exact names vary by system; what matters is that each name describes a role. ## Why roles beat raw values 1. **Consistency without coordination.** Two teams building a trip summary and an earnings summary pick body and caption, and their screens match without a meeting. 2. **Deliberate hierarchy.** Because each role has a fixed relationship to the others, hierarchy comes from the system rather than from each designer's eye on the day. 3. **Cheap, safe change.** Raising the caption style from regular to medium weight after drivers report it is hard to read in sunlight is one edit that reaches every screen using caption, on every platform. 4. **A shared vocabulary.** A review comment that says this should be label, not body is precise for designers and engineers alike. 5. **Auditability.** It is easy to find every use of a role; it is nearly impossible to find every place someone typed a particular size and weight. ## What a style includes, and what it often leaves out Styles always cover the typographic properties above. **Color** is often kept out, so one caption style can appear on a light card, on a dark map overlay or in an emphasized state without a new style for each; color then comes from separate color roles. Some systems do include color in styles for simplicity. Both are defensible; the cost of including it is a style count that multiplies with every color. ## Naming by role, not appearance A style called caption survives a redesign; a style called gray-12-regular becomes a lie the day caption moves to 13 medium. Role names also stop people choosing a style because it happens to have the right look for an unrelated job — which is how a caption style ends up on a button and later breaks when caption changes. ## How it fits with the rest of the system - The **type scale** below supplies the sizes each style may use. - The **tokens** layer publishes each style, often as a composite token, so every platform receives the same combination. - **Components** reference styles by role: a button uses label, a list item uses title and body. The result is that hierarchy, consistency and change all operate on a short list of named roles rather than on thousands of scattered numbers.

  • Why do many systems keep color out of text styles?
    So one style can appear on different surfaces and in different emphasis states without a new style per color. Color then comes from separate color roles. Including color is simpler to apply, but the number of styles multiplies with every color, which is how style sets sprawl.
  • What should happen when a screen needs text that no style fits?
    First check whether an existing role fits after all; most one-off needs are an existing role with a different color or emphasis. If a recurring role genuinely has no style, propose adding one to the system rather than hard-coding values on that screen.
  • How does a text style reach native mobile and web code?
    The system publishes each style once, commonly as a composite token holding family, size, weight, line height and letter spacing, and each platform's build maps it to its own text-styling mechanism. Every platform then receives the same combination under the same role name.

saying these in an interview costs you the question

  • Text styles are just another name for the list of font sizes.
  • Naming styles by appearance, such as gray-12-regular, is clearer than naming them by role.
  • Any style with the right look can be reused for an unrelated role.
  • Applying the body style guarantees accessibility conformance for that text.
  • Each screen should define its own styles so it can be tuned independently.
open as a page

When an accounting app's design system adds Arabic and Hebrew, which parts of the interface should mirror in right-to-left layouts, and which should not?

level: juniorimportance: must knowfreq 42%

basics

~20 s

Mirror whatever follows reading direction: layout order, alignment, navigation, back and forward arrows, steppers and progress. Do not mirror numbers and amounts, logos, checkmarks or icons of real objects; left-to-right runs keep their order inside right-to-left text.

open as a page

In a design system for web and native apps, why must text follow the user's text-size setting, and how must layouts adapt?

level: juniorimportance: must knowfreq 50%

basics

~20 s

Many readers raise the system or browser text size because they need it, and fixed sizes ignore them. A system defines text styles relative to that setting, and layouts let text wrap, containers grow and horizontal rows stack at large sizes.

open as a page

In a design system, what is a modular type scale, and how does a 1.25 ratio from a 16 base generate its sizes?

level: juniorimportance: must knowfreq 50%

basics

~20 s

A modular type scale is a small set of font sizes where each step is the previous one multiplied by a fixed ratio. From a base of 16 at 1.25, the steps run 12.8, 16, 20, 25, 31.25 and 39.06, then get rounded.

open as a page

In a design system, why should a text style's visual prominence be chosen independently of the heading level the text is exposed as?

level: middleimportance: must knowfreq 45%

basics

~20 s

Heading level describes the document outline that assistive technology users navigate, while a text style describes visual prominence. A card title may need level 3 but a small style, and a large fare is not a heading at all, so each is chosen separately.

open as a page

In a design system, why do body text columns target roughly 45 to 75 characters per line, and how is that enforced?

level: middleimportance: must knowfreq 50%

basics

~20 s

Roughly 45 to 75 characters per line is a typographic convention: longer lines make the eye lose the start of the next line, shorter ones chop phrases apart. A system enforces it by capping reading-column width relative to the type size.

open as a page

Under WCAG 2.2, how do SC 1.4.4 Resize Text and SC 1.4.10 Reflow differ, and what does each require of a design system's layouts?

level: middleimportance: must knowfreq 50%

basics

~20 s

1.4.4 Resize Text (AA): text can be enlarged to 200 percent without assistive technology and without loss. 1.4.10 Reflow (AA): content works at a width equivalent to 320 pixels without two-dimensional scrolling, except content that needs two-dimensional layout.

open as a page

A news site's headline cards clip text when readers apply a text-spacing override; what does WCAG 1.4.12 require, and how do you fix it system-wide?

level: seniorimportance: must knowfreq 45%

basics

~20 s

WCAG 2.2 SC 1.4.12 (AA) requires no loss of content when users set line height to 1.5, paragraph spacing to 2, letter spacing to 0.12 and word spacing to 0.16 times the font size. Fix the card component so text grows.

open as a page

A charity donation page at 400% zoom truncates campaign titles, cuts off preset amount buttons and scrolls sideways; how do you fix it in the design system?

level: seniorimportance: must knowfreq 42%

basics

~20 s

Treat it as a reflow and resize failure in shared components: stack the amount buttons, let titles wrap instead of truncating, keep only two-dimensional content in its own scroll area, and truncate only where the full text stays reachable.

open as a page

In a design system's text styles, why does body text get looser line height than headlines, and how should paragraphs be separated?

level: juniorimportance: should knowfreq 42%

basics

~20 s

Body text is read across many consecutive lines, so it needs looser line height, commonly about 1.4 to 1.6 times the font size; short, large headlines read better tighter. Paragraphs need a gap clearly larger than the line gap.

open as a page

In a design system's text styles, how do size and weight contrast create hierarchy, and why do near-identical neighbouring styles fail?

level: middleimportance: should knowfreq 42%

basics

~20 s

Readers rank text by how different it looks: larger and heavier text reads as more important. Adjacent styles need a clearly visible gap, usually in size and weight together; a one-unit or one-weight difference looks like inconsistency, not a level.

open as a page

In a design system for an accounting product shipped in Latin, Arabic and Japanese, how should font stacks and their fallback order be designed?

level: middleimportance: should knowfreq 38%

basics

~20 s

Define a stack per locale or script: the brand family first for Latin, then a family chosen for the script, then the platform's default interface font and a generic fallback. Tag content language so the right glyph forms apply.

open as a page

In a design system, why can't Latin line heights and text styles be reused unchanged for Arabic, Devanagari or Japanese text?

level: middleimportance: should knowfreq 35%

basics

~20 s

Scripts differ in vertical extent and texture: Arabic and Devanagari carry marks well above and below the letters, and Japanese glyphs fill a square. Styles need per-script line height and size, and Latin devices like capitals, italics and tracking fail.

open as a page

In a design system, when should type sizes step at breakpoints rather than scale fluidly between them, and what does each approach cost?

level: middleimportance: should knowfreq 40%

basics

~20 s

Stepped type swaps fixed sizes at breakpoints: predictable and easy to specify, but it jumps. Fluid type interpolates between a minimum and a maximum across widths: smooth, fewer overrides, harder to specify and test. Many systems make only display sizes fluid.

open as a page

For a design system's type scale, how do you choose the ratio and the number of steps for a data-dense freelance job marketplace?

level: middleimportance: should knowfreq 42%

basics

~20 s

Choose the ratio from the contrast the product needs: small ratios around 1.125 to 1.2 suit dense interfaces, larger ones like 1.333 or 1.5 suit editorial pages. Choose the step count from an inventory of real text roles, commonly about six to ten sizes.

open as a page

When a 1.25 type scale from base 16 yields 12.8, 31.25 and 39.06, how do you round them, and when should you hand-tune steps?

level: middleimportance: should knowfreq 36%

basics

~20 s

Round to whole numbers, or to grid-friendly values for larger steps, accepting small drift from the exact ratio. Hand-tune where the arithmetic fails the product: drop or raise a too-small bottom step and keep every neighbour visibly different.

open as a page

Why is it a problem that a ride-hailing driver app's design system has grown to 34 text styles, many differing only in color or weight, and how do you reduce it?

level: seniorimportance: should knowfreq 32%

basics

~20 s

Too many near-duplicate styles make choice guesswork, blur hierarchy and multiply maintenance on every platform. Audit usage, pull color and emphasis out as separate modifiers, merge styles that serve the same role, retire unused ones and require a recurring role before adding a style.

open as a page

An accounting product's design system ships two families in five weights, and adding Arabic and Japanese multiplies font files; how do you set a type budget?

level: seniorimportance: should knowfreq 30%

basics

~20 s

Audit which families and weights the text styles really use, cut to the few that carry hierarchy, and budget per script: large scripts like Japanese often use platform fonts, and weights a script family lacks are mapped, not faked.

open as a page

For a design system's seven-step type scale, how would you consolidate a freelance job marketplace's 23 ad hoc font sizes and publish the scale as tokens?

level: seniorimportance: should knowfreq 33%

basics

~20 s

Audit every size with where and how often it is used, map each to a scale step by its role, and add a step only if a recurring role has none. Publish the final rounded values as size tokens that every platform references.

open as a page

For long-form article text in a design system, why is start-aligned ragged text preferred over justified text, and when is justification acceptable?

level: middleimportance: nice to knowfreq 28%

basics

~20 s

Justified text stretches word spacing unevenly to reach both margins, creating gaps and rivers that hurt reading, worst in narrow columns without hyphenation. Start-aligned ragged text keeps spacing even. Justification suits only wide, hyphenated, proofed columns.

open as a page