Phone · iOS

iPhone 12 Pro viewport size

The iPhone 12 Pro has a viewport of 390 × 844 CSS pixels and a device pixel ratio of 3, which makes about 1170 × 2532 physical pixels.

Viewport (portrait)

390 × 844

Landscape

844 × 390

Device pixel ratio

3

Screen resolution

1170 × 2532

Screenshot a website on the iPhone 12 Pro

Rendered in a real browser with cookie banners hidden. Takes 5–30 seconds.

CSS for the iPhone 12 Pro

Target this screen size in CSS (portrait):

@media (max-width: 390px) {
  /* iPhone 12 Pro and smaller */
}
@media (min-resolution: 3dppx) {
  /* high-density screens: serve sharper images */
}

Design for ranges, not single devices: many phones share the same viewport width (for example 390 px). The iPhone 14 and iPhone 16e use it too.

User agent

The user agent Chrome DevTools uses when it emulates the iPhone 12 Pro:

Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1

Test your site on the iPhone 12 Pro

In Chrome, open DevTools (F12), turn on device mode (Ctrl+Shift+M or ⌘+Shift+M) and pick the device from the Dimensions menu, or use the screenshot tool above to capture any page at this size.

Data from the device list built into Chrome DevTools (devtools-frontend, BSD license).

Frequently asked questions

What is the viewport size of the iPhone 12 Pro?

390 × 844 CSS pixels in portrait and 844 × 390 in landscape.

What is the screen resolution of the iPhone 12 Pro?

About 1170 × 2532 physical pixels: the viewport multiplied by the device pixel ratio of 3.

Why is the viewport smaller than the screen resolution?

Phones pack several physical pixels into one CSS pixel (the device pixel ratio) so text stays readable. Websites lay out in CSS pixels; images can use the extra pixels for sharpness.

Other devices

Screenshot API

Take screenshots from your code

screenshotbase renders any website in a real browser and returns the image: full page or viewport, any device size, retina, from 100+ countries, with cookie banners and ads hidden.

Read the docs

300 free screenshots every month. No credit card required.

GET https://api.screenshotbase.com/v1/take?url=https://example.com&viewport_width=390&viewport_height=844&device_scale_factor=3

# Response: the image (PNG, JPG, WebP or GIF)
curl -G "https://api.screenshotbase.com/v1/take" \
  --data-urlencode "url=https://example.com" \
  -d viewport_width=1280 -d viewport_height=800 \
  -d format=png \
  -H "apikey: YOUR-API-KEY" \
  -o screenshot.png

Free screenshot tools

Start using our Screenshot API for free today!

Get 300 requests / month for free