Zero Signup ToolsFree browser tools

Generator Tools

CSS Cursor Generator

Build a custom CSS cursor from an image or built-in shape with a hotspot and fallback, or browse every native cursor keyword with a live hover preview.

CSS Cursor Generator

Mode

Build a custom image cursor

Image source

Shape
Fill color
Outline color
Size32 x 32 px

Browsers reliably honor cursor images up to 128 px. 32 px is the classic cursor size.

Hotspot (active pixel)

The pixel inside the image that points at the target, measured from the top-left corner. For an arrow this is the tip; for a crosshair or dot it is the center.

Fallback keyword

Required by the CSS spec. Shown when the image cannot load or is too large for the browser to use.

Live preview

Cursor preview

Move your mouse over this area

The real cursor is applied here. The image above shows the source art at actual size.

CSS output

CSS rule

.custom-cursor {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M 1.92 1.92 L 1.92 25.6 L 8.96 19.2 L 13.44 28.8 L 17.92 26.88 L 13.44 17.28 L 23.04 17.28 Z' fill='%23ffffff' stroke='%230b1220' stroke-width='0.96' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2, auto;
}

cursor value

cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M 1.92 1.92 L 1.92 25.6 L 8.96 19.2 L 13.44 28.8 L 17.92 26.88 L 13.44 17.28 L 23.04 17.28 Z' fill='%23ffffff' stroke='%230b1220' stroke-width='0.96' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2, auto;

Tailwind class

cursor-[url("data:image/svg+xml,%3Csvg_xmlns='http://www.w3.org/2000/svg'_width='32'_height='32'_viewBox='0_0_32_32'%3E%3Cpath_d='M_1.92_1.92_L_1.92_25.6_L_8.96_19.2_L_13.44_28.8_L_17.92_26.88_L_13.44_17.28_L_23.04_17.28_Z'_fill='%23ffffff'_stroke='%230b1220'_stroke-width='0.96'_stroke-linejoin='round'/%3E%3C/svg%3E")_2_2,_auto]

Spaces become underscores per Tailwind arbitrary-value syntax.

How to use

  1. Choose Custom cursor to build an image pointer, or Keyword reference to browse the native cursor values.
  2. In the custom builder, pick a built-in shape and set its colors and size, or switch to Upload image and choose a PNG, GIF, WebP, or SVG.
  3. Set the hotspot X and Y to the pixel that should point at the target. For an arrow use the tip; for a dot or crosshair use the center.
  4. Pick a fallback keyword. It is shown when the image cannot load or is too large for the browser to use.
  5. Move your mouse over the live preview to confirm the cursor, then copy the CSS rule, the cursor value, or the Tailwind class.
  6. In Keyword reference, hover any tile to see the real cursor and click Copy to grab its cursor declaration.

About this tool

CSS Cursor Generator does two jobs that web developers reach for constantly: it builds a custom image cursor you can drop straight into a stylesheet, and it lets you preview every native cursor keyword the way they actually look on your machine. The CSS cursor property controls the mouse pointer over an element. It accepts about 35 standard keyword values (auto, default, pointer, text, crosshair, move, grab, grabbing, not-allowed, the eight directional resize values, zoom-in, zoom-out, and more), and it also accepts one or more url() images followed by a mandatory keyword fallback. The catch with the keywords is that the glyph for each value is drawn by the operating system, not by the browser, so a screenshot of a pointer on Windows looks different from the same value on macOS or Linux. The only honest preview is to hover an element that really sets that value, which is exactly what the keyword reference here does: every keyword renders as a tile with cursor set to that value, grouped by purpose (general, links, selection, drag and drop, resize, zoom), and clicking a tile copies the cursor declaration for that value. The custom builder produces the url() form. You either pick a built-in shape (arrow, dot, ring, crosshair, or pointing hand) that is drawn as an SVG with colors and a size you choose, or you upload your own PNG, GIF, WebP, or SVG. Either way the image is encoded as a data URI, so the finished cursor needs no image hosting and works when pasted into any project, a CodePen, or an inline style. Two details make a custom cursor behave correctly, and the tool handles both. First, the hotspot: the two numbers after the url() set the pixel inside the image that actually points at the target, measured from the top-left corner, so an arrow uses its tip while a crosshair or dot uses its center. Second, the fallback: the CSS spec requires a generic keyword after any url() list, shown when the image cannot load or is larger than the browser will accept, so the tool always appends one you select. Browsers reliably honor cursor images up to 128 pixels and silently fall back to the keyword for anything larger, so the size control is capped accordingly and the tool warns when an uploaded image exceeds that limit. The output panel gives you the full CSS rule, the bare cursor value, and a Tailwind arbitrary-value class with spaces converted to underscores. The live preview area applies the real cursor so you can move your mouse over it and feel the result, and it shows the source art at actual size next to it. Everything runs in your browser. Uploaded images are read locally with the File API and embedded inline, so nothing you load here is ever sent to a server.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsGenerator Tools