Device Information

How to use this device information tool

  1. Just open this page — no input needed.
  2. Every card reads directly from your browser's own APIs.
  3. Useful for quickly reporting a bug or checking browser capabilities.

Is any of this sent to a server?

No — everything shown here comes from JavaScript APIs available in your own browser (screen, navigator, Intl) and is displayed only on your screen. Nothing is transmitted or logged anywhere.

Why does my user agent string look so long and confusing?

For historical compatibility reasons, browsers include multiple engine and version identifiers in the user agent — a quirky legacy of the "browser wars" of the 1990s and 2000s that never fully went away.

Why is pixel ratio sometimes 2 or 3?

High-density ("Retina") screens pack more physical pixels into the same space, so a ratio of 2 means the screen uses 2x2 physical pixels for every 1 CSS pixel, producing sharper images and text.

Why every user agent string starts with "Mozilla," regardless of browser

One of the strangest quirks in web history is that nearly every browser's user agent string — Chrome, Safari, Edge, even browsers that have nothing to do with Mozilla or Firefox — begins with "Mozilla/5.0." This dates back to the 1990s browser wars: early websites checked the user agent string to decide which browser-specific version of a page to serve, and when Internet Explorer wanted access to pages built for the then-dominant Netscape Navigator (whose codename was Mozilla), it started identifying itself as Mozilla-compatible too. Once that precedent was set, every subsequent browser followed suit purely for compatibility with sites checking for "Mozilla," turning what was originally a specific, meaningful identifier into a permanent, largely vestigial prefix that no longer tells you anything real about the browser at all.

Why the user agent string is being deprecated in favor of Client Hints

Beyond being historically confusing, the traditional user agent string has a real, ongoing problem: it's a rich, always-present source of information usable for browser fingerprinting, a technique that combines many small, individually harmless-seeming details (browser version, OS, screen size, installed fonts, and more) to build a surprisingly unique identifier for tracking a specific person across sites, even without cookies. In response, modern browsers are gradually rolling out User-Agent Client Hints, a newer, more privacy-conscious system where detailed device and browser information is only revealed if a website specifically requests it and the browser agrees to share it — rather than being broadcast automatically and completely on every single request, the way the traditional user agent string always has been.

Device pixel ratio — the difference between CSS pixels and physical pixels

A device's pixel ratio exists because "a pixel" actually means two related but distinct things on modern high-density displays. A CSS pixel is the consistent, resolution-independent unit web developers design with — a 100px-wide button is always meant to look roughly the same physical size regardless of the specific screen it's displayed on. A physical pixel is an actual individual dot of light on the display hardware itself. On a standard-density screen, one CSS pixel maps to exactly one physical pixel (a ratio of 1). On a high-density "Retina"-style screen with a ratio of 2, each CSS pixel is actually rendered using a 2x2 grid of physical pixels — four physical pixels for the space of one — which is precisely what makes text and images look measurably sharper on these displays without needing to change any of the actual CSS pixel dimensions used in the page's own layout code.

Viewport size versus screen size — a distinction that trips up a lot of debugging

"Screen size" and "viewport size" sound interchangeable but measure genuinely different things, and confusing them is a common source of layout debugging confusion. Screen size (screen.width/height) reports the full physical display's resolution, completely independent of how any particular browser window is currently sized or positioned on it. Viewport size (window.innerWidth/innerHeight) reports only the actual visible area of the web page within the browser window — which shrinks when a browser isn't maximized, when dev tools are docked open alongside the page, or on mobile when the on-screen keyboard is showing. Responsive CSS media queries respond to viewport size, not screen size, which is exactly why a phone's screen size stays fixed while its effective viewport can still change meaningfully depending on browser chrome, orientation, and other on-screen elements.

Limitations of this tool

This tool reads and displays whatever your current browser's JavaScript APIs (navigator, screen, Intl, and related objects) choose to expose — it can't reveal hardware details a browser deliberately withholds for privacy reasons, and as browsers continue rolling out Client Hints and reducing what the traditional user agent string reveals, some of this information may naturally become less detailed over time across the web generally, not specific to this tool. It reports only your current device and browser as they identify themselves right now — it can't tell you how a page might look or behave on a different device, browser, or screen size you don't currently have in front of you.