← Blog

Day 12 Tutorial - WordPress Typography Controls

By Umar Shakar · 28 Oct 2026 · WordPress

Part of the WordPress Block Editor in 60 Days series · All lessons

On this page

← Previous: Day 11, The Block Settings Sidebar

Welcome to Day 12 of the 60-Day WordPress Block Editor Tutorial Series. Yesterday you learned how the sidebar is organized. Today you open the Typography panel and learn what each control does and when to leave it alone. Time needed: 10 minutes reading + 30 minutes practice.

What You Will Learn Today

Reading: Typography Without Guesswork

Typography is how text looks. Good typography is almost invisible: readers just find the page easy to read. Bad typography makes visitors leave. The Typography panel gives you the controls, and this lesson tells you how to use them with restraint.

WordPress Paragraph block selected with the Typography panel in the sidebar showing Font, Font size, Appearance, Line height and Letter spacing controls
The Typography panel with the extra controls switched on from its three-dot menu: Font, Font size, Appearance, Line height, and Letter spacing. Screenshot taken by Umar Shakar in WordPress Playground (WordPress is GPL-2.0-or-later software).

Font Size

Font size has two modes. Presets are named sizes such as S, M, L, XL, and XXL that the theme defines. Click one and the text changes. Custom lets you type a value with a unit (px, em, rem, %, vw, and so on). Presets are better because they keep the whole site consistent, and if the theme changes its sizes, your text follows. Many modern themes also use fluid font sizes that scale smoothly between phones and desktops, so a large heading is not oversized on a small screen.

Rule of thumb: body text should be at least 16 px (1 rem) on all devices. Smaller text is hard to read on phones.

Font Family

The font family menu lists the fonts that the theme provides, and in newer WordPress versions the fonts that you installed with the Font Library. The Font Library is in the Site Editor under Styles → Typography (you will visit it on Day 38) and lets you upload font files or install fonts from a library such as Google Fonts. Installed fonts are stored on your own server, which also avoids sending visitors' data to other sites.

Use at most two font families on a site: one for headings and one for body text. A fancy font on a single paragraph usually looks out of place.

Appearance: Weight and Style

The Appearance control combines font weight (thin, regular, medium, semi-bold, bold, black) and style (normal or italic). You only see the weights that the font actually includes. If the font has no italic, the italic option is missing, and a browser would otherwise invent a fake italic.

Line Height

Line height is the vertical space between lines. For body text, a value of about 1.5 to 1.7 is comfortable. Headings look better with tighter spacing, such as 1.1 to 1.3. Enter a number without a unit (1.6) so it scales with the font size. Too tight and lines collide, too loose and the paragraph falls apart.

Letter Spacing

Letter spacing changes the gap between characters. Small positive values (for example 0.05em) can make uppercase labels easier to read. For normal lowercase text, leave it alone.

Text Decoration and Case

Readability Rules

Key takeaway: use presets, keep fonts to two, use a comfortable line height, and avoid decoration. When in doubt, leave the theme's defaults alone.

What the Markup Looks Like

<!-- wp:paragraph {"style":{"typography":{"lineHeight":"1.7","letterSpacing":"0.5px"}},"fontSize":"large"} -->
<p class="has-large-font-size" style="letter-spacing:0.5px;line-height:1.7">A comfortable, larger paragraph.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"textAlign":"center","style":{"typography":{"textTransform":"uppercase","letterSpacing":"0.1em"}}} -->
<h2 class="wp-block-heading has-text-align-center" style="letter-spacing:0.1em;text-transform:uppercase">Our Services</h2>
<!-- /wp:heading -->

5 Examples to Follow Along

Example 1: Use a Preset Size

Select a paragraph, open Typography, and click L. In the Code editor you will see fontSize":"large" and the class has-large-font-size.

Example 2: Enter a Custom Size

Click the settings icon next to Font size to switch to custom mode and type 1.25rem. Compare it with the L preset. Then switch back to presets.

Example 3: Change Line Height

Set the line height of a three-line paragraph to 1.2, then 1.6, then 2.2. Decide which value reads best and why.

Example 4: Style a Label with Uppercase

Add a short heading such as "Our Services", set the letter case to uppercase and the letter spacing to 0.1em. Compare it with the default.

<!-- wp:heading {"level":3,"style":{"typography":{"textTransform":"uppercase","letterSpacing":"0.1em"}}} -->
<h3 class="wp-block-heading" style="letter-spacing:0.1em;text-transform:uppercase">Our Services</h3>
<!-- /wp:heading -->

Example 5: Check the Font Family Menu

Open the Font family menu and look at the fonts offered. Note which are used by your theme for headings and for body text. Do not change them yet.


Questions

Try to answer each question yourself first, then open the answer.

Question 1: Why are preset font sizes better than custom sizes?

Show answer

Presets are defined by the theme, so they stay consistent across the site and update everywhere when the theme changes them. They may also be fluid, scaling smoothly between screen sizes.

Example: if every intro paragraph uses the Large preset and later you decide Large should be a bit bigger, you change it once in the theme and all paragraphs update. With custom values you would edit each paragraph.

Question 2: What is a good line height for body text, and why enter it without a unit?

Show answer

About 1.5 to 1.7. A unitless value is multiplied by the font size, so the spacing scales correctly if the font size changes.

Example: a line height of 1.6 on 20 px text gives 32 px lines, and on 16 px text gives 25.6 px lines. A fixed 24px would be too tight for the larger text.

Question 3: Why do you only see some font weights?

Show answer

The font file provides only certain weights and styles. The panel shows what the font includes, so you do not get synthetic weights that look poor.

Example: a font installed with only Regular and Bold will not offer Semi-bold. Install another weight in the Font Library if you need it.

Question 4: When is uppercase text a good idea?

Show answer

For short labels or small headings. Long uppercase text is harder to read because the shapes of the words look similar.

Example: a small label "NEW" or a section tag "OUR SERVICES" works. A whole paragraph in capitals does not.

Question 5: How many font families should a website use?

Show answer

Usually two: one for headings and one for body text. More fonts make the site look inconsistent and slow it down because each font file must be downloaded.

Example: a serif font for headings and a clean sans-serif for body text, installed once in the Font Library and used everywhere.


MCQs (Multiple Choice Questions)

MCQ 1: What minimum size is recommended for body text?

Show answer

C) 16 px (1 rem). Smaller text is hard to read on phones.

MCQ 2: Which line height is comfortable for body text?

Show answer

B) 1.5 to 1.7. Too tight or too loose reduces readability.

MCQ 3: Where can you install extra fonts in current WordPress?

Show answer

A) The Font Library. It is in the Site Editor under Styles → Typography.

MCQ 4: What does underline normally signal to readers?

Show answer

A) A link. Avoid underlining text that is not a link.

MCQ 5: Which text-transform value gives ALL CAPITALS?

Show answer

A) uppercase. Use it for short labels only.


Practice: 10 Tasks from Easy to Hard

Create a new draft post called Practice Day 12 and work through the tasks in order. Where a snippet is given, open Options → Code editor, paste it, then switch back to the Visual editor.

Task 1 (Easy): Try every preset

Write one paragraph and apply each preset size from S to XXL. Which one is closest to your theme's default?

Task 2 (Easy): Change the weight

Select a heading and change its Appearance (weight). Which weights does your font offer?

Task 3 (Easy): Italic text

Apply italic with the Appearance menu to one paragraph and then with the toolbar italic button to a single word. What is the difference in the markup?

Task 4 (Easy): Underline test

Underline one word with the Decoration control, and link another. Which one looks like a link? What does this teach you?

Task 5 (Medium): Compare line heights

Create three identical paragraphs with line heights of 1.2, 1.6, and 2.0 and compare readability.

Task 6 (Medium): Letter spacing

Apply 0.1em letter spacing to an uppercase label and to a lowercase paragraph. Which looks better and why?

Task 7 (Medium): Custom unit

Set a custom size using rem and then using px. Change your browser zoom. Which one scales better for visitors?

Task 8 (Medium-Hard): Check the hierarchy

Create an H2, an H3, and a paragraph. Make sure the sizes clearly follow the hierarchy, using the theme presets.

Task 9 (Hard): Style a hero heading

Paste the snippet below and then modify it: change the font weight, line height, and text case to create a strong but readable hero heading. Check it on a narrow window.

<!-- wp:heading {"textAlign":"center","level":2,"style":{"typography":{"lineHeight":"1.1"}},"fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size" style="line-height:1.1">Handmade Furniture</h2>
<!-- /wp:heading -->

Task 10 (Hard): Typography audit

Pick any page of your site. List every font family, size, and weight used. Remove custom values that duplicate a preset, and note anything that should become a theme or Global Styles setting.


Coming Up Next

In Day 13 you will style color: text, background, links, gradients, and contrast.

← Previous: Day 11, The Block Settings Sidebar

Next: Day 13, Colors and Gradients →

Need a website, SEO or a custom business app?
I'm Umar, a web developer and SEO specialist in Abu Dhabi. Get in touch.