cursor
Utilities for controlling the cursor style when hovering over an element.
| Class | Styles |
|---|---|
cursor-auto | |
cursor: auto; |
|
| cursor-default |
cursor: default;
|
| cursor-pointer |
cursor: pointer;
|
| cursor-wait |
cursor: wait;
|
| cursor-text |
cursor: text;
|
| cursor-move |
cursor: move;
|
| cursor-help |
cursor: help;
|
| cursor-not-allowed |
cursor: not-allowed;
|
| cursor-none |
cursor: none;
|
| cursor-context-menu |
cursor: context-menu;
|
Use utilities like cursor-pointer and cursor-grab to control which cursor is displayed when hovering over an element:
Hover over each button to see the cursor change
<button class="cursor-pointer ...">Submit</button><button class="cursor-progress ...">Saving...</button><button class="cursor-not-allowed ..." disabled>Confirm</button>
Use the cursor-[<value>] syntax to set the cursor based on a completely custom value:
<button class="cursor-[url(hand.cur),_pointer] ..."> <!-- ... --></button>
For CSS variables, you can also use the cursor-(<custom-property>) syntax:
<button class="cursor-(--my-cursor) ..."> <!-- ... --></button>
This is just a shorthand for cursor-[var(<custom-property>)] that adds the var() function for you automatically.
Prefix a cursor utility with a breakpoint variant like md: to only apply the utility at medium screen sizes and above:
<button class="cursor-not-allowed md:cursor-auto ..."> <!-- ... --></button>
Learn more about using variants in the variants documentation.
On this page

5-day mini-course
Build UIs that don’t suck.
Short, tactical video lessons from the creator of Tailwind CSS, delivered directly to your inbox every day for a week.
Copyright © 2026 Tailwind Labs Inc.·Trademark Policy