Font size
The nominal scale of the type, not the literal height of its letters. Two fonts at 16px can still look noticeably different in size.
See it
What it is
Font size is the nominal size assigned to type, not the measured height of its visible letters. In CSS, font-size sets the em square that the font's metrics scale into. Two faces at 16px can look strikingly different because their x-heights, cap heights, and ascenders occupy different portions of that square. The number never measured the letters: a point is one seventy-second of an inch, and in metal type it measured the body the letter sat on, not the letter.
Reach for font size as one part of a type scale, then judge the actual face in context. `rem` keeps sizes tied to the root setting, `em` ties them to the parent or current element, and `clamp()` can make headings grow within controlled limits.
Two traps. Matching the same number does not make different typefaces look the same size, and font-size does not set the distance between baselines; line-height does. Every browser defaults to 16px, so body copy set below that is picking a fight with everyone who never touched the setting. Check zoom, narrow screens, and user font-size preferences before treating a scale as finished.
Ask AI for it
Build a responsive CSS type scale with a 1rem body size, 0.875rem small text, and headings sized with clamp(). Use font-size: clamp(2rem, 1.4rem + 3vw, 4.5rem) for the display role, unitless line-height values, and rem rather than px for every text role. Expose the values as CSS custom properties, show specimens at 320px, 768px, and 1440px viewport widths, and verify the page remains usable at 200% browser zoom without clipped or overlapping text.