CSS Cursor Style Previewer
Test and preview all CSS cursor types with interactive examples and code generation
All Cursor Types
basic Cursors (2)
auto
basicBrowser determines cursor based on context
default
basicDefault arrow cursor
special Cursors (6)
none
specialNo cursor visible
crosshair
specialCrosshair cursor for precise selection
cell
specialCell selection cursor
all-scroll
specialAll-direction scroll cursor
no-drop
specialInvalid drop target cursor
not-allowed
specialAction not allowed cursor
interactive Cursors (5)
pointer
interactiveHand pointer for clickable elements
help
interactiveQuestion mark or help cursor
context-menu
interactiveContext menu available cursor
progress
interactiveBackground process running
wait
interactiveSystem busy, wait cursor
text Cursors (2)
text
textI-beam cursor for text selection
vertical-text
textVertical text selection cursor
drag Cursors (5)
grab
dragOpen hand for grabbable elements
grabbing
dragClosed hand while dragging
move
dragFour-way arrow for moving
copy
dragCopy operation cursor
alias
dragAlias/shortcut creation cursor
resize Cursors (14)
col-resize
resizeColumn resize cursor
row-resize
resizeRow resize cursor
n-resize
resizeNorth resize cursor
e-resize
resizeEast resize cursor
s-resize
resizeSouth resize cursor
w-resize
resizeWest resize cursor
ne-resize
resizeNortheast resize cursor
nw-resize
resizeNorthwest resize cursor
se-resize
resizeSoutheast resize cursor
sw-resize
resizeSouthwest resize cursor
ew-resize
resizeEast-west resize cursor
ns-resize
resizeNorth-south resize cursor
nesw-resize
resizeNortheast-southwest resize cursor
nwse-resize
resizeNorthwest-southeast resize cursor
zoom Cursors (2)
zoom-in
zoomZoom in cursor
zoom-out
zoomZoom out cursor
Generated CSS
pointer
Hand pointer for clickable elements
Use case: Links, buttons, clickable elements
How to Use the CSS Cursor Style Previewer
1. Browse Cursor Types
Explore our comprehensive collection of CSS cursor types organized by categories:
- Basic: auto, default, none
- Interactive: pointer, help, context-menu, progress, wait
- Text: text, vertical-text
- Drag: grab, grabbing, move, copy, alias
- Resize: All directional resize cursors
- Zoom: zoom-in, zoom-out
- Special: crosshair, cell, all-scroll, no-drop, not-allowed
2. Test in Preview Area
Move your mouse over the large preview area to see how each cursor looks and behaves. The draggable element helps you test grab and grabbing cursors in action.
3. Interactive UI Testing
Test cursors on real UI elements like buttons, inputs, links, and draggable components to understand how they work in practical scenarios.
4. Copy CSS Code
Get the exact CSS code for any cursor style. Copy individual properties or complete CSS rules ready to paste into your stylesheets.
Complete Guide to CSS Cursors
Understanding CSS Cursor Property
The CSS cursor property specifies the mouse cursor to be displayed when pointing over an element. It's essential for creating intuitive user interfaces that guide user interactions.
Basic Syntax:
cursor: pointer;When to Use Different Cursors
pointer
Links, buttons, clickable elements
text
Text inputs, editable content
grab/grabbing
Draggable elements, maps
resize cursors
Resizable elements, table columns
wait/progress
Loading states, processing
not-allowed
Disabled elements, forbidden actions
crosshair
Drawing tools, precise selection
zoom-in/zoom-out
Image viewers, maps
Custom Cursors
You can use custom cursor images with the url() function:
cursor: url('custom-cursor.png') 10 10, pointer;The numbers (10 10) specify the hotspot coordinates, and 'pointer' is the fallback cursor.
CSS Cursor Best Practices
Use Semantic Cursors
Choose cursors that match the expected interaction (pointer for clickable, text for editable)
Provide Fallbacks
Always include fallback cursors for custom cursor images
Consider Accessibility
Ensure cursor changes are meaningful and don't confuse users with disabilities
Test Across Browsers
Cursor appearance can vary between browsers and operating systems
Optimize Custom Cursors
Keep custom cursor files small (under 32x32px) for best performance
Frequently Asked Questions
What are CSS cursors?
CSS cursors are visual indicators that show what action will occur when a user interacts with an element. They provide important visual feedback and improve user experience by indicating clickable areas, text fields, draggable elements, and more.
How many cursor types are available in CSS?
CSS provides over 30 standard cursor types, including basic cursors (auto, default), interactive cursors (pointer, help), text cursors, drag cursors, resize cursors, zoom cursors, and special cursors. You can also use custom cursor images.
Can I use custom cursor images?
Yes! You can use custom cursor images in PNG, SVG, or ICO format. Use the url() function with hotspot coordinates and always provide a fallback cursor. Keep images small (32x32px or less) for optimal performance.
Do cursors look the same across all browsers?
While all modern browsers support standard CSS cursors, the exact appearance may vary between browsers and operating systems. It's important to test your cursor implementations across different platforms to ensure consistent user experience.
When should I use the 'grab' vs 'grabbing' cursor?
Use 'grab' (open hand) to indicate that an element can be dragged, and 'grabbing' (closed hand) during the actual drag operation. This provides clear visual feedback about the current state of the interaction.
How do I make cursors accessible?
Ensure cursor changes are meaningful and consistent with user expectations. Don't rely solely on cursor changes to convey important information. Provide additional visual cues like hover states, and ensure your interface works well with keyboard navigation.
Technical Implementation
CSS Cursor Syntax
Basic cursor:
.element { cursor: pointer; }Custom cursor with fallback:
.element { cursor: url('cursor.png') 10 10, pointer; }Multiple fallbacks:
.element { cursor: url('cursor.png'), url('fallback.cur'), pointer; }JavaScript Cursor Control
// Change cursor dynamically
element.style.cursor = 'pointer';
// During drag operations
element.addEventListener('mousedown', () => {
element.style.cursor = 'grabbing';
});
element.addEventListener('mouseup', () => {
element.style.cursor = 'grab';
});Related Tools
CSS Filter Tester
Test CSS image filters with live preview, upload support, presets, and copy-ready filter code
CSS Animation Previewer
Preview CSS timing functions and cubic-bezier curves with live playback and copy-ready animation code
Neumorphism Generator
Generate raised and pressed neumorphic UI styles with live preview and copy-ready CSS output