REM to PX Converter

Find the computed pixel size of any rem value for any root font size, with a rem to px chart and a CSS converter.

Runs in your browser

Convert

px

The computed font-size of <html>. Browsers default to 16px.

rem

Separate several values with spaces

px

Separate several values with spaces

1.5rem = 24px

REM to PX table

Based on a root font size of 16px.

REMPixelsCopy
0.125rem2px
0.25rem4px
0.375rem6px
0.5rem8px
0.625rem10px
0.75rem12px
0.875rem14px
1rem16px
1.125rem18px
1.25rem20px
1.375rem22px
1.5rem24px
1.625rem26px
1.75rem28px
1.875rem30px
2rem32px
2.25rem36px
2.5rem40px
2.75rem44px
3rem48px
3.5rem56px
4rem64px
4.5rem72px
5rem80px
5.5rem88px
6rem96px

Bulk convert CSS (rem → px)

Rem and em in @media conditions always resolve against the browser default (usually 16px), not your root font size.

Converted CSS (px)

Converted CSS appears here as you type. Values are calculated with a 16px base.

How rem values become pixels

Browsers never render rem directly. During style computation every rem length is multiplied by the root element’s computed font size and turned into a pixel value — the "computed value" you see in DevTools. The formula is px = rem × root font size, so 2.25rem on a 16px root is 36px.

The root size is not always 16px. It depends on three things: the browser’s default font size (16px in Chrome, Firefox, Safari and Edge), the user’s own font size setting, and any font-size you put on html. A user who chooses "Large" in Chrome gets a 20px default, so 1.5rem renders at 30px for them — exactly the scaling rem is designed to provide.

This converter answers the practical question "how big will this actually be?" for any root size. It is useful when checking a design system’s spacing scale against a pixel mockup, debugging a layout in DevTools, or translating rem-based framework utilities back into the pixels your designer speaks.

How to use the REM to PX Converter

  1. Enter the root font size your page uses — 16px unless html has a different font-size.
  2. Type a rem value such as 1.75 and read the pixel size immediately. Several values like 0.5 1 1.5 convert together, which is handy for padding or margin shorthands.
  3. Switch the root size to see how the same rem value renders for users who enlarge their default font (try 20px).
  4. To turn a whole stylesheet into pixels — for an email template or a legacy environment — paste it into Bulk convert CSS and copy the output.

Example

A rem-based spacing scale and what it computes to with the default 16px root and with a user who set 20px:

/* rem      16px root   20px root */
0.25rem   →   4px        5px
0.5rem    →   8px       10px
1rem      →  16px       20px
1.5rem    →  24px       30px
2rem      →  32px       40px
3rem      →  48px       60px

Checking computed sizes in DevTools

  • Open DevTools, select the element and switch to the Computed tab: font-size, padding and friends are listed in pixels after rem has been resolved.
  • Run getComputedStyle(document.documentElement).fontSize in the console to see the real root size, including the user’s browser setting.
  • Browser zoom (Ctrl/Cmd +) does not change the computed root size; it scales the whole page. Only the default font size setting and your CSS change what 1rem means.

When you need pixels instead of rem

HTML email clients have patchy rem support, canvas drawing APIs take pixel numbers, and some JavaScript measurements (such as IntersectionObserver root margins) only accept px. In those cases convert with the real root size. For new CSS, go the other way with the PX to REM Converter.

Frequently Asked Questions

How many pixels is 1.5rem?

24px with the standard 16px root (1.5 × 16). With a 10px root it is 15px and with an 18px root it is 27px — change the root size field to check your project.

Why does my rem value look bigger than the converter says?

Your root font size is probably not 16px. Check for html { font-size: … } in your CSS or a framework reset, and remember that users can raise their default font size. Also make sure the value really is rem — em is relative to the parent element and compounds when nested.

Do rem values inside media queries use my root font size?

No. In @media conditions, rem and em always use the initial font size (the browser default, usually 16px), ignoring html { font-size }. A 48rem breakpoint is 768px for a default user even if you set the root to 10px.

Can rem produce fractional pixels?

Yes. 0.8125rem at 16px is 13px, but 0.8rem is 12.8px. Browsers handle sub-pixel values fine for layout; text is rendered with anti-aliasing, so small fractions are rarely visible.

How do I make a rem value scale with the viewport too?

Use clamp() with a rem minimum and maximum and a viewport-based preferred value. The CSS Clamp Generator calculates the slope and intercept for you.