Skip to content

Manifest · Manifest member

Manifest display modes: standalone vs fullscreen

Published

Limited availabilityNot supported in Firefox (Desktop)W3C

In one line: display tells the browser how much of its own UI to strip when your installed PWA launches. The four values form a fallback chain — fullscreen → standalone → minimal-ui → browser — so an unsupported value quietly degrades to the next one down. standalone is the common default for an app-like window; display_override unlocks newer modes like window-controls-overlay.

  • fullscreen — uses the entire screen, no browser UI and no OS status bar where the platform allows. Best for immersive content like games or media.
  • standalone — opens in its own window with no address bar and no tab strip, but keeps OS-level chrome (status bar, back gesture). This is the typical “feels like a native app” choice.
  • minimal-ui — like standalone but the browser keeps a minimal set of navigation controls (often back/forward/reload). Useful when users navigate a lot and benefit from visible controls.
  • browser — opens in a normal browser tab or window with full chrome. Effectively declines an app-like window; on many browsers this also suppresses the install prompt.

Each value falls back down the list when the browser or platform doesn’t support it:

fullscreen → standalone → minimal-ui → browser
  • Request fullscreen; if unsupported, the browser uses standalone, then minimal-ui, then browser.
  • You only ever need to set the highest mode you want — the chain handles the rest.
  • browser is the terminal value: it always works and never adds an app window.

display alone can’t express modes outside the fixed chain. display_override is an ordered array the browser walks before falling back to display:

{
"display": "standalone",
"display_override": ["window-controls-overlay", "minimal-ui"],
"scope": "/app/"
}
  • The browser tries each display_override entry in order, then falls back to display.
  • window-controls-overlay lets your content draw into the title-bar area on desktop — useful for custom toolbars in productivity apps.
  • tabbed (where supported) gives an installed app its own tab strip.
  • Unknown entries are skipped, so display_override degrades gracefully on older browsers that still honor the plain display value.
  • Installability. Most browsers require a display value of standalone, fullscreen, or minimal-ui to offer install. A manifest set to browser typically disqualifies the install prompt.
  • Scope interaction. display decides how much chrome an in-scope page shows; scope decides which URLs count as in-app. When the user navigates out of scope, the browser re-exposes the address bar regardless of your display mode — display can’t keep off-scope pages chrome-free.
  • Start context. The chosen mode applies from start_url onward; deep links that land in-scope inherit the same display treatment.
Product need Recommended display Why
Immersive game or media player fullscreen Maximizes screen, removes all chrome where allowed.
General app-like experience standalone App window without address bar; still installable.
Content users navigate heavily minimal-ui Keeps back/forward/reload controls visible.
Custom desktop title-bar UI display_override: ["window-controls-overlay"] + display: "standalone" Draws into the title bar; falls back to standalone.
Want to stay a normal website browser No app window; usually no install prompt.
Maximize install eligibility standalone (or fullscreen/minimal-ui) browser disqualifies the install prompt on most browsers.
  • Set the single highest mode you want; let the fallback chain handle older browsers.
  • Use display: "standalone" unless you have a specific reason for another mode.
  • Avoid browser if you want the install prompt to appear.
  • For newer modes, list them in display_override and keep a safe display fallback.
  • If you use window-controls-overlay, test the title-bar drawing area and provide a usable layout when the overlay isn’t granted.
  • Confirm scope aligns with your app paths — display won’t hide chrome off-scope.
  • Test the installed launch on each target platform; OS chrome differs even in standalone.

Specifications

SpecificationStatus
Web App Manifest: displayW3C
  • Legend
  • Yes
  • Partial
  • Flag
  • No
  • Unknown
Browser / PlatformSupportVersionsConfidenceSourceNotes
Chrome (Android)Yes39mediumsource—
Chrome (Desktop)Yes73mediumsource—
Edge (Desktop)Yes79mediumsource—
Safari (iOS)Yes11.3mediumsource1
Safari (macOS)Yes17mediumsource—
Firefox (Desktop)No—mediumsource2
Samsung InternetYes4.0mediumsource—
  1. standalone honored; minimal-ui falls back to standalone.
  2. No desktop install path consuming display.

Source data: /compatibility/manifest-display.json · Global usage: 90 % (StatCounter 2026-05)

Source: spec · MDN · Last verified 2026-06-24 · Confidence: medium (computed from sources)