User Select

Utilities for controlling whether the user can select text in an element.

Class reference

Class
Properties
.select-noneuser-select: none;
.select-textuser-select: text;
.select-alluser-select: all;
.select-autouser-select: auto;

Disable selecting text

Use .select-none to prevent selecting text in an element and its children.

This text is not selectable
<div class="select-none ...">
  This text is not selectable
</div>

Allow selecting text

Use .select-text to allow selecting text in an element and its children.

This text is selectable
<div class="select-text ...">
  This text is selectable
</div>

Select all text in one click

Use .select-all to automatically select all the text in an element when a user clicks.

Click anywhere in this text to select it all
<div class="select-all ...">
  Click anywhere in this text to select it all
</div>

Auto

Use .select-auto to use the default browser behavior for selecting text. Useful for undoing other classes like .select-none at different breakpoints.

This text is selectable
<div class="select-auto ...">
  This text is selectable
</div>

Customizing

Responsive and pseudo-class variants

By default, only responsive variants are generated for user-select utilities.

You can control which variants are generated for the user-select utilities by modifying the userSelect property in the variants section of your tailwind.config.js file.

For example, this config will also generate hover and focus variants:

  // tailwind.config.js
  module.exports = {
    variants: {
      // ...
-     userSelect: ['responsive'],
+     userSelect: ['responsive', 'hover', 'focus'],
    }
  }

Disabling

If you don't plan to use the user-select utilities in your project, you can disable them entirely by setting the userSelect property to false in the corePlugins section of your config file:

  // tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     userSelect: false,
    }
  }

Tailwind UI is now in early access!