Point to REM

Convert points (pt) to rem values.

Convert Points (pt) to REM (rem). Results update as you type.

pt

​

​

Browser default is 16px

pt to rem conversion table (base 16px)
PointsREM
6pt0.5rem
7pt0.5833rem
8pt0.6667rem
9pt0.75rem
10pt0.8333rem
10.5pt0.875rem
11pt0.9167rem
12pt1rem
14pt1.1667rem
16pt1.3333rem
18pt1.5rem
20pt1.6667rem
24pt2rem
28pt2.3333rem
36pt3rem
48pt4rem
72pt6rem

Point to REM Converter

Turn point-based typography into accessible rem values. Enter 15 and you get 1.25rem with the default 16px root. Change the root font size if your project uses a different value, and paste a complete type scale into the bulk box to convert it in one step.

How the conversion works

rem = pt × 96 ÷ 72 ÷ root font size

Since 12pt = 16px, a 16px root gives the handy shortcut rem = pt ÷ 12.

Points Pixels REM (16px root)
8pt 10.6667px 0.6667rem
12pt 16px 1rem
15pt 20px 1.25rem
21pt 28px 1.75rem
30pt 40px 2.5rem
36pt 48px 3rem

Worked example: converting a brand type scale

A brand book lists this scale: caption 9pt, body 12pt, H3 15pt, H2 21pt, H1 30pt. Pasting 9, 12, 15, 21, 30 as separate lines gives 0.75rem, 1rem, 1.25rem, 1.75rem, and 2.5rem. Drop those into CSS custom properties such as --text-h1: 2.5rem; and the whole system scales with the reader's font preference. If your team uses a 10px root, enter 10 as the base: the same H1 becomes 4rem.

Why rem is the better target

Points were designed for paper, where the reader cannot change the text size. On the web, WCAG 1.4.4 expects text to resize up to 200% without loss of content. rem units follow the browser's default size, so a visitor who raises it from 16px to 20px sees every heading grow proportionally, while pt values would stay fixed.

Rounding advice

Point sizes that are not multiples of 3 produce repeating decimals (8pt = 0.6667rem). Four decimals are more than enough precision; browsers round to device pixels anyway.

See also Point to EM for component-relative sizing and REM to Point for the reverse.

Frequently Asked Questions

Multiply the point value by 1.3333 to get pixels, then divide by the root font size. With a 16px root, 21pt = 28px = 1.75rem.

12pt is 16px, so it is 1rem with the default 16px root. If your root is 10px (html { font-size: 62.5% }), 12pt is 1.6rem.

You can, but points are absolute and do not scale when a user increases the browser's default font size. Converting to rem keeps the intended proportions while respecting that setting.