Definition: Controls the appearance of the mouse cursor when hovering over an element. Different
cursor styles communicate user affordances - indicating whether an element is clickable, resizable, or
disabled. Improves UX by providing visual feedback about what will happen on interaction. Can use standard
keywords, URLs to custom images, or combinations of both. Default Value: auto Values: auto | pointer | default | text | move | wait | not-allowed | grab | grabbing | zoom-in |
zoom-out | col-resize | row-resize | and more
📝 pointer-events – Mouse/Touch Interaction Control
Definition: Determines whether an element responds to mouse or touch events. When set to none, the
element becomes "invisible" to the pointer - clicks pass through to elements below, and hover effects don't
trigger. Useful for creating clickthrough overlays, disabling interactions temporarily, or performance
optimization. Works on all pointer-based input (mouse, touch, pen). Default Value: auto Values: auto | none | inherit
✦ pointer-events: auto (Default)
Element responds to all pointer events normally
.interactive {
pointer-events: auto;
/* Element is fully interactive */
}
✦ pointer-events: none (Click-Through)
Element doesn't respond to pointer events - clicks pass through
.non-interactive {
poi📝 user-select – Text Selection Control
Definition: Controls whether users can select text content in an element. Allows developers to
prevent text selection (useful for buttons, headers), force selection (rare), or allow select-all behavior.
Affects UX significantly - disabling selection can frustrate users, so use sparingly and only when
justified. Important for accessibility considerations. Default Value: auto Values: auto | text | none | all | contain (and browser-specific: -webkit-user-select,
-moz-user-select)
✦ user-select: auto (Default)
Users can select text normally
Select me! - user-select: auto (default behavior)
.selectable {
user-select: auto;
/* Text can be selected */
}
✦ user-select: text
Text is always selectable
Select me! - user-select: text (always selectable)
.always-selectable {
user-select: text;
}
✦ user-select: none
Text cannot be selected by user
You cannot select this text - user-select: none
.no-select {
user-select: none;
/* Text cannot be selected */
}
✦ user-select: all
Triple-click selects entire content
Triple-click - user-select: all (selects entire text)
.select-all {
user-select: all;
/* Triple-click selects all */
}
✦ Button with No Text Selection
Buttons typically disable selection for cleaner UX
button {
user-select: none;
/* Prevent text selection on buttons */
}
✦ Code Block (Select Enabled)
Code blocks should allow selection for copying
console.log('Select me to copy!');
const result = 42;
return result;