The number of fonts you use can seem unimportant at first. You think a headline feels bland, so you bring in another font. The body text seems boring, so you bring in another. A small tag needs emphasis, so you bring in another. The design now has energy, but it has no organization. The reader has to put in more effort because every text component appears to be saying something different.
Using two fonts is not a universal rule; it is simply a helpful boundary for you to keep in your mind if you are a beginner in graphic design. If there are only two, then at least you know one is for the personality of the design; usually, it shows up in a headline or some big text, and the other is for readability in a description, date, caption, or button text. Instead of asking “Which one looks good?”, you will start asking “What is the job of this element?”
A good pair has contrast, but no contradiction. For example, a heavy display font for a headline on a short poster could be set with a legible, sans serif font for body copy. A light, serif title may be offset by a sans serif font for tags or notes. If they do not have enough variation, the pair is coincidental; if they are too different, they will conflict before you even add color, photos, or icons.
The biggest challenge is that you see every text piece as another thing to style: a headline, a subtitle, a paragraph, a price, a date, a tag. It is fine for them to look different, but you probably do not need to style them with a different typeface to make them stand out. Most of the time, what they need is some scale, some weight, some spacing, or some color. If you are using a font family, there is often a regular, some kind of semibold, some kind of bold, a light, and a light italic. Those alone will give you variety without needing to add a new font. If you cannot solve a design using just that variation, try changing your scale or font weight.
If you have an open design (a simple social post, for example) with several fonts, remove every font other than two and give one of them to the headline and the other to everything else. Then use size, weight, and spacing to add contrast. Use more weight in the headline, put a few extra pixels next to the title for a subtitle, and just let the body text be easy. If the design still looks bad, your problem is not the font selection, it is probably a problem with the hierarchy or the alignment. This approach will keep your canvas from getting messy, and that will help you see the actual problem.
Your fonts should always look good at the point you think people will actually see the design, not at full size or on an oversized desktop screen. A fun font might look okay in one word, but is exhausting in three words. A thin font might look pretty in large type, but will fade to the background if exported in a tiny size for a social post. A condensed font may save space but make the body text feel cramped. Whatever point you think people will read the design will probably be the correct point. Zoom out of your app or export a quick JPG or PNG and look at it at a smaller resolution, or open the file on a phone or laptop that it is intended for.
When someone can follow what is the headline, what is important text, what is extra detail, and so on without being explicitly told, then you have the right amount of hierarchy. The headline will catch people’s attention, the body text will be legible, and the tag won’t distract from the headline. Using two fonts means you do not have as many places to hide mistakes from the viewer, but this is a positive. Instead of using the font choice as a crutch for the design, you will need to use hierarchy, spacing, contrast, and alignment as the tools to solve problems.