iPhone 16 viewport size, resolution and safe areas

The iPhone 16 has a viewport of 393×852 CSS pixels in portrait (852×393 in landscape), a device pixel ratio (DPR) of 3 and a physical resolution of 1179×2556.

Portrait
393×852
Landscape
852×393
DPR
3
Physical
1179×2556
iPhone 16 in Breakpane, App mode, with Lume open and the viewport dimension lines
Breakpane capture in App mode (installed PWA). The dimension lines show the viewport the page measured inside the device; system bars that stay reserved are not counted.

Measurements

iPhone 16 measurements in CSS pixels
Viewport, portrait393×852
Viewport, landscape852×393
Device pixel ratio (DPR)3
Physical resolution1179×2556
Status bar (top safe area)59 px
Home indicator (bottom safe area)34 px
Side safe areas, landscape59 px
Bottom safe area, landscape21 px
Safari: space taken at the top59 px
Safari: space taken at the bottom94 px
Visible viewport in Safari, portrait393×699
OSiOS
Notesame screen as the iPhone 15 Pro and 14 Pro

CSS for the iPhone 16

Media query by width

Breakpoints are written in CSS pixels, never in physical resolution.

/* iPhone 16: 393 CSS px in portrait, 852 in landscape */
@media (max-width: 393px) {
  /* … */
}

/* screens with a DPR of 3 or more */
@media (min-resolution: 3dppx) {
  /* 3x images */
}

Safe areas with env()

With viewport-fit=cover, the page runs to the edge and the system hands over the safe areas through env(). In the installed app, the top only becomes an inset with the black-translucent status bar; in Safari, the browser bars cover those strips.

<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

/* iPhone 16, portrait: 59 px at the top and 34 px at the bottom */
.header { padding-top: env(safe-area-inset-top); }
.bottom-bar { padding-bottom: env(safe-area-inset-bottom); }

/* landscape: 59 px on the sides and 21 px at the bottom */
.page {
  padding-left: max(16px, env(safe-area-inset-left));
  padding-right: max(16px, env(safe-area-inset-right));
}

How Breakpane emulates the iPhone 16

Breakpane doesn't run iOS. It's Chromium with the iPhone 16's viewport (393×852), density (3), user agent, touch, safe areas and display-mode, inside a frame with the real dimensions, floating in front of your editor with your dev server live.

It covers layout, safe areas and the installed PWA. WebKit rendering or API bugs only show up on a real device or in the Xcode Simulator.

More devices: iPhone

All devices

Measurements from Breakpane's device catalog, checked against public sources (the Chrome DevTools device list, useyourloaf.com, deviceatlas.com, yesviz.com, webmobilefirst.com and 1440px.com) between Oct 2, 2026 and Oct 5, 2026.