True per-pixel ramps — grayscale and every primary, four directions, custom endpoints. A healthy chain shows one continuous sweep; stripes, steps or tint drift are what you're here to find.
Run it
←→ ramp · ↑↓ direction · Esc to exit
Drawn on a device-pixel canvas — CSS gradients dither in some browsers, which hides exactly what you're looking for.
How to run it
Start with the default black-to-white grayscale ramp and just look, slowly, edge to edge. Smooth sweep: good. Countable stripes: banding.
Cycle direction with ↑↓. A radial ramp draws the same values as rings, which makes faint steps easier to catch than straight bands.
Step through the primaries with ←→. Banding that appears in one channel but not the others narrows the fault to that channel's processing.
Use the endpoint pickers for the hard cases: a dark-gray-to-black ramp is where cheap panels give up first, and it's where shadow detail in games and film actually lives.
What you're actually seeing
A ramp is a counting exercise. Between pure black and pure white an 8-bit channel has 254 intermediate levels; spread across a 2,560-pixel-wide screen, every level must cover about ten pixels — and that ten-pixel stripe is invisible only if each step is genuinely one level tall with no processing in between. Every stage that touches the signal — GPU output format, cable bandwidth, the monitor's own contrast tricks — can merge steps, and merged steps are exactly what you see as bands. That's also why this test draws its ramps pixel-by-pixel on a canvas instead of asking CSS for a gradient: some browsers quietly dither CSS gradients, which hides the very fault you came to find.
Two neighbors of this test are worth knowing. If the gray ramp shows blotchy patches rather than clean stripes on an OLED, that's near-black uniformity, not banding — the OLED test isolates it. And if the ramp is smooth but leans warm or cool, that's gray balance, which the calibration wizard fixes in about two minutes with the monitor's own controls.
Visible stripes where a gradient should sweep smoothly. A gradient asks the screen for hundreds of nearly identical shades; when the display (or the signal feeding it) can’t represent enough of them, neighbors collapse into the same value and the boundary between groups shows as a step. Grayscale is the harshest judge — the eye is most sensitive to luminance steps — which is why this test starts there.
Is banding a defect, or normal?
Some banding is arithmetic, not damage: an 8-bit panel has 256 levels per channel, and a slow black-to-white sweep across a large screen simply runs out of steps. Heavy, colored, or one-sided banding on gentle ramps is different — that points at the panel’s processing, a marginal cable, or “enhancement” settings. The full story is in Screen banding explained.
Why do movies and games band when this test looks clean?
Because their gradients arrive compressed. Video encoding quantizes smooth skies and shadows far more brutally than a lossless test ramp, so banding you see in content is usually baked into the content. If this page’s ramps are clean, your panel is doing its part — the fix there is higher-bitrate sources or debanding options in the player, not a new monitor.
How do I reduce banding?
In order of likelihood: check the GPU output is actually 8- or 10-bit RGB rather than a compressed chroma mode; swap a long or aging HDMI/DisplayPort cable; turn off the monitor’s contrast “dynamic” modes and sharpening; and on Windows check the color depth in the display adapter settings. A 10-bit panel fed an 8-bit signal still bands like 8-bit — the whole chain has to carry the extra levels.
Is this the same as a greyscale test?
The grayscale ramp here is one, and it’s the preset the test opens with. Beyond banding, a slow look at the gray sweep shows tint drift (the ramp should stay neutral end to end — a warm or cool lean means gray balance is off) and crushed ends (detail vanishing early near black or white). If the tint bothers you, the calibration wizard walks the fix.