Font Size Converter
Convert between px, pt, em, rem, %, and vw units instantly. Includes a conversion table for common typography sizes.
Quick Answer
At the default 16px base: 1rem = 16px = 12pt = 100%. Enter any value in any unit and get the equivalent in all six units.
Convert Font Size
Enter a value and unit to convert.
About This Tool
The Font Size Converter is an essential reference tool for web designers, front-end developers, and anyone working with CSS typography. It converts between the six most common font size units — pixels (px), points (pt), em, rem, percentages (%), and viewport width (vw) — using your custom base font size and viewport width settings for accurate, context-aware results.
Why Font Size Units Matter
CSS offers multiple units for font sizing, each with different behavior. Choosing the right unit affects responsive design, accessibility, and maintainability. Pixels provide exact control but ignore user font preferences. Rem units scale with the user's browser settings, improving accessibility. Em units create component-relative sizing but can compound unexpectedly in nested elements. Viewport units enable fluid typography that scales with screen size but need careful clamping to remain readable.
Pixels (px) — The Fixed Standard
CSS pixels are the most intuitive unit: 16px means sixteen pixels on the screen. On standard displays, one CSS pixel maps to one device pixel. On Retina and high-DPI displays, one CSS pixel may span 2x or 3x device pixels (handled automatically by the browser). Pixels are ideal when you need precise control — for example, matching a design mockup exactly. However, px-based font sizes do not respect the user's browser font size setting, which is an accessibility concern.
Rem — The Modern Best Practice
Rem (root em) is relative to the font size of the root <html> element, which defaults to 16px in all browsers. Because rem always references the root, it avoids the compounding problem of em units. When a user with low vision sets their browser default font to 20px, all rem-based sizes scale proportionally. This is why most modern CSS frameworks (Tailwind, Bootstrap 5, MUI) use rem for font sizes and spacing. The conversion is simple: px / base = rem. At a 16px base, 24px = 1.5rem.
Em — Component-Relative Sizing
Em is relative to the computed font size of the parent element. If a div has font-size: 20px, then 1.5em inside that div equals 30px. This makes em useful for building self-contained components where internal spacing and text scale proportionally to the component's root font size (like buttons where padding should scale with text size). The danger is compounding: nested em values multiply. A 1.2em inside a 1.2em inside a 16px root equals 23.04px, not 19.2px.
Points (pt) — The Print Standard
Points are a traditional typographic unit where 1 point = 1/72 of an inch. In CSS, at the standard 96 DPI reference, 1pt = 1.333px. Points are primarily used in print stylesheets and when converting designs from print software like InDesign or Illustrator. The common print body text size of 12pt translates to 16px on screen — which is why 16px became the browser default. Use points when preparing CSS for print media queries or when translating print specifications.
Viewport Width (vw) — Fluid Typography
The vw unit equals 1% of the viewport width. On a 1440px viewport, 1vw = 14.4px. Viewport units are used for fluid typography that scales smoothly between breakpoints, often within a CSS clamp() function: font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem). This creates type that grows with the viewport but never becomes too small or too large. Without clamp, pure vw typography is inaccessible: it can be microscopic on small screens and enormous on ultrawides.