CSS makes custom cursors look like one line of code. Browsers add several rules that make them fail silently.
The syntax
.my-area { cursor: url("pointer.cur"), auto; }
The final keyword is required as the fallback.
The rules
128 px maximum. Chrome and Firefox refuse larger cursor images.
32 px is the practical size. Chrome hides cursors bigger than 32 px when they touch its own interface, and MDN recommends 32 x 32.
Multi-size .cur files backfire. Chrome and Firefox use the largest image, so a Windows-style file with 128 px inside shows a huge pointer.
Setting the click point
Two ways. Store it in a .cur file and give no numbers in the CSS, or use a PNG and give it in CSS, measured from the top-left:
cursor: url("pointer.png") 4 2, auto;
If it doesn't show
Check the file path, the image size, and the fallback keyword first.
To make a 32 px cursor with the click point stored inside, use the website preset in our free tool at flipconverto.com/convert/png-to-cur, which also has a live test box. It's our own tool.
Sources: MDN, "cursor" (https://developer.mozilla.org/en-US/docs/Web/CSS/cursor); W3C, CSS Basic User Interface Level 4.
Note: this article was drafted with AI assistance and checked against our own test results.
Frontend
Source:https://dev.to/flipconverto/custom-css-cursors-the-rules-browsers-actually-enforce-3n77
Custom CSS Cursors: The Rules Browsers Actually Enforce
dev.to CSS0 views

Related posts
Modeling a white elephant gift exchange in 140 lines of plain JavaScript
0dev.to JavaScript
Reading wrapped-BTC supply straight from Ethereum after the tBTC pause
0dev.to JavaScript
Video-Coder: The Open-Source Agent That Scripts a 3D Scene in Blender Before Making Your Video
0dev.to AI
Your hero banner looks fine. Now open it on an ultrawide screen.
0dev.to CSS
10/11
0dev.to CSS
I Built 806 Free CBT Tools in Vanilla JavaScript — Here's Why
0dev.to WebDev