toolfree

What is my screen resolution

Your screen resolution in device and CSS pixels, viewport size, pixel ratio, refresh rate and colour depth — read live in your browser.

Runs in your browser

Measuring…
Screen, device pixels
Screen, CSS pixels
Viewport
Device pixel ratio
Aspect ratio
Refresh rate
Colour depth
Orientation
Touch input
Colour scheme
Reduced motion

These figures update as you resize the window, zoom, or move it to another display.

Three numbers, all called “resolution”

The reason this question has confusing answers is that a modern screen has several resolutions at once, and different tools report different ones:

What it isExample on a 2× laptop
Device pixelswhat the panel draws2880 × 1800
CSS pixelswhat a web page measures in1440 × 900
Viewportthe CSS pixels this window has1440 × 780

A web page cannot read the panel directly. It gets CSS pixels and a device pixel ratio, and the device figure above is the two multiplied. That is why a site can tell you your “resolution” is 1440×900 when you bought a 2880×1800 machine, and neither is wrong.

Device pixel ratio

The ratio is how many device pixels make up one CSS pixel along each axis:

DPRMeans
1one device pixel per CSS pixel — an ordinary desktop monitor
2Retina and most modern laptops and phones
3high-end phones
Fractional, e.g. 1.5, 2.625Windows display scaling, Android, or browser zoom

Browser zoom changes it. Zooming to 150% on a 2× display gives a DPR of 3, and the CSS resolution shrinks to match. If the numbers on this page look wrong, check the zoom level first — that is the usual explanation.

Because of scaled display modes, “device pixels” here is what the browser renders to, which on a scaled macOS or Windows setting is not always the panel’s own pixel count. It is the resolution that matters for choosing an image; it is not a specification lookup.

Which one to design for

CSS pixels, always. A layout written in CSS pixels is the same physical size on a 1× and a 2× screen, which is the entire point of the abstraction — a 16px font is legible on both, and would be microscopic on one of them if CSS measured device pixels.

The ratio matters for one thing: raster images. A 400 CSS-pixel-wide image needs 800 device pixels of data to look sharp at DPR 2, which is what srcset and 2x are for. Vector formats and text need nothing; they are rendered at whatever the device asks for.

Screen, window, viewport

ReadingExcludes
Screennothing — the whole display
Available screenthe taskbar or dock
Windownothing — including the browser’s own chrome
Viewportchrome, toolbars, scrollbars

The viewport is the only one a page can actually lay out inside, and the only one that responds to media queries. On a phone it also changes as the address bar hides and reappears during scrolling, which is why fixed-height layouts using 100vh behave oddly there.

Refresh rate is measured, not reported

There is no API that tells a page the refresh rate. The figure here is measured: count animation frames over a second and divide, then round to the nearest rate displays are actually built at.

That makes it a floor rather than a fact:

If the answer looks low, run it again with nothing else happening. If it reads 60 on a 120 Hz display, that is more likely to be the browser than the screen.

Colour depth

Almost every browser reports 24-bit — eight bits each for red, green and blue, which is 16.7 million colours. This is one of the values browsers deliberately freeze to reduce fingerprinting, so a 10-bit HDR panel usually still reports 24. A page cannot see the difference; a colour-managed application can.

Everything here is read locally

Every figure comes from your own browser’s view of itself. Nothing is sent anywhere. The one thing about your machine that genuinely cannot be answered locally is its public address — see what is my IP.