As much as it pains me, I've been working on a project that is nearly responsive but wants the "mobile" design to only appear on mobile phones, and not on desktop devices (aka: laptops, etc).

Tablets are a grey area…

At first I took the approach of a max-width media query:

@media screen and (max-width: 900px) {


But this catches the desktop popup window (which launches under 900 pixels wide), so I discovered the hover media query:

@media screen and (max-width: 900px) and (hover: none) {

This means the device does not have hover capabilites (i.e. a mouse), except… of course… the OnePlus range of phones reports to have hover capabilities. So the last part of the puzzle is what type of pointer this is, in the OnePlus' case it's coarse:

@media screen and (max-width: 900px) and (hover: none), (max-width: 900px) and (pointer: coarse) {


Though, this still treats iPad in portrait as mobile and in landscape as desktop - but that's why it should really, simply be, mobile first.