How to choose and pair typefaces
zellwk.com
zellwk.com
X-height: This is the height of the lowercase "x" glyph. You will notice that there is an imaginary line around where many lowercase letters line up at. This usually falls around the crossbar of an uppercase "A" and "H". Finding fonts with similar x-heights helps make a nice match.
Glyph width: Finding fonts with very similar widths or very contrasting widths is also something to consider. If they are somewhere in between, it sometimes feels weird.
Taking these attributes into consideration, in addition to their Era/Classification/Style really help in pairing fonts.
> This is because it’s rare for sans-serif and slab-serifs to exhibit any difference in the stroke.
Uhh, sure they are rare, as long as you ignore industries where contrasting stroke sans-serifs are the norm in their marketing materials, like cosmetics: https://fontsinuse.com/uses/9689/estee-lauder-websites
For that matter, this is just an extension of the Humanist sans-serif category.
Other important subcategories elided are the Latin (or Wedge) serifs and Flared serifs.
Hoefler & Co does a great job of demonstrating their techniques for pairing fonts. (albeit a bit non web app biased) https://www.typography.com/techniques/
It is one of the reasons I never advise to use serif fonts for text body. Nowadays, betterresolutions are used more often, but low res displays are still common enough.
Perhaps you should switch to not advising to use serif fonts _in smaller sizes_ for text body.