# Screen brightness and QR scanning

> A displayed QR code is only as readable as the screen is bright. Indoors almost any brightness works; in daylight a 500-nit phone screen competes with sunlight and loses, which is why paper outperforms screens outdoors. Raise brightness manually before showing a code — auto-brightness often dims mid-scan.

Source: https://useqr.app/docs/scanning/screen-brightness-and-qr-scanning · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Emissive vs reflective: the physics in one paragraph

Paper is read by reflected light: the brighter the environment, the brighter the white
background, so contrast is roughly constant from dim room to blazing sun. A screen is
**emissive**: its white is fixed by the panel — typically **500–800 nits sustained**
on phones — while the ambient light climbing around it washes the panel's black
upward. Indoors that contest is no contest. Outdoors, direct sun delivers on the order
of 100,000 lux, and a sunlit sheet of paper simply outshines any phone screen. That is
the whole reason boarding passes scan flawlessly in the terminal and struggle at the
open-air gate.

Practical consequence: **for codes that must scan outdoors in daylight, print wins.**
Screens are for indoor and evening use, or for shade.

## Auto-brightness sabotage

The most common failure is not sunlight but the phone *dimming itself* at the moment
of truth. The sequence: you open the ticket, queue for a minute, the screen dims on
inactivity or auto-brightness adapts to a dark venue — and the reader meets a grey
ghost of the code. Fixes on the showing side:

- **Tap the screen just before presenting** to reset the dim timer.
- **Drag brightness to maximum manually** for the few seconds of the scan.
- Disable battery-saver dimming if you will present codes repeatedly.

Apple understood this: iOS **boosts screen brightness automatically when a Wallet pass
is displayed**. If you build an app or page that displays codes — tickets, loyalty,
payment — copy the pattern: force maximum brightness while the code is visible, then
restore. On the web you cannot control brightness, so say it in the UI: "turn your
brightness up".

## Too bright is also a thing

In a genuinely dark venue — a club door, a dim foyer — a full-white screen at maximum
nits blooms in the reader's camera: the sensor exposes for the glowing white and the
glow bleeds across module edges. Readers mostly adapt within a second, but if scans
keep failing in the dark, dimming the phone slightly is the counter-intuitive fix.
Screens scan best when their brightness is *plausible* for the room.

## The rest of the displayed-code checklist

Brightness is necessary, not sufficient. The other rules for on-screen codes:

- **Dark modules on a white tile, always** — dark-mode themes that invert the code
  break readers, as covered in
  [QR codes in a dark-mode website](/docs/design/qr-code-in-a-dark-mode-website).
- **Size for the scan distance** — a code on a lobby TV obeys the same
  [distance limits](/docs/scanning/scanning-distance-limits) as print; the
  [TV sizing page](/docs/print/qr-code-size-on-a-tv-screen) has the numbers.
- **Leave it up long enough** — timing rules in
  [minimum on-screen duration](/docs/design/minimum-on-screen-duration-for-a-qr-code).
- **Expect moiré when a camera reads a screen** — mitigations in
  [scanning a code off a monitor](/docs/scanning/scanning-a-qr-code-off-a-monitor).
- **Consider e-ink for permanent displayed codes** — reflective like paper,
  sun-readable, covered in
  [scanning QR codes on e-ink](/docs/scanning/scanning-qr-codes-on-e-ink).

Before shipping any screen-displayed code, confirm the artwork decodes cleanly with
the [validator](/validate) — brightness problems are hard enough without a marginal
code underneath them.

## FAQ

### Why does my QR ticket fail to scan in sunlight?
Phone screens emit a fixed brightness — typically 500–800 nits — while direct sun is orders of magnitude brighter, washing out the panel's contrast. Shade the screen with your hand and turn brightness to maximum, or use a printed copy for outdoor scanning.

### Why did the code scan fail after I queued for a while?
Your phone dimmed itself — the inactivity timer or auto-brightness in a dark venue. Tap the screen to wake it fully and drag brightness up just before presenting the code.

### Do brighter screens always scan better?
Up to a point. In daylight, more brightness always helps. In a very dark room, a maximum-brightness white screen can bloom in the reader's camera and blur module edges — there, dimming slightly actually improves the scan.

### Why does iOS make the screen bright for Wallet passes?
Because Apple identified exactly this failure: passes were failing at gates on dimmed screens. iOS temporarily boosts brightness whenever a pass is displayed. Apps that show tickets or payment codes should copy the pattern.

## Try it

- https://useqr.app/scan
- https://useqr.app/validate
