Free CSS course. Sign Up for tracking progress →

CSS: The basic rules of typography

After reviewing most of the rules for working with text, you may find yourself asking how to apply them correctly. This question is extensive and warrants its own course.

Typography makes reading more comfortable and is also useful for design. Good design can be ruined by bad typography.

This lesson will describe a few basic rules that can be used to make pages comfortable to read.

Use standard fonts

The best choices when using fonts are standard fonts. For example, Arial, Verdana, Tahoma, Times New Roman, and so on. Most of these fonts are already on users' computers and are familiar and easy to read.

Avoid fancy fonts (like Comic Sans). As fun as they are, it's difficult to read large texts written with such fonts.

Use no more than two fonts per page

This will help the user navigate the page faster. The standard way is to use one font for headings and another for text.

Use an adequate font size

This concept is ambiguous, but you should not have main text with a font size smaller than 14 pixels. If the font size is smaller, reading from mobile devices will be torture.

Use sufficient line height

The most common line height is 150% of the font size. If the text is 14 pixels, it's a good idea to set the line height to at least 21 pixels.

Align text to the left

You should have all the text aligned to the center or the right edge. When reading such texts, your eyes will tire much faster because your eye loses the point of reference for where the text begins. Use non-standard alignment only for small sections of text (such as headings or quotations).


Try applying the different rules of typography in the editor. There is no assignment in this lesson :) You can just press the check button

The exercise doesn't pass checking. What to do? 😶

If you've reached a deadlock it's time to ask your question in the «Discussions». How ask a question correctly:

  • Be sure to attach the test output, without it it's almost impossible to figure out what went wrong, even if you show your code. It's complicated for developers to execute code in their heads, but having a mistake before their eyes most probably will be helpful.
In my environment the code works, but not here 🤨

Tests are designed so that they test the solution in different ways and against different data. Often the solution works with one kind of input data but doesn't work with others. Check the «Tests» tab to figure this out, you can find hints at the error output.

My code is different from the teacher's one 🤔

It's fine. 🙆 One task in programming can be solved in many different ways. If your code passed all tests, it complies with the task conditions.

In some rare cases, the solution may be adjusted to the tests, but this can be seen immediately.

I've read the lessons but nothing is clear 🙄

It's hard to make educational materials that will suit everyone. We do our best but there is always something to improve. If you see a material that is not clear to you, describe the problem in “Discussions”. It will be great if you'll write unclear points in the question form. Usually, we need a few days for corrections.

By the way, you can participate in courses improvement. There is a link below to the lessons course code which you can edit right in your browser.

If you got stuck and don't know what to do, you can ask a question in our huge and friendly community