Простая формулировка
user-select контролирует, можно ли выделять текст мышью/тачем.
Значения
auto / text — обычное выделение;
none — нельзя выделить (иконки, кнопки, dnd-ручки);
all — один клик выделяет весь элемент;
contain — выделение не «вытекает» за пределы (поддержка ограничена).
.btn, .icon { user-select: none; }
.code-block { user-select: text; }
.otp { user-select: all; }
Не используйте none на основном контенте — вредно для доступности и UX (люди копируют текст).
Итог
Инструмент UX для UI-хрома, не способ «защитить» контент. На тексте статей оставляйте выделение.