CSS Cursors

In a world where user experience is important, web development lacks subtlety. The CSS cursor property is a subtle, but powerful, interaction tool. If you change the mouse pointer style when the cursor hovers over an element, you can lead users, indicate click zones, or simply add a playful design touch.

What's the CSS Cursor Property?

The cursor property in CSS allows developers to provide what type of mouse pointer should show when hovering over an HTML element. It helps indicate the nature of interaction — such as links, loading, text editing, or simply decorative effects.

Basic Syntax of CSS Cursor


    selector {
              margin: value;
    }
    

You assign a value that represents the desired cursor style. CSS provides a wide variety of built-in cursor types.

Common Cursor Values

Cursor Value Description
default The default arrow pointer
pointer Used for links or clickable elements
text Indicates text can be selected (I-beam)
move Used to indicate an object can be moved
wait Shows a loading icon (commonly a spinning circle or hourglass)
not-allowed Shows that the action isn't permitted
help Indicates help is available
crosshair Displays a cross-like target symbol
grab Indicates draggable content (open hand icon)
grabbing Indicates content is being dragged (closed hand icon)
none Hides the cursor completely

Example: Changing Cursor for Links


    a {
        cursor: pointer;
    }
    

This is a fun way to bring style! Although browsers automatically will select a pointer, to add a level of consistency it'll be good to add it explicitly.

Example: Text Selection Area


    input, textarea {
                    cursor: text;
    }
    

This gives users the I-beam cursor, indicating they can type or edit content.

Example: Custom Cursors with Images

You can also use a custom image as a cursor:


    div {
        cursor: url('custom-cursor.png'), auto;
    }
    

When you go to load your image as a cursor, the browser will try to load it and fail and then it will try auto. Note the image should be small and in the correct format (.cur or .png).

Stylish Use Cases for CSS Cursor

Responsive Design Tip

Make sure that your cursor styles do not harm usability on mobile devices where cursors do not exist. Always test hover and interaction-based styles for touch interfaces too.

Full Example: Interactive Box


      .box {
            width: 150px;
            height: 150px;
            background-color: lightblue;
            cursor: move;
      }

      .box:hover {
                  background-color: steelblue;
      }
    

     <div class="box" > Hover me!</div>
    

In this example, the box changes color on hover, and the cursor turns into a move icon — suggesting drag functionality.

Conclusion

On first glance, the difference that CSS cursors can make seem trivial. But in fact, CSS cursors directly affect how users feel during their interactions on your site. Whether you are directing users to buttons, displaying loading states, or applying fun design aesthetics — the cursor property is another tool you should keep in your front-end toolbox.

So go ahead, Bhai — sprinkle some interactivity and polish into your interfaces using CSS cursors. Your users will thank you!

Try it Yourself