CSS media feature pointer
Tests whether the user has a pointing device (such as a mouse), and if so, how accurate the primary pointing device is. This one is about adapting UI for touch devices.
Syntax
The pointer feature is specified as a keyword value chosen from the list below.
none
The primary input mechanism does not include a pointing device.
coarse
The primary input mechanism includes a pointing device of limited accuracy, such as a finger on a touchscreen.
Touchscreens (phones, tablets) Fingers (big, imprecise taps)
fine
The primary input mechanism includes an accurate pointing device, such as a mouse.
Mouse Trackpad Stylus (usually)
Examples
This example creates a small checkbox for users with fine primary pointers and a large checkbox for users with coarse primary pointers.
input[type="checkbox"] {
appearance: none;
border: solid;
margin: 0;
}
input[type="checkbox"]:checked {
background: gray;
}
@media (pointer: fine) {
input[type="checkbox"] {
width: 15px;
height: 15px;
border-width: 1px;
border-color: blue;
}
}
@media (pointer: coarse) {
input[type="checkbox"] {
width: 30px;
height: 30px;
border-width: 2px;
border-color: red;
}
}
@media (hover: none) and (pointer: coarse) {
/* very likely a phone */
}