Submit an extension

↑↓ move · ↵ open · Tab filter · Esc close

Free tool · Images & media

Custom Cursor Maker: Design, Test and Download Your Own Cursor

Pick a shape or upload an image, set where it clicks, try it on the pad, then download a PNG or .CUR file and copy the CSS. Nothing leaves your browser.

  • Free, no sign-up
  • Runs in your browser
  • Works on mobile
1. Start from
Shape

2. Set the hotspot (the exact pixel that clicks)
Your cursor preview. Use the hotspot X and Y number fields below to set its click point.

Click or drag on the preview, or focus it and use the arrow keys (hold Shift for 5 pixels). The ring marks the hotspot.

This size on your screen

The cursor at its real size in CSS pixels

Shown at 32 CSS pixels, the size the cursor takes up in the page. The dashed square is 32 px, the size MDN recommends staying under.

3. Try it: move over the box and click

Your cursor is applied to this box only.

Each click drops a ring where the browser reports the pointer. If the ring is centred on the tip of your cursor, the hotspot is right. Real cursors are drawn by your operating system, so the pad only works with a mouse or trackpad.

4. Export

The fallback after the URL is required by CSS: the browser uses it if your image fails to load. A .CUR file already stores its hotspot, so that snippet has no coordinates.

Limits you should know

  • Your pages only. This makes a cursor you can put on a website you control with CSS. A website cannot change your system cursor or how other sites look.
  • 128 x 128 px maximum in Chrome and Firefox (MDN); MDN recommends 32 x 32 or smaller. Larger images are generally ignored.
  • Over 32 px, Chrome can hide it. Since Chrome 75, a custom cursor wider or taller than 32 DIP is removed when any part would fall outside the page area, so it flips to the default pointer near window edges.
  • Want it on every site? Use a browser extension. See custom cursor Chrome extensions.

This tool needs JavaScript. If this line does not change, JavaScript is off or blocked on this page.

A custom cursor is an image the browser shows instead of the normal pointer, set in CSS with cursor: url() x y, auto. This free custom cursor maker draws one from a preset or your own image, lets you set the hotspot, and exports a PNG, a .CUR file and the CSS. It works on pages you control.

Last checked · Independent, not affiliated with Google

Your data Everything runs in your browser. Shapes are drawn on a canvas on your device, an image you choose is read locally and never uploaded, and the PNG, .CUR file and CSS are built inside the page. find-extensions.com receives nothing you make, and this tool stores no settings or images.

How to use the Custom Cursor Maker

  1. Choose a shape or your own image

    Pick a preset (arrow, dot, ring, crosshair, hand or I-beam), or switch to My own image and drop a PNG, SVG, WebP, GIF or JPG. GIFs use their first frame.

  2. Set size, colours and outline

    Drag the size slider between 16 and 128 px, or tap a quick size. For presets, choose a fill colour, an outline colour and width, and an optional soft shadow.

  3. Place the hotspot

    Click or drag on the zoomed preview, focus it and press the arrow keys, or type the X and Y numbers. The hotspot is the one pixel that counts as the click point.

  4. Try it on the pad

    Move over the pad to see the real cursor. Click to drop a ring where the browser reports the pointer; it should sit on the tip you chose.

  5. Export

    Download the PNG or a .CUR file, or copy the CSS. Choose an embedded data URL for one self-contained rule, or a file path if you will host the image.

What is a custom cursor and what does this maker do?

A custom cursor replaces the standard arrow, hand or text pointer with an image of your choice while the mouse is over part of a page. Browsers read it from the CSS cursor property, so it is plain styling: no plugin, no script.

This custom cursor maker covers the whole job in one page. You build the image, mark the click point, test it under a real pointer, and leave with files and a CSS rule.

  • Build: six preset shapes with your colours, outline and shadow, or your own image scaled to fit.
  • Aim: a zoomed preview with a click-to-set hotspot and numeric fields for exact placement.
  • Test: a live pad that applies the cursor with CSS, using the same rule you will export.
  • Export: PNG, a real .CUR file, and copy-paste CSS.

How do you make a custom cursor for your own website?

Make the image, choose its hotspot, then point the cursor property at it. The rule has three parts: the image URL, two optional hotspot numbers, and a required fallback keyword such as auto that the browser uses if the image fails to load.

.custom-cursor {
  cursor: url("custom-cursor.png") 4 2, auto;
}

/* on links only */
a { cursor: url("custom-cursor.png") 4 2, pointer; }

To make a CSS custom cursor apply everywhere, put the rule on body. Links, buttons and text fields set their own cursor, so add rules for them too, with a pointer or text fallback.

Data URL or file?

A data URL puts the image inside the CSS, so there is nothing extra to host. A file path keeps the stylesheet short and lets the browser cache the image. The snippet box switches between both, plus a .CUR variant.

What is the cursor hotspot and where should it go?

The hotspot is the single pixel inside the image that counts as the pointer position. It is measured in image pixels from the top-left corner, which is 0 0, and browsers clamp it to the image. If you leave it out, the browser reads one from the file if it has one, and otherwise uses the top-left corner.

The hotspot is a pixel inside the image, not the centre of it.
  • Arrows and pointing hands: put it on the tip, so the click lands where the user sees the point.
  • Dots, rings and crosshairs: put it in the centre.
  • I-beams: put it in the middle of the vertical line.
  • Your own image: start at the visible point you want to click with, not at the image edge.

This tool sets each preset's hotspot for you. Use Preset default to return to it after experimenting. A wrong hotspot is the most common reason a home-made cursor feels off, because clicks land a few pixels away from where you aimed.

What custom cursor size should you use?

Use 32 by 32 pixels or smaller. MDN says Firefox and Chromium restrict cursor images to 128 by 128 pixels by default, that images over the limit are generally ignored, and that it recommends limiting cursor images to 32 by 32.

Custom cursor size guide
SizeGood forWhat to know
16 to 24 pxDots, small rings, subtle pointersVery little room for detail; keep shapes simple
32 pxMost cursorsWithin the size MDN recommends; the safe default
48 pxEasier to see, brand mascotsOver 32 px, so Chrome may remove it near the window edge
64 pxDemos and large-pointer accessibility ideasCovers a lot of the page; same edge rule applies
128 pxNothing routineThe upper limit; larger images are generally ignored

The This size on your screen panel shows your cursor at real size in CSS pixels beside a 32 px dashed square. Need brand colours first? Sample them with the color picker from an image.

PNG, SVG or a .CUR file: what should you download?

For the web, use PNG. The CSS specification requires browsers to support PNG cursors, and SVG with a natural size, while MDN notes desktop browsers also broadly support the .cur format. This tool exports a custom cursor PNG and a .CUR file from the same canvas.

Which export to use
FormatUse it whenHotspot stored
PNGCursor on a website via CSSIn your CSS (x y)
Data URL in CSSYou want one self-contained stylesheetIn your CSS
.CURA desktop tool or Windows pointer scheme expects a cursor fileInside the file

A .CUR is the Windows cursor file. It uses the same layout as an .ICO file, with the type field set to 2 and the hotspot stored in the two fields icons use for planes and bit count. The maker builds that file in your browser and embeds the PNG unchanged, which Windows has supported in icon files since Vista.

A one-image .CUR file: a 6-byte header, a 16-byte entry, then the PNG.

If a program rejects the .CUR, use the PNG: support for PNG data inside cursor files varies, and this tool does not check every program. Starting from a logo? Turn it into a PNG with the SVG to PNG converter.

How do you get a custom cursor for Chrome on every site?

Use a browser extension. A page's CSS only reaches that page, so a cursor that follows you across the web has to be injected into each site by an extension. That is why searches for a custom cursor for Chrome and a custom cursor for Chrome extension end at the Chrome Web Store, not at a website.

Where each approach changes the cursor
ApproachWhere it appliesBest for
CSS on your site (this tool)Only pages that include your CSSBrand cursors, games, kiosks, demos
Browser extensionWeb pages in that browserPersonal taste while browsing
ChromeOS settingsSystem pointer: size and colour onlyVisibility
Windows pointer schemeThe Windows desktop, using .CUR filesA full custom mouse cursor on Windows

Check an extension's permissions before you install it. Changing a cursor on every page usually needs access to all sites, which is worth weighing for a cosmetic feature. The custom cursor extension guide explains what to look for.

You can also build your own: an extension can inject the CSS this tool gives you into pages. That is a development task and outside what this page does.

Can you set a custom cursor for a Chromebook?

Only its size and colour. Google's Chromebook help lists cursor options in the accessibility features: you can change the cursor's size or colour, and turn on cursor highlighting. There is no setting for a custom cursor image at the system level.

  1. Open Settings and choose Accessibility.
  2. Open Cursor and touchpad.
  3. Turn on the large cursor or change its size and colour.
  4. Use an extension if you want a custom image on web pages.

Extensions can change the cursor on web pages in Chrome on a Chromebook, but not the pointer on the shelf, launcher or other apps. If you build a site for Chromebook classrooms, the CSS from this custom cursor maker works in the browser like anywhere else, with the same size rules.

What about custom cursor trails and animated cursors?

The CSS cursor property shows one image. It does not draw a trail. Custom cursor trails on a web page are built with script that places elements behind the pointer, and extensions can add them to sites you visit.

Animation is also limited. MDN says browsers must support static formats such as PNG and secure static SVG, while animated formats are something they should support. That is why this maker uses the first frame of a GIF and does not create animated cursors.

  • On your site: a trail is a design and performance choice; test it on slow devices and respect reduced-motion settings.
  • In Chrome: trail extensions handle pages you visit.
  • On Windows: the operating system has its own pointer trails option in its mouse settings, separate from any web page.

Why is my custom cursor not showing?

Usually the image is too big, the URL is wrong, the fallback keyword is missing, or another CSS rule overrides yours. Work through this list.

  • Over 128 px: browsers generally ignore it. Stay at 32 px or less.
  • No fallback: cursor: url(a.png) 0 0 is invalid; add , auto.
  • Wrong path: the URL is relative to the stylesheet, not the page.
  • Over 32 px near the edge: Chrome can swap it for the default pointer.
  • A specific element rule: links and inputs set their own cursor; target them.
  • Touch screens: a phone or tablet has no mouse pointer to restyle.

Prefer it in your toolbar?

This page works in any browser. If you do this every day, a Chrome extension puts it one click away. These are the picks we'd start with.

Best custom cursor Chrome extensions

Custom Cursor Maker: FAQs

How do I make a custom cursor for my website?

Create a small image, choose its hotspot, and add cursor: url("file.png") x y, auto; to your CSS. This tool builds the image and hotspot and writes the rule for you. Test it on the pad, then paste the snippet into your stylesheet.

What is a cursor hotspot?

The hotspot is the pixel in the image that counts as the click point. It is measured from the top-left corner, which is 0 0. Put it on the tip of an arrow or hand, and in the centre of a dot, ring or crosshair.

What is the best custom cursor size?

Use 32 by 32 pixels or smaller. MDN says Firefox and Chromium limit cursor images to 128 by 128 and recommends 32 by 32. Chrome can also remove custom cursors over 32 px when they would leave the visible page area.

How do I get a custom cursor for Chrome?

Install a cursor extension for every site, or add CSS to a site you own. A website tool like this cannot change the pointer on other pages. The extension route works across sites; the CSS route works only where your CSS loads.

Can I make a custom cursor for Chrome extension use?

Yes. An extension can inject the same CSS rule into pages it runs on. Build the PNG and hotspot here, copy the CSS, and use a content script or stylesheet in your extension. Test on real pages, since page styles can override it.

Can I get a custom cursor for Chromebook?

Not as a system-wide image. ChromeOS accessibility settings let you change cursor size and colour. A cursor extension can change the pointer on web pages in Chrome, but not the shelf, launcher or other apps.

Can I use a custom mouse cursor on my whole computer?

Not from a website. This tool cannot change your operating system pointer. On Windows you can export a .CUR file here and choose it in the Mouse settings under Pointers. On other systems, use that system's own settings.

Where can I find a custom cursor download?

Download the PNG or .CUR you make here, which is yours to use. For ready-made packs, browse extension galleries or cursor sites, and check each pack's licence before using it on a public site or in a product.

Can I add custom cursor trails?

Not with this tool or the CSS cursor property alone. Trails need script that draws elements behind the pointer, or an extension. Windows also has its own pointer trails option in its mouse settings, separate from any web page.

Should I use PNG, SVG or a CUR file for CSS?

Use PNG for CSS. Browsers must support PNG cursors, SVG works if it has a natural size, and .CUR is widely supported on desktop according to MDN. A .CUR is mainly for Windows pointer schemes and tools that ask for that format.

Why does my large cursor turn back into the normal one?

Chrome removes custom cursors over 32 px when they would not fit fully inside the visible viewport, which happens near window edges. Shrink it to 32 px or less. Cursors over 128 px are generally ignored everywhere.

Can I use an animated GIF as a cursor?

This tool uses only the first frame of a GIF. Browsers must support static images for cursors, and animated formats are only something they should support, so results vary. For motion, use a script-based effect on your own page.

Is the custom cursor maker private?

Yes. Shapes are drawn and files are built in your browser. Images you choose are read locally, not uploaded, and nothing you make is sent to find-extensions.com. Closing the tab discards the work, so download what you need.

Sources and further reading