24px to rem

1.5rem

24px is 1.5rem at the browser’s default 16px root: 24 ÷ 16 = 1.5. It’s 1.5em under a 16px parent, 150% as a font-size percentage, and 18pt, since CSS fixes 1pt at 4/3 px. That last number matters for accessibility.

At other root sizes

root 16px (default)    24px = 1.5rem
root 10px (62.5%)      24px = 2.4rem
root 18px (112.5%)     24px = 1.3333rem

At 18px the rounded 1.3333rem is 23.9994px; calc(24rem / 18) is exact.

Where 24px shows up

WCAG 2.2 counts text as large-scale from 18 point, and 18pt is exactly 24px. Regular text at 24px or more may meet success criterion 1.4.3 with a 3:1 contrast ratio instead of 4.5:1; bold text qualifies from 14pt, 18.6667px. 24px is also the minimum in 2.5.8 Target Size (level AA): pointer targets of at least 24 by 24 CSS pixels, with exceptions such as links inside a sentence.

Outside WCAG, it’s the size of an unstyled h2: the HTML standard’s rendering rules give it 1.5em, 24px at the default.

Why rem and not px

1.5rem follows the default font size a reader sets in browser settings, reaching 30px at a 20px default; 24px stays 24px. Zoom scales both.

In Tailwind, Sass and CSS

Tailwind CSS v4’s text-2xl is 1.5rem and sets line-height: calc(2 / 1.5), which is 32px. On the spacing scale (--spacing: 0.25rem), p-6 is 1.5rem, and size-6 makes a 24px icon box.

@use 'sass:math';
font-size: math.div(24px, 16px) * 1rem; // 1.5rem
font-size: calc(24rem / 16); /* 1.5rem */

Try it in the PX to REM Converter

Up to 500 values, separated by spaces or commas.

Valuepxremempt%Copy
24px241.51.518150

Common sizes at root 16px

pxrempt%
80.5650
100.6257.562.5
120.75975
140.87510.587.5
16112100
181.12513.5112.5
201.2515125
241.518150
301.87522.5187.5
362.2527225
48336300
603.7545375
724.554450

Runs in your browser. Nothing you enter is sent anywhere.