Physical Resolution
--
Estimated hardware pixel count of the display panel.
Instantly detect your screen resolution, viewport size, device pixel ratio, and more. See how your display compares to global usage stats and copy the JavaScript needed to detect the same values in your own app.
Live Detection
The snapshot below updates from browser APIs in real time. Resize the window, rotate a device, or open the shared link view to compare another setup.
Your Screen
0 × 0
Inferred physical resolution from browser screen size and device pixel ratio.
Ratio
--
DPR
--
Viewport
--
Detection Panel
Here is everything the browser can reliably report about your current display. Viewport and orientation values update live as the browser window changes.
Physical Resolution
--
Estimated hardware pixel count of the display panel.
Aspect Ratio
--
Waiting for screen data.
Open ratio guidePixel Density (PPI)
Unknown
Estimated from known devices and common display-size assumptions.
Color Depth
--
Waiting for screen data.
Viewport Size
--
window.innerWidth × window.innerHeight
Updates as you resize
Available Screen Size
--
screen.availWidth × screen.availHeight
Device Pixel Ratio
--
Waiting for screen data.
CSS Pixel Resolution
--
Logical screen size used by CSS and JavaScript.
Refresh Rate
Measuring
Estimated via sixty rAF samples.
HDR Support
--
Waiting for screen data.
Touch Points
--
Waiting for screen data.
Screen Orientation
--
screen.orientation.type
Rotate device to update
Device Detection
Based on inferred physical resolution, CSS pixels, device pixel ratio, touch capability, and user-agent hints, the tool attempts to match the current screen against a built-in device database.
Waiting for a device snapshot before matching against the device database.
Global Comparison
The ranking below uses the built-in 2024 screen-resolution dataset for worldwide web usage. It compares the current CSS screen size against common resolutions seen across desktop and mobile browsing.
Your detected web resolution: --
Outside the current top 15 list
This screen size is not in the built-in global top fifteen. That is common for retina-scaled laptops, unusual monitor classes, and some newer mobile devices.
| Rank | Resolution | Ratio | Share | Trend |
|---|---|---|---|---|
| 1 | 1,920 x 1,080 | 16:9 | 22.8% | → |
| 2 | 1,366 x 768 | 16:9 | 10.2% | ↓ |
| 3 | 1,536 x 864 | 16:9 | 7.9% | ↑ |
| 4 | 1,440 x 900 | 16:10 | 5.8% | → |
| 5 | 1,280 x 720 | 16:9 | 5.1% | ↓ |
| 6 | 390 x 844 | 19.5:9 | 4.7% | ↑ |
| 7 | 2,560 x 1,440 | 16:9 | 4.3% | ↑ |
| 8 | 1,600 x 900 | 16:9 | 3.9% | ↓ |
| 9 | 375 x 667 | 9:16 | 3.2% | ↓ |
| 10 | 1,280 x 800 | 16:10 | 2.8% | ↓ |
| 11 | 3,840 x 2,160 | 16:9 | 2.6% | ↑ |
| 12 | 1,920 x 1,200 | 16:10 | 2.4% | → |
| 13 | 414 x 896 | 19.5:9 | 2.1% | ↓ |
| 14 | 2,560 x 1,600 | 16:10 | 1.9% | ↑ |
| 15 | 1,680 x 1,050 | 16:10 | 1.7% | ↓ |
What This Means For Design
Common desktop widths still matter, but mobile-sized screens continue to dominate global traffic. Treat your layout as a range problem rather than a single-canvas problem: phone-first below 430 CSS pixels, laptop-safe between 1280 and 1536, and comfortable desktop layouts around 1920 and beyond.
Breakpoint Analysis
The current viewport width drives different breakpoint names in different CSS frameworks. Resize the browser window and this section updates in real time.
Current viewport
0px wide
Tailwind CSS
base (>=0px)
Bootstrap 5
xs (>=0px)
Material UI
xs (>=0px)
Chakra UI
base (>=0px)
| Name | Min Width | Current Status |
|---|---|---|
| base | 0px | Active - current |
| sm | 640px | Not active |
| md | 768px | Not active |
| lg | 1024px | Not active |
| xl | 1280px | Not active |
| 2xl | 1536px | Not active |
| Name | Min Width | Current Status |
|---|---|---|
| xs | 0px | Active - current |
| sm | 576px | Not active |
| md | 768px | Not active |
| lg | 992px | Not active |
| xl | 1200px | Not active |
| xxl | 1400px | Not active |
| Name | Min Width | Current Status |
|---|---|---|
| xs | 0px | Active - current |
| sm | 600px | Not active |
| md | 900px | Not active |
| lg | 1200px | Not active |
| xl | 1536px | Not active |
| Name | Min Width | Current Status |
|---|---|---|
| base | 0px | Active - current |
| sm | 480px | Not active |
| md | 768px | Not active |
| lg | 992px | Not active |
| xl | 1280px | Not active |
| 2xl | 1536px | Not active |
Breakpoint Ruler
Device History
Device snapshots are stored in localStorage inside this browser only. That makes it easy to compare a live machine against previously shared or detected screen reports without creating an account.
| Compare | Device | Physical | Viewport | DPR | Date |
|---|
All data is stored in this browser only. Nothing from the history table is sent to a server, and the list keeps at most ten records at a time.
Terms Explained
Screen resolution is really a bundle of related concepts. Separating physical pixels, CSS pixels, viewport size, and density makes it easier to debug layouts and choose the right export sizes.
Physical resolution is the total number of hardware pixels available on the display panel. On standard-density monitors that usually matches what the browser reports directly. On HiDPI displays this tool infers the hardware pixel count by combining screen size with device pixel ratio.
Use physical resolution when you need to think about export sharpness, monitor capability, capture workflows, or how many true pixels the panel can render.
CSS pixels are the logical units used by CSS and JavaScript layout APIs. They are the numbers your media queries, breakpoints, and component widths respond to.
A Retina-class display can have twice or three times as many physical pixels as CSS pixels in each dimension, which is why CSS resolution is often lower than hardware resolution.
Device Pixel Ratio is the relationship between physical pixels and CSS pixels. A DPR of 2 means one CSS pixel is rendered with a 2 by 2 block of hardware pixels.
DPR matters because raster assets that look sharp on standard displays can look soft on high-density panels unless they are exported at 2x or 3x sizes.
Viewport size is the visible browser content area in CSS pixels. It changes when you resize the browser, split windows, open developer tools, or rotate a mobile device.
For responsive web development, viewport size is the value that actually decides which media queries are active.
Available screen size is the maximum screen area left after the operating system reserves space for taskbars, docks, menu bars, or persistent UI.
It is useful for kiosk apps, desktop tooling, and any layout that wants to know the largest possible window footprint on the current screen.
Pixels per inch measures how tightly packed the hardware pixels are. Higher PPI displays render text and fine interface detail more crisply.
Browsers do not expose diagonal screen size directly, so this tool estimates PPI from known device records or common monitor size assumptions.
Color depth is the number of bits used to represent the color of each pixel. A typical browser reports 24-bit color, which corresponds to 16.7 million colors.
Professional or HDR-capable panels can support 30-bit pipelines, but browsers often still expose 24-bit values for compatibility reasons.
Refresh rate is how many times per second the display updates, measured in hertz. Standard office screens run at 60 Hz, while gaming monitors and premium phones often reach 120 Hz or more.
Browsers do not provide a direct refresh-rate API, so this tool estimates it by measuring the cadence of requestAnimationFrame over sixty frames.
Code Snippets
These snippets mirror the same values used by the tool. Copy them into QA utilities, responsive test pages, browser extensions, or developer docs when you need a quick reference implementation.
Read the same core values used by this tool, including inferred physical pixels and CSS pixels.
function getScreenInfo() {
const dpr = window.devicePixelRatio || 1;
const cssScreenWidth = Math.round(screen.width);
const cssScreenHeight = Math.round(screen.height);
return {
physicalWidth: Math.round(cssScreenWidth * dpr),
physicalHeight: Math.round(cssScreenHeight * dpr),
cssWidth: cssScreenWidth,
cssHeight: cssScreenHeight,
availWidth: Math.round(screen.availWidth * dpr),
availHeight: Math.round(screen.availHeight * dpr),
viewportWidth: window.innerWidth,
viewportHeight: window.innerHeight,
colorDepth: screen.colorDepth,
pixelDepth: screen.pixelDepth,
dpr,
orientation: screen.orientation?.type ||
(window.innerWidth > window.innerHeight ? "landscape-primary" : "portrait-primary"),
maxTouchPoints: navigator.maxTouchPoints || 0,
};
}
console.table(getScreenInfo());Expected output: Outputs physical pixels, CSS pixels, viewport, DPR, orientation, and touch support in one object.
Reduce any width and height pair into a simplified ratio and decimal value.
function getAspectRatio(width, height) {
function gcd(a, b) {
return b === 0 ? a : gcd(b, a % b);
}
const divisor = gcd(width, height);
return {
ratio: `${width / divisor}:${height / divisor}`,
decimal: Number((width / height).toFixed(4)),
};
}
console.log(getAspectRatio(1920, 1080));
console.log(getAspectRatio(window.innerWidth, window.innerHeight));Expected output: Returns values like { ratio: "16:9", decimal: 1.7778 }.
Classify the panel density and check for HDR or P3 color-gamut support.
function getDisplayType() {
const dpr = window.devicePixelRatio || 1;
if (dpr >= 3) return "Super Retina (3x+)";
if (dpr >= 2) return "Retina / HiDPI (2x)";
if (dpr >= 1.5) return "High DPI (1.5x)";
return "Standard (1x)";
}
const supportsHDR = window.matchMedia("(dynamic-range: high)").matches;
const supportsP3 = window.matchMedia("(color-gamut: p3)").matches;
console.log(getDisplayType());
console.log({ supportsHDR, supportsP3 });Expected output: Returns a density class plus HDR and wide-color support flags.
Track viewport width, height, and DPR as the browser window changes.
function onViewportChange(callback) {
let rafId = 0;
const handleChange = () => {
cancelAnimationFrame(rafId);
rafId = requestAnimationFrame(() => {
callback({
width: window.innerWidth,
height: window.innerHeight,
dpr: window.devicePixelRatio || 1,
});
});
};
window.addEventListener("resize", handleChange);
screen.orientation?.addEventListener?.("change", handleChange);
return () => {
window.removeEventListener("resize", handleChange);
screen.orientation?.removeEventListener?.("change", handleChange);
};
}Expected output: Calls your callback with fresh viewport values after resize and orientation changes.
Estimate the panel refresh rate using sixty requestAnimationFrame samples.
function measureRefreshRate() {
return new Promise((resolve) => {
const samples = [];
let last = 0;
let count = 0;
function tick(timestamp) {
if (last) samples.push(timestamp - last);
last = timestamp;
count += 1;
if (count < 60) {
requestAnimationFrame(tick);
return;
}
const avg = samples.reduce((a, b) => a + b, 0) / samples.length;
resolve(Math.round(1000 / avg));
}
requestAnimationFrame(tick);
});
}
measureRefreshRate().then((hz) => console.log(`Refresh rate: ${hz}Hz`));Expected output: Usually resolves to values like 60, 90, 120, or 144 depending on the panel and browser.
Map the current viewport width to a Tailwind-style breakpoint label.
function getTailwindBreakpoint(width = window.innerWidth) {
if (width >= 1536) return "2xl";
if (width >= 1280) return "xl";
if (width >= 1024) return "lg";
if (width >= 768) return "md";
if (width >= 640) return "sm";
return "base";
}
console.log(getTailwindBreakpoint());Expected output: Returns labels like "base", "sm", "md", "lg", "xl", or "2xl".
Device Database
The built-in database contains 66 common devices and display classes across phones, tablets, laptops, monitors, gaming handhelds, and TV interfaces.
| Model | Physical Resolution | CSS Pixels | DPR | PPI |
|---|---|---|---|---|
| iPhone 15 Pro Max | 2,796 x 1,290 | 430 x 932 | 3× | 460 |
| iPhone 15 Pro | 2,556 x 1,179 | 393 x 852 | 3× | 460 |
| iPhone 15 Plus | 2,796 x 1,290 | 430 x 932 | 3× | 460 |
| iPhone 15 | 2,556 x 1,179 | 393 x 852 | 3× | 460 |
| iPhone 14 Pro Max | 2,796 x 1,290 | 430 x 932 | 3× | 460 |
| iPhone 14 Pro | 2,556 x 1,179 | 393 x 852 | 3× | 460 |
| iPhone 14 Plus | 2,778 x 1,284 | 428 x 926 | 3× | 458 |
| iPhone 14 | 2,532 x 1,170 | 390 x 844 | 3× | 460 |
| iPhone 13 Pro Max | 2,778 x 1,284 | 428 x 926 | 3× | 458 |
| iPhone 13 Pro | 2,532 x 1,170 | 390 x 844 | 3× | 460 |
| iPhone 13 | 2,532 x 1,170 | 390 x 844 | 3× | 460 |
| iPhone SE (3rd gen) | 1,334 x 750 | 375 x 667 | 2× | 326 |
| Model | Physical Resolution | CSS Pixels | DPR | PPI |
|---|---|---|---|---|
| Galaxy S24 Ultra | 3,088 x 1,440 | 412 x 915 | 3.5× | 505 |
| Galaxy S24+ | 3,120 x 1,440 | 412 x 915 | 3.5× | 513 |
| Galaxy S24 | 2,340 x 1,080 | 360 x 780 | 3× | 416 |
| Galaxy S23 Ultra | 3,088 x 1,440 | 412 x 915 | 3.5× | 500 |
| Galaxy S23+ | 2,340 x 1,080 | 393 x 873 | 2.75× | 393 |
| Galaxy S23 | 2,340 x 1,080 | 360 x 780 | 3× | 425 |
| Galaxy A54 | 2,400 x 1,080 | 412 x 915 | 2.625× | 401 |
| Model | Physical Resolution | CSS Pixels | DPR | PPI |
|---|---|---|---|---|
| Pixel 8 Pro | 2,992 x 1,344 | 448 x 998 | 3× | 489 |
| Pixel 8 | 2,400 x 1,080 | 412 x 915 | 2.625× | 428 |
| Pixel 7 Pro | 3,120 x 1,440 | 412 x 892 | 3.5× | 512 |
| Pixel 7a | 2,400 x 1,080 | 412 x 915 | 2.625× | 429 |
| Pixel Fold (outer display) | 2,092 x 1,080 | 379 x 812 | 2.75× | 408 |
| Model | Physical Resolution | CSS Pixels | DPR | PPI |
|---|---|---|---|---|
| OnePlus 12 | 3,168 x 1,440 | 450 x 1,020 | 3.1× | 510 |
| OnePlus 11 | 3,216 x 1,440 | 450 x 1,000 | 3.2× | 525 |
| OnePlus Open (cover display) | 2,484 x 1,116 | 431 x 968 | 2.6× | 431 |
Resolution And Ratio
Different resolutions can share the same underlying aspect ratio. That is why 1920 x 1080, 2560 x 1440, and 3840 x 2160 all behave like 16:9 canvases even though they have very different pixel counts.
1920 x 1080 simplifies by a greatest common divisor of 120, which becomes 16:9. The same logic works for 2560 x 1440 and 3840 x 2160, which reduce to the same ratio even though they contain more pixels.
Ratio controls shape. Resolution controls how many pixels are available inside that shape. Two screens can look identical in layout terms while still having radically different clarity and export requirements.
For layout and media planning, aspect ratio is often the first decision and resolution is the second. Pick the right shape first, then scale to the pixel density and device class you need.
How-To
Step 1
The Resolution Finder detects your screen information as soon as the page loads. The large card at the top shows the current display snapshot without requiring any clicks.
Step 2
Use physical resolution for hardware capability and export planning, CSS pixels for design-system and layout work, and viewport size for the exact browser space available right now.
Step 3
DPR tells you how many hardware pixels each CSS pixel maps to. High-DPR screens need 2x or 3x image assets to stay sharp.
Step 4
Refresh rate affects perceived motion smoothness, while color depth reflects how many colors the browser reports the display can represent.
Step 5
Use the global comparison section to see whether your detected CSS resolution is common, rising, or relatively uncommon among worldwide web users.
Step 6
Copy the full spec block for bug reports or QA notes, or generate a share link that encodes the detected snapshot so someone else can review the same values.
FAQ
Your screen resolution is the pixel size of your display, usually written as width by height such as 1920 x 1080. This page reports the inferred physical resolution, the CSS resolution your browser uses, and the live viewport size so you can see each layer clearly.
Device pixel ratio describes how many hardware pixels map to one CSS pixel. It matters because high-density displays need larger source images to stay crisp, and it explains why hardware resolution and CSS resolution can be very different on the same device.
On HiDPI displays the operating system scales the interface so text and controls stay comfortably sized. That means the browser works in CSS pixels while the hardware uses multiple physical pixels to render each logical pixel.
Screen resolution describes the whole display, while viewport size describes the visible browser content area. Viewport size changes whenever the browser window changes, so it is the value responsive CSS actually cares about.
You can check it in Windows display settings, but this tool also reports DPR, viewport size, touch support, orientation, color depth, and a measured refresh-rate estimate in one place.
macOS System Settings usually shows the scaled resolution rather than the full hardware pixel count. This page helps by showing both the inferred physical pixel dimensions and the CSS dimensions the browser uses.
There is no single perfect target, but common desktop widths like 1920 x 1080, 1366 x 768, and 1536 x 864 still matter, while mobile traffic remains dominant below roughly 430 CSS pixels wide. Design mobile-first, then test across laptop and desktop breakpoints.
Differences usually come from DPR scaling, OS scaling, browser zoom, or the fact that browsers expose logical dimensions rather than raw panel data. This tool separates physical, CSS, and viewport layers so you can see where that difference comes from.
Keep Exploring
Calculator
Use the core calculator for width, height, diagonal, and ratio math.
Bulk
Normalize long resolution lists when device or asset specs arrive in spreadsheets.
Image
Preview how the same asset behaves across social, video, print, and web crops.
Widescreen
Understand the most common modern widescreen ratio used by desktop displays and video.
Vertical
Use the vertical-video guide for phone-first content and mobile screen layouts.
Ultrawide
Plan ultrawide layouts, cinematic crops, and monitor-specific content canvases.
CSS
Turn ratio decisions into aspect-ratio and padding-top code snippets.
Reference
Compare the site's main aspect-ratio guides and jump to the one that fits your target screen.