cursor

The cursor CSS property sets the type of mouse cursor, if any, to show when the mouse pointer is over an element.

Syntax

/* Keyword value */
cursor: pointer;
cursor: auto;

/* URL, with a keyword fallback */
cursor: url(hand.cur), pointer;

/* URL and coordinates, with a keyword fallback */
cursor: url(cursor1.png) 4 12, auto;
cursor: url(cursor2.png) 2 2, pointer;

/* Global values */
cursor: inherit;
cursor: initial;
cursor: unset;

The cursor property is specified as zero or more <url> values, separated by commas, followed by a single mandatory keyword value. Each <url> should point to an image file. The browser will try to load the first image specified, falling back to the next if it can't, and falling back to the keyword value if no images could be loaded (or if none were specified).

Each <url> may be optionally followed by a pair of space-separated numbers, which represent <x><y> coordinates. These will set the cursor's hotspot, relative to the top-left corner of the image.

For example, this specifies two images using <url> values, providing <x><y> coordinates for the second one, and falling back to the progress keyword value if neither image can be loaded:

cursor: url(one.svg), url(two.svg) 5 5, progress;

Values

<url>
A url(…) or a comma separated list url(…), url(…), …, pointing to an image file. More than one <url> may be provided as fallbacks, in case some cursor image types are not supported. A non-URL fallback (one or more of the keyword values) must be at the end of the fallback list. See Using URL values for the cursor property for more details.
<x> <y>
Optional x- and y-coordinates. Two unitless nonnegative numbers less than 32.
Keyword values

Move your mouse over values to see their live appearance in your browser:

Category CSS value Example Description
General auto The UA will determine the cursor to display based on the current context. E.g., equivalent to text when hovering text.
default default.gif The platform-dependent default cursor. Typically an arrow.
none No cursor is rendered.
Links & status context-menu context-menu.png A context menu is available.
help help.gif Help information is available.
pointer pointer.gif The cursor is a pointer that indicates a link. Typically an image of a pointing hand.
progress progress.gif The program is busy in the background, but the user can still interact with the interface (in contrast to wait).
wait wait.gif The program is busy, and the user can't interact with the interface (in contrast to progress). Sometimes an image of an hourglass or a watch.
Selection cell cell.gif The table cell or set of cells can be selected.
crosshair crosshair.gif Cross cursor, often used to indicate selection in a bitmap.
text text.gif The text can be selected. Typically the shape of an I-beam.
vertical-text vertical-text.gif The vertical text can be selected. Typically the shape of a sideways I-beam.
Drag & drop alias alias.gif An alias or shortcut is to be created.
copy copy.gif Something is to be copied.
move move.gif Something is to be moved.
no-drop no-drop.gif An item may not be dropped at the current location.
bug 275173: On Windows and Mac OS X, no-drop is the same as not-allowed.
not-allowed not-allowed.gif The requested action will not be carried out.
grab grab.gif Something can be grabbed (dragged to be moved).
grabbing grabbing.gif Something is being grabbed (dragged to be moved).
Resizing & scrolling all-scroll all-scroll.gif Something can be scrolled in any direction (panned).
bug 275174: On Windows, all-scroll is the same as move.
col-resize col-resize.gif The item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.
row-resize row-resize.gif The item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.
n-resize Example of a resize towards the top cursor Some edge is to be moved. For example, the se-resize cursor is used when the movement starts from the south-east corner of the box.
In some environments, an equivalent bidirectional resize cursor is shown. For example, n-resize and s-resize are the same as ns-resize.
e-resize Example of a resize towards the right cursor
s-resize Example of a resize towards the bottom cursor
w-resize Example of a resize towards the left cursor
ne-resize Example of a resize towards the top-right corner cursor
nw-resize Example of a resize towards the top-left corner cursor
se-resize Example of a resize towards the bottom-right corner cursor
sw-resize Example of a resize towards the bottom-left corner cursor
ew-resize 3-resize.gif Bidirectional resize cursor.
ns-resize 6-resize.gif
nesw-resize 1-resize.gif
nwse-resize 4-resize.gif
Zooming zoom-in zoom-in.gif

Something can be zoomed (magnified) in or out.

zoom-out zoom-out.gif

Usage notes

Although the specification does not define any size limitations for cursor, individual user agents may choose to do so. Cursor changes using images which are outside the size range supported by the browser will generally just be ignored.

Check the Browser compatibility table for any notes on cursor size limits.

Formal definition

Initial valueauto
Applies toall elements
Inheritedyes
Computed valueas specified, but with <url> values made absolute
Animation typediscrete

Formal syntax

[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-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 | zoom-in | zoom-out | grab | grabbing ] ]

Examples

Setting cursor types

.foo {
  cursor: crosshair;
}

.bar {
  cursor: zoom-in;
}

/* A fallback keyword value is required when using a URL */
.baz {
  cursor: url("hyper.cur"), auto;
}

Specifications

Specification Status Comment
CSS Basic User Interface Module Level 3
The definition of 'cursor' in that specification.
Recommendation Addition of several keywords and the positioning syntax for url().
CSS Level 2 (Revision 1)
The definition of 'cursor' in that specification.
Recommendation Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
cursorChrome Full support 1Edge Full support 12Firefox Full support 1
Notes
Full support 1
Notes
Notes Starting in Firefox 67, the maximum size allowed for custom cursors is 32x32 pixels due to cursors being misused by certain malicious sites.
IE Full support 4
Notes
Full support 4
Notes
Notes In Internet Explorer 11, when cursor is applied to an element and this element is underneath an open <select> menu and the user hovers over a <select> menu item that's on top of said element, the cursor for said element will be displayed rather than the <select>'s normal cursor. See bug 817822.
Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
aliasChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 10Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
all-scrollChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 6Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
autoChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
Bidirectional resize cursors (ew-resize, nesw-resize, ns-resize, and nwse-resize)Chrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 10Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
cellChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 10Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
col-resizeChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 6Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
context-menuChrome Full support 1
Notes
Full support 1
Notes
Notes This cursor is only supported on macOS and Linux.
Edge Full support 12Firefox Full support 1.5
Notes
Full support 1.5
Notes
Notes This cursor is only supported on macOS and Linux.
IE Full support 10Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18
Notes
Full support 18
Notes
Notes This cursor is only supported on macOS and Linux.
Firefox Android No support NoOpera Android Full support 14
Notes
Full support 14
Notes
Notes This cursor is only supported on macOS and Linux.
Safari iOS Full support 1Samsung Internet Android Full support 1.0
Notes
Full support 1.0
Notes
Notes This cursor is only supported on macOS and Linux.
copyChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 10Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
crosshairChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
defaultChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
Grab cursors (grab and grabbing)Chrome Full support 68
Notes
Full support 68
Notes
Notes Chrome also continues to support the prefixed versions.
Full support 1
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes Chrome 22 added Windows support.
Edge Full support 14Firefox Full support 27
Full support 27
Full support 1.5
Prefixed
Prefixed Implemented with the vendor prefix: -moz-
IE No support NoOpera Full support 55
Notes
Full support 55
Notes
Notes Opera also continues to support the prefixed versions.
Full support 15
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes Opera 22 added Windows support.
Safari Full support 11
Full support 11
Full support 4
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
WebView Android No support NoChrome Android Full support 68
Notes
Full support 68
Notes
Notes Chrome also continues to support the prefixed versions.
Full support 18
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes Chrome 22 added Windows support.
Firefox Android No support NoOpera Android Full support 48
Notes
Full support 48
Notes
Notes Opera also continues to support the prefixed versions.
Full support 14
Prefixed Notes
Prefixed Implemented with the vendor prefix: -webkit-
Notes Opera 22 added Windows support.
Safari iOS Full support 1Samsung Internet Android Full support 10.0
Full support 10.0
Full support 1.0
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
helpChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
inheritChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 8Opera Full support 9Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
moveChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
no-dropChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 6Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
noneChrome Full support 5Edge Full support 12Firefox Full support 3IE Full support 9Opera Full support 15Safari Full support 5WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 4.2Samsung Internet Android Full support 1.0
not-allowedChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 6Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
pointerChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 6Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
progressChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 6Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
row-resizeChrome Full support 1Edge Full support 12Firefox Full support 1.5IE Full support 6Opera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
textChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
Unidirectional resize cursors (n-resize, e-resize, s-resize, w-resize, ne-resize, nw-resize, se-resize, and sw-resize)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
url()Chrome Full support 1Edge Full support 12Firefox Full support 1.5
Notes
Full support 1.5
Notes
Notes Firefox 4 added macOS support.
IE Full support 6Opera Full support 15Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
url() positioning syntaxChrome Full support 1Edge Full support 79Firefox Full support 1.5
Notes
Full support 1.5
Notes
Notes Firefox 4 added macOS support.
IE No support NoOpera Full support 15Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
vertical-textChrome Full support 1Edge Full support 12Firefox Full support 1.5IE No support NoOpera Full support 10.6Safari Full support 3WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
waitChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1.2WebView Android No support NoChrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
Zoom cursors (zoom-in and zoom-out)Chrome Full support 37
Full support 37
Full support 1
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Edge Full support 12Firefox Full support 24
Full support 24
Full support 1
Prefixed
Prefixed Implemented with the vendor prefix: -moz-
IE No support NoOpera Full support 24
Full support 24
No support 15 — 23
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Safari Full support 9
Full support 9
Full support 3
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
WebView Android No support NoChrome Android Full support 37
Full support 37
Full support 18
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Firefox Android No support NoOpera Android Full support 24
Full support 24
No support 14 — 24
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-
Safari iOS Full support 1Samsung Internet Android Full support 3.0
Full support 3.0
Full support 1.0
Prefixed
Prefixed Implemented with the vendor prefix: -webkit-

Legend

Full support
Full support
No support
No support
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

See also