Home Tools Blog About

CSS Cursor Generator

In short

Browse 34 CSS cursors organized by category, with custom URL cursor builder. Live hover preview. Free, client-side.

  • Runs in your browser
  • Nothing uploaded
  • Free, no sign-up

Browse 34 CSS cursors organized by category (General / Text / Interactive / Drag / Resize / Specialty). Hover each card to preview. Custom URL cursor builder for image-based cursors with hotspot offset.

Selected: pointer

CSS


      

HTML


      
🛡
100% PrivateNo server uploads, ever
InstantRuns in your browser
💧
No WatermarksClean output, always
🆓
Free ForeverNo accounts, no limits

How to Use CSS Cursor Generator

CSS Cursor Generator · free online tool · All Tools Verse
CSS Cursor Generator. Free online tool that runs in your browser.
  1. Set a CSS selector (default .element) - your CSS rule targets this.
  2. Pick mode. Keyword: click a card from the 34 system cursors organized by category. Custom URL: paste an image URL + hotspot offset + fallback keyword.
  3. Hover each cursor card to preview how the cursor looks. Click to select.
  4. For custom URL cursors: set hotspot X/Y (the pixel inside the image that points "where you're actually clicking" - for a crosshair, this is the center). Always specify a fallback keyword in case the image fails to load.
  5. Copy CSS, copy HTML, or download as cursor.css.

Frequently Asked Questions

Should buttons use cursor: pointer or cursor: default?

Operating systems only switch to the hand cursor for links, so native desktop buttons keep the arrow. On the web, however, users learned to expect pointer on anything clickable, and most design systems (including Bootstrap and Material) apply it to buttons. The practical rule: use pointer for any element that triggers an action on click, and keep default for static text, so the cursor change becomes a reliable signal of interactivity.

What’s a hotspot?

The X/Y pixel inside the cursor image that represents the actual click point. For a default arrow, the hotspot is usually the tip (0, 0 – top-left). For a crosshair, the center (e.g., 16, 16 for a 32×32 image). For a hand pointing finger, the fingertip. Setting hotspot incorrectly makes clicks land where the cursor’s not actually pointing.

Why specify a fallback keyword for URL cursors?

If the image fails to load (network error, blocked, file moved), the browser uses the fallback keyword instead of breaking. Without a fallback, your cursor disappears entirely. Always pick a fallback that semantically matches your custom cursor (e.g., pointer for a clickable custom hand, crosshair for an aimer).

What’s the max custom cursor size?

Chrome / Firefox / Edge: 128×128 px. Safari: 32×32 px (smaller maximum). Larger images may be ignored entirely or downscaled – test in your target browsers. Use a 32×32 transparent PNG for maximum compatibility.

Why do cursors look different on macOS vs Windows?

System keywords (pointer, text, etc.) map to whatever the OS draws for that cursor. macOS has a distinctive arrow shape; Windows uses thinner cursors; Linux varies by theme. Same CSS, different visuals. Custom URL cursors look identical everywhere because the image is bundled.

Do all cursors work on every device?

Touch devices (phones, tablets) have no visible cursor – your cursor CSS does nothing on mobile. Desktop browsers with pointing devices (mouse, trackpad, stylus) honor cursor CSS. For accessibility, also handle keyboard focus styling – not all users see cursors.

What’s the difference between auto, default, and none?

auto: browser picks based on element (text cursor on text, arrow elsewhere). default: forces the system default arrow regardless of element type. none: hides the cursor entirely – useful for video players and fullscreen experiences. The original FAQ glossed over these distinctions.

What’s grab vs grabbing?

grab: open-hand cursor signaling “you can grab this.” grabbing: closed-fist cursor for “you’re currently dragging.” Switch between them in JS based on mousedown/mouseup events for proper drag feedback.

Can I animate cursor changes?

No – CSS transitions don’t apply to the cursor property. It snaps instantly. For animated cursors, use an animated .gif or .png APNG file in the URL – but support is patchy (some browsers freeze the animation on the first frame).

Is anything uploaded?

No. The image URL you enter for custom cursors is fetched by your browser when applied to a page – never by this tool. Pure browser-side CSS generation.

Keep going

Related Tools

All Developer tools →

CSS Animation Generator

Generate CSS @keyframes animations - 16 presets, full duration/timing/delay/direction/fill controls, prefers-reduced-motion wrapper. Live preview.…

CSS Aspect Ratio

Generate CSS aspect-ratio with padding-top fallback, object-fit options, 16+ presets, decimal input. Live preview.…

CSS Beautifier

Beautify or minify CSS with proper nested @media/@keyframes/@supports handling, comment preservation, calc()/var() awareness. Free,…

CSS Border Radius Generator

Visual CSS border-radius with elliptical mode, 6 unit types (px/%/em/rem/vw/vh), 8 shape presets, live…

CSS Clip Path Generator

Visual clip-path builder - polygon / circle / ellipse / inset / path, 20+…

CSS Columns Generator

Generate CSS multi-column layout with column-count or column-width, gap, rule, fill, span, break-inside. Live…

CSS Filter Generator

Generate CSS filter with 10 functions including drop-shadow, backdrop-filter mode, 8 preset combinations. Live…

CSS Flexbox Generator

Visual flexbox builder with container + per-item controls (flex-grow/shrink/basis/order/align-self) and 6 layout presets. Free,…

CSS Glassmorphism Generator

Visual frosted-glass CSS builder. 9 controls including backdrop-saturate, 6 presets, 4 background scenes to…

CSS Gradient Generator

Visual gradient builder with 6 types (linear, radial, conic + 3 repeating). 8 presets,…

CSS Grid Generator

Visual CSS Grid builder with grid-template-areas, auto-fit + minmax responsive tracks, per-item spans. 6…

CSS Media Query Generator

Build @media queries: width, dark mode, reduced-motion, hover, pointer, orientation, print. Free, offline, client-side,…

Share

Embed this tool

Add this free tool to your website. Copy and paste the code: