This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
The monochrome CSS media feature can be used to test the number of bits per pixel in the monochrome frame buffer of the output device.
The monochrome feature is specified as an <integer> representing the number of bits per pixel in the monochrome frame buffer. If the device is not a monochrome device, the value is zero. It is a range feature, meaning that you can also use the prefixed min-monochrome and max-monochrome variants to query minimum and maximum values, respectively.
<p class="mono">Your device supports monochrome pixels!</p> <p class="no-mono">Your device doesn't support monochrome pixels.</p>
p {
display: none;
}
/* Any monochrome device */
@media (monochrome) {
p.mono {
display: block;
color: #333333;
}
}
/* Any non-monochrome device */
@media (monochrome: 0) {
p.no-mono {
display: block;
color: #ee3636;
}
}
| Specification |
|---|
| Media Queries Level 4> # monochrome> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
monochrome |
1 | 79 | 2 | 10 | 3 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/@media/monochrome