https://www.learnui.design/blog/mobile-desktop-website-font-size-guidelines.html
In this post, we’ll cover what font size to use for a modern, responsive website. First, I’ll give an overview, then we’ll cover mobile guidelines and desktop guidelines in-depth.
| Element | Mobile | Desktop |
|---|---|---|
| Page title | 28-40px | 35-50px |
| Default/body text | 16-20px for text-heavy pages*, 16-18px for interaction-heavy pages* |
18-24px for text-heavy pages*, 14-20px for interaction-heavy pages* |
| Secondary text, captions | 2px smaller than default | 2px smaller than default |
Now let’s go deep on mobile font sizes 🤓
Picking font sizes for a mobile site is not an exact science. Instead, I will give a few heuristics (with the underlying logic) to help you in your own design process.
First caveat: different fonts may have the same size on paper, but appear subjectively different.

Futura is much 'smaller' than Proxima Nova, even at the same specified size
Second caveat: different sites need to optimize for different things.

So with all that in mind, the best rule of thumb: start with size 17, and adjust from there.
In particular:
And remember, your default font size should be used as much as possible:
(I’ve taught UI design to thousands of people, and one of the top mistakes is using too many font sizes. So picking a good all-rounder default font size is a huge boon to your design 👍)
This is important. If you’re designing a website or app that can be viewed on mobile devices, there is only strict rule: Use a text input font size of at least 16px.
If your text inputs have a smaller font size than that, iOS browsers will zoom in on the left side of the text input, often obscuring the right side and forcing the user to manually zoom out after using the text box.
Video or it didn’t happen, right?:

Animation courtesy the dashing Ste Grainer. You can read his article on the auto-zoom phenomenon here.
This is a strong reason to make the body font size 16px or larger as well. It can look awkward to have larger form control text than paragraph text ☝️
For secondary text – like lesser labels, captions, etc. – use a size a couple notches smaller – such as 13px or 14px.
In addition, when text is less important, you want to style it so that you’re clearly communicating the lesser importance – often using, say, a lighter shade of gray (something about 70% as strong is a good place to start). For an example of this, look at the caption above 😉
The gold standard of choosing mobile font sizes is to view your designs on an actual device. I can’t recommend this practice highly enough, since the feel of an mobile app design on your laptop screen is way different than when you’re holding it in your hand.
As a beginning designer, I was shocked almost every time I opened on mobile a page I designed on desktop. Font sizes, spacing… everything was off. So use the Figma iOS app or Sketch iOS app or similar for Android, but view your designs on-device.
It never hurts to know what the biggest design systems in town are doing. For instance:
Do you need to copy them? Nope – but it never hurts to have a baseline to compare to.
Before we dive into desktop guidelines, I want to make a brief aside.
Whether you’re designing for mobile or desktop, one of the most important questions when picking font sizes is: am I working on a text-heavy or interaction-heavy design?

A blog post is text-heavy. A contact form is interaction-heavy.
For text-heavy pages, you want to optimize the experience of reading. Is the text comfortable to read for long periods of time?
For interaction-heavy pages, you want to optimize the display of information. Can the user see all the information they need on the screen, and understand the text elements’ relation to each other?
Typically, this means that text-heavy pages end up with slightly larger font sizes than interaction-heavy pages. Why?
OK, with that taken care of…
Now let’s talk a little bit more about desktop websites.
As always, you want to start by knowing whether you’re designing a text-heavy or interaction-heavy page.
Why? Because larger fonts are easier on the eyes for longform reading (but larger than 24px can start to violate the next rule 😉)
For text-heavy designs, if you know how large your main column of text is, that can help you figure out the best font size to use. Simply put, you want 50-75 characters per line. Why? It all has to do with “tracking from the end of one line to the beginning of the next”.
For more on the interplay between font size and line-height, see my Interactive Typography Tutorial.
One very common beginner mistake I see is underemphasizing headlines.
Here’s what I recommend:
One of the single biggest typographical mistakes from beginning UI designers is to use way too many font sizes. Even the most interaction-heavy pages can typically look just fine with about 4 font sizes total.
Let’s break it down:
Alright, that wraps it up for font sizes for websites!