Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

What is the Cursor Property in CSS?

CSS, or Cascading Style Sheets, is a language that determines how web content is presented, including layout, colors, and fonts. One important aspect of CSS is its ability to control the appearance and behavior of the cursor on a web page. The cursor is the visual representation of the user's input device, often a mouse pointer or a text insertion marker. By modifying the cursor property in CSS, you can enhance the user experience and provide helpful visual cues to your users.

In this blog, we'll explore the cursor property, its values, and practical applications. We'll also provide code examples to help you understand how to use this property effectively.

Introduction to the Cursor Property

The cursor property is a CSS property that allows you to change the appearance of the cursor when it's over an element on a webpage. It takes various keyword values that represent different types of cursors. You can also use a custom image as a cursor by providing a URL value.

Here is an example of how the cursor property is used:

.button {
  cursor: pointer;

In this example, the cursor will change to a pointer (usually a hand icon) when it is over an element with the class "button". This is a common practice for indicating that an element is clickable.

Cursor Values

There are many different values you can use with the cursor property. Let's explore some of the most common ones:


The default value sets the cursor to the default cursor for the user agent (usually an arrow). This is the default value for the cursor property if it's not explicitly set.

.element {
  cursor: default;


The pointer value changes the cursor to a hand with a pointing finger, indicating that the element is a link or a clickable object.

.button {
  cursor: pointer;


The text value changes the cursor to a text insertion marker (usually an I-beam), which suggests that the element contains text that can be selected.

.paragraph {
  cursor: text;


The wait value displays a wait cursor (usually an hourglass or a spinning circle), indicating that an operation is in progress and the user should wait.

.loading {
  cursor: wait;


The help value displays a cursor with a question mark or a balloon, suggesting that the element offers help or more information.

.info {
  cursor: help;


The not-allowed value shows a cursor with a cross or a circle with a diagonal line, indicating that the action is not available or not permitted.

.disabled {
  cursor: not-allowed;

Custom Images

To use a custom image for your cursor, you can provide a URL value followed by one or two coordinates that define the hotspot of the cursor. The hotspot is the point within the cursor image that corresponds to the actual cursor position.

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

In this example, the hotspot is set to be 16 pixels from the top and 16 pixels from the left of the cursor image. The auto value as a fallback ensures that if the custom image is not available, the browser will use its default cursor.

Practical Applications

Now that we understand the cursor values let's explore some practical applications for using the cursor property in CSS.

Indicating Clickable Elements

It's important to provide visual cues to the user to indicate which elements on a webpage are interactive. By changing the cursor to a pointer, you can show users that an element is clickable, like in this example:

.button, .link {
  cursor: pointer;

Loading Indicators

When a user initiates an action that requires some waiting or loading time, it's helpful to signal that the process is underway. By changing the cursor to a wait cursor, you can inform users that they should wait for the action to complete.

body.loading {
  cursor: wait;

Tooltips and Help Information

For elements that provide additional information, such as tooltips or help icons, you can use the help cursor to indicate that the user can interact with the element to access more information.

.tooltip, .help-icon {
  cursor: help;


The cursor property in CSS offers a simple yet powerful way to enhance user experience and provide helpful visual cues. By understanding the various cursor values and their use cases, you can create more intuitive and user-friendly web pages.

Remember to keep your users in mind when implementing cursor changes and always prioritize usability and accessibility. Custom cursors can be fun and engaging, but make sure they don't hinder the overall user experience. Happy coding!