Skip to main content
CalcChef

CSS Cursor Generator

Search 36 CSS cursor keywords, see each one as your system draws it, try a custom cursor image, and copy the CSS, SCSS, variable or Tailwind code. How it works

Use the CSS Cursor Generator

Preview

Hover over cursor names below to see them here.

Link
Selectable text
Image
Export Format
Format preview: cursor: pointer;
Custom Cursor

About the CSS Cursor Generator

CSS has 36 cursor keywords, from auto and default to zoom-in and zoom-out, and cursor: pointer; is the one for a link. This CSS cursor generator lists all 36 in four groups, shows each as your system draws it when you hover its cell, and copies the one you pick as CSS, SCSS, a CSS variable or a Tailwind class. It also tests a custom cursor image of up to 128 by 128 pixels.

The 36 cursor keywords by group

GroupKeywordsCursors
Pointer8auto, default, none, context-menu, help, pointer, progress, wait
Interaction11cell, crosshair, alias, copy, move, no-drop, not-allowed, grab, grabbing, zoom-in, zoom-out
Resize15e-resize, n-resize, ne-resize, nw-resize, s-resize, se-resize, sw-resize, w-resize, ew-resize, ns-resize, nesw-resize, nwse-resize, col-resize, row-resize, all-scroll
Text2text, vertical-text

The groups are the tool’s own, used by its filter buttons; all-scroll sits in Resize here.

The four export formats, for not-allowed

FormatCode
CSScursor: not-allowed;
SCSS$cursor-not-allowed: not-allowed;
CSS Var--cursor-not-allowed: not-allowed;
Tailwindcursor-[not-allowed]

The Tailwind tab writes the arbitrary-value form for every keyword. Tailwind also ships a ready class for each of the 36, such as cursor-not-allowed or cursor-pointer, which gives the same CSS.

How to use this tool

  1. Search the keywords or pick a group: All, Pointer, Interaction, Resize or Text.
  2. Move the pointer over a cell, or Tab to the grid and use the arrow keys, to see that cursor in the preview zone and its code in the panel.
  3. Pick CSS, SCSS, CSS Var or Tailwind, then click a cell or the copy button. Star a cursor to keep it as a favorite.
  4. For your own image, upload a .cur, .png or .svg file of 256 KB or less and 128 by 128 pixels or less, set Hotspot X and Y (0 0 is the top-left pixel), choose a fallback cursor and copy the CSS.

Frequently asked questions

What are all the CSS cursor values?
MDN lists 36 keywords: auto, default, none, context-menu, help, pointer, progress, wait, cell, crosshair, text, vertical-text, alias, copy, move, no-drop, not-allowed, grab, grabbing, the eight compass resize cursors, ew-resize, ns-resize, nesw-resize, nwse-resize, col-resize, row-resize, all-scroll, zoom-in and zoom-out. The table above groups them the way this tool does: 8 Pointer, 11 Interaction, 15 Resize and 2 Text.
Which cursor should I use for a button, a link or a disabled control?
MDN describes pointer as the cursor that indicates a link; giving a button cursor: pointer as well is a design choice you make yourself. Use not-allowed on a disabled control, grab and then grabbing for something being dragged, move for an item that can be moved, text over selectable text, and col-resize or row-resize on a splitter. Use progress while work runs in the background and the page still responds, and wait only when it does not.
How do I set a custom cursor image in CSS?
Write one or more url() values, then a keyword: cursor: url("pointer.png") 4 12, pointer;. The keyword is required and goes last, and the browser uses it when no image loads. The two numbers are the hotspot, the pixel that acts as the pointer tip, counted from the top-left corner. This tool embeds your upload as a data URL and writes the Hotspot X and Y you set (0 0 by default), which replace any hotspot stored inside a .cur file.
Why is my custom cursor image not showing?
Browsers draw cursor images up to 128 by 128 pixels and recommend 32 by 32; a larger image is ignored and the fallback keyword is used instead (MDN). The upload box refuses a file over 256 KB or an image wider or taller than 128 pixels, says so, and notes any image above 32 pixels. A file the browser cannot draw as an image is refused too.
Does the tool show a picture of each cursor?
No. Hovering a cell changes the real cursor over the cell and the preview zone, and your browser and operating system draw it, so the shapes differ between Windows, macOS, Linux and phones. The tool does not draw or compare them.

Related Tools

View all tools