CSS Cursors

Enter the world of web design, where CSS cursors shape user interaction. From the familiar cursor pointer to dynamic cursor text, explore the versatility of cursors in CSS. Unleash creative possibilities with the CSS cursor property and discover unique cursor types. Welcome to the art of engaging and interactive web experiences.

When the mouse moves over a certain region or a link on the webpage, the CSS cursor property is used to define the cursor type (i.e. mouse pointer).

Changing the Look of Cursor

Web browsers typically show different mouse pointers for different areas of a web page. They display a regular mouse pointer for blank areas, a gloved hand for linked or clickable items, and an edit cursor for text or text fields. However, with CSS, you can redefine these properties and choose from a variety of different cursors.

h1 {
    cursor: move;
p {
    cursor: text;

The table below illustrates the various cursors that most browsers support. Hover your mouse over the "TEST" link in the output column to see the corresponding cursor.

Values Example Output
default a:hover{cursor:default;} TEST
pointer a:hover{cursor:pointer;} TEST
text a:hover{cursor:text;} TEST
wait a:hover{cursor:wait;} TEST
help a:hover{cursor:help;} TEST
progress a:hover{cursor:progress;} TEST
crosshair a:hover{cursor:crosshair;} TEST
move a:hover{cursor:move;} TEST

Creating a Customized Cursor

Additionally, it's possible to create completely customized cursors.

The cursor property allows you to define a list of user-defined cursor values, separated by commas, followed by a generic cursor. If the first specified cursor is incorrect or not found, the browser will move to the next cursor in the list until it finds a suitable one to use.

In case none of the user-defined cursors specified are valid or supported by the browser, the generic cursor at the end of the cursor list will be used.

Tip: The standard format commonly used for cursors is the .cur format. However, you can convert images such as .jpg and .gif into .cur format using freely available online image converter software.

a {
cursor: url("custom.gif"), url("custom.cur"), default;

In the example mentioned, custom.gif and custom.cur are custom cursor files that have been uploaded to your server space. The default cursor is the generic cursor that will be used if the custom cursor is missing or not supported by the viewer's browser.

Warning: When declaring a custom cursor, it's important to include a generic cursor at the end of the cursor list. This ensures that the custom cursor will render correctly.


What is a CSS cursor property?

The CSS cursor property is used to define the appearance of the cursor when it hovers over an HTML element. It allows web developers to customize the mouse cursor's appearance, providing visual feedback to users interacting with elements on a web page.

What are some of the common predefined cursor values in CSS?

CSS provides several predefined cursor values, each representing a different cursor style. Some common values include:

  • auto: The default cursor style, usually an arrow.
  • pointer: A hand-shaped cursor indicating a clickable element.
  • default: The default cursor for the browser.
  • text: A cursor indicating text selection.
  • move: A cursor indicating that the element can be moved.
  • crosshair: A crosshair cursor used for precise selection.

How can you create a custom cursor using an image?

You can create a custom cursor using the url() value of the cursor property. The url() value allows you to specify the path to an image file that will be used as the cursor. Here's an example:

.custom-cursor {
    cursor: url(cursor-image.png), auto;

In this example, the cursor-image.png file will be used as the cursor, and the auto keyword ensures that the browser's default cursor is shown if the custom cursor is not available.

Can you control the size of a custom cursor created using an image?

Unfortunately, the size of custom cursors created using the url() value is typically determined by the system and browser settings. You cannot directly control the size of the cursor through CSS. It's a good practice to use cursor images that are appropriately sized for optimal visual appearance.

How can you define a specific cursor style for a link when it's being hovered over and when it's active?

You can define different cursor styles for different link states using the :hover and :active pseudo-classes. For example:

/* Define cursor styles for different link states */
a {
    cursor: pointer; /* Default cursor for links */

a:hover {
    cursor: crosshair; /* Cursor when hovering over the link */

a:active {
    cursor: move; /* Cursor when the link is clicked/active */

How can you reset or remove a custom cursor from an element?

To reset or remove a custom cursor from an element and revert to the default cursor, you can use the auto value for the cursor property. For example:

.reset-cursor {
    cursor: auto;

This will set the cursor to the default style for the element.

Can you change the cursor style for the entire page or a specific area?

Yes, you can change the cursor style for the entire page or a specific area by targeting either the body element or a container element with appropriate CSS. For example, to change the cursor for the entire page:

body {
    cursor: crosshair;

To change the cursor for a specific area:

.container {
    cursor: pointer;


In concluding our exploration of CSS cursors, we've navigated the diverse world of cursor properties, from the familiar cursor pointer to various types and shapes in CSS cursor. Understanding the impact on the mouse pointer cursor and exploring the versatility of the CSS cursor property empowers designers to enhance user interactions.

Whether it's customizing the cursor text or changing it dynamically, each element plays a crucial role in refining the user experience. From the intricacies of HTML cursor manipulation to the broader spectrum of cursor types, CSS offers a toolkit for creating engaging and intuitive interfaces. So, as you continue your design journey, remember that the subtleties of cursors in CSS go beyond aesthetics;

CSS cursors offer web developers a way to enhance user experience and provide visual feedback. By using cursor properties, developers can customize the appearance of the cursor, creating engaging and interactive experiences for website visitors.