Pricing
Get Started
  • Introduction
  • Installation
  • MCP Server
  • Saved
Site
  • Builder (Beta)
  • Pricing
  • Roadmap
  • Affiliates
Browse
  • All Components80 New
Text34
  • 3D Letter Swap
  • 3D Text Reveal
  • ASCII Ripple
  • Bending Marquee
  • Blur Highlight
  • Cipher RevealNew
  • Domino LetteringNew
  • Elastic LetteringNew
  • Ghost TypeNew
  • Glitch Text
  • Glyph LotteryNew
  • Gravity LettersNew
  • Label OrbitNew
  • Luminous TypeNew
  • Mesh LetteringNew
  • Orbital TypeNew
  • Particle Text
  • Ribbon TypeNew
  • Rising InkNew
  • Shatter TypeNew
  • Signal TypeNew
  • Smoke TypeNew
  • Speeding Text
  • Spring LetteringNew
  • Staggered Text
  • Stipple TypeNew
  • Tessera TrailNew
  • Text Cube
  • Text MorphNew
  • Text Path
  • Text Scatter
  • Typographic WallNew
  • Vapor TypeNew
  • Wave LetteringNew
Backgrounds98
  • ASCII Tiles
  • Ascii Waves
  • Astral ShellNew
  • Aura Blob
  • Aurora Beam
  • Aurora Blur
  • Axial BeamNew
  • Binary OrbitsNew
  • Black Hole
  • Blinking Dots
  • Blinking Squares
  • Blurred Rays
  • Chroma Blinds
  • Chroma CurrentNew
  • Chroma Waves
  • Cloud AtlasNew
  • Color Loops
  • Concentric TidesNew
  • Contour TideNew
  • Dappled LightNew
  • Dither Wave
  • Dot Shift
  • Eclipse
  • Fading StarsNew
  • Falling Rays
  • Flame Paths
  • Fog Sphere
  • Glass Flow
  • Glass Tiles
  • Glimmer WrapNew
  • Glitter Warp
  • Glowing Ridges
  • Glowing Wave
  • Glue Dots
  • Glyph EmberNew
  • Glyph OrbNew
  • Glyph SonarNew
  • Glyph TideNew
  • Gradient Bars
  • Grain Wave
  • Halftone Vortex
  • Halftone Wave
  • Hexagonal VaultNew
  • Horizon BloomNew
  • Interference RibbonsNew
  • Landscape
  • Light Droplets
  • Lightspeed
  • Liquid Bars
  • Liquid Lines
  • Long Exposure
  • Luminous FilamentsNew
  • Metallic Swirl
  • Minimal Ripple
  • Mosaic
  • Mosaic Waves
  • Neon Reveal
  • Neural Flash
  • Neural Float
  • Neural Tunnel
  • Nexus RaysNew
  • Perspective Grid
  • Photon KnotNew
  • Pixel Rain
  • Prismatic SlatsNew
  • Radial Liquid
  • Ravine
  • Retro Lines
  • Ring FieldNew
  • Rising Lines
  • Rising Particles
  • Rolling Blinds
  • Rotating Stars
  • Rubber Fluid
  • Satin RidgesNew
  • Shader Waves
  • Shadow Bars
  • Silk Waves
  • Simple Swirl
  • Specter Orb
  • Spectral Clouds
  • Spectral DrapeNew
  • Spiral FunnelNew
  • Square Matrix
  • Squares Terminal
  • Squircle Shift
  • Star Swipe
  • Swirl Blend
  • Synaptic Shift
  • Tech Wall
  • Terminal RainNew
  • Thinking Dots
  • Twilight Lines
  • Vortex
  • Voxel ArcNew
  • Warp Twister
  • Watercolor
  • Wireframe Ball
3D & Shaders49
  • Agentic Ball
  • AI Blob
  • Album RailNew
  • Bend Gallery
  • Chrome OrbitNew
  • Circle Stack
  • Concave CarouselNew
  • Constellation GalleryNew
  • Contact SheetNew
  • Depth Card
  • Depth Image
  • Depth RibbonNew
  • Device
  • Dolly Gallery
  • Elastic ReelNew
  • Elastic StickerNew
  • Ember RevealNew
  • Expanding GridNew
  • Frame Border
  • Glass Reveal
  • Globe
  • Gradient Blob
  • Helix GalleryNew
  • Infinite Gallery
  • Inverted Dome
  • Iris GalleryNew
  • Lenticular Carousel
  • Momentum RingNew
  • Page Flip
  • Parallax Carousel
  • Particle Image
  • Particle Morph
  • Passage GalleryNew
  • Pixel Reveal
  • Pixel Sculpt
  • Pixelate Hover
  • Pond ImageNew
  • Portal
  • Prism CarouselNew
  • Rotating Cards
  • Scroll BendNew
  • Scroll Portal
  • Shader Card
  • Shader Reveal
  • Spin ShutterNew
  • Star Burst
  • Tumble Carousel
  • Twisting Gallery
  • Warped Card
Cursor Effects21
  • Arc CursorNew
  • Ascii Cursor
  • Celebration CursorNew
  • Chroma HaloNew
  • Cursor Wave
  • Custom Cursor
  • Dither Cursor
  • Drafting CursorNew
  • Glass Cursor
  • Glyph StreamNew
  • Grid Rise
  • Gyroscope CursorNew
  • Liquid Ascii
  • Parallax Pills
  • Pigment TrailNew
  • Pixel Magnet
  • Ribbon TrailNew
  • Smooth Cursor
  • Snapshot TrailNew
  • Stardust CursorNew
  • User Cursor
UI & Cards28
  • Animated List
  • Card Spread
  • Center Flow
  • Chroma Card
  • Circle Gallery
  • Circles
  • Click Stack
  • Comparison Slider
  • Credit Card
  • Draggable Grid
  • Frame Scrub
  • Gradient Carousel
  • Hover Preview
  • Liquid Swap
  • Loupe ImageNew
  • Magic Transform
  • Modal Cards
  • Orbit ReelNew
  • Parallax Cards
  • Preloader
  • Reel Gallery
  • Scroll Mask
  • Scroll Stack
  • Simple Graph
  • Skewed Carousel
  • Tile Reveal
  • Tilted Tiles
  • Tumble WallNew
  1. Docs
  2. Components
  3. Cursor Effects
  4. Drafting Cursor
PreviousDither CursorCursor EffectsNextGlass CursorCursor Effects

Animated components, blocks, and templates for React. Pay once, ship stunning pages forever.

pro@reactbits.dev

Site

HomeBuilder (Beta)PricingTestimonialsFAQsRoadmapChangelogFree Components

Docs

IntroductionInstallationMCP ServerComponentsBlocksTemplates

Resources

AboutUse casesComparisonsAlternativesFor AI agents

Legal & Account

LoginAffiliateLicensePrivacyContact

© 2026 pro.reactbits.dev. All rights reserved.

Drafting Cursor

Hairline crosshairs with edge rulers, a coordinate readout and drag-to-measure

drafting-cursor-tw

Customize

Ink
Accent
Line Width
1.00px
Line Opacity
0.35
Gap
9px
Edge Fade
0.00
Marker Size
6px
Ruler Size
20px
Tick Spacing
10px
Grid
0px
Smoothing
0.00
Measure Hold
2.5s
Max Pins
4
Pin Life
8s
Intro Duration
0.70s
Autoplay Speed
1.00
Idle Delay
1.50s

Props

43
NameTypeDefaultDescription
colorstring"currentColor"Ink of the crosshair, rulers, guides and pin notes, and the fill of the ink chip. The default inherits the surrounding text colour, so it follows light and dark themes.
accentColorstring"#7B5CFF"Colour of the marker, the ruler notches, pins and the measuring line. Chip text picks black or white automatically for contrast.
lineWidthnumber1Hairline thickness in CSS pixels. Lines snap to whole device pixels so they stay sharp on every screen.
lineStyle"solid" | "dashed" | "dotted""solid"Stroke of the crosshair. Dashes are anchored to the page, so they never crawl as the cursor moves.
lineOpacitynumber0.35Opacity of the crosshair, from 0 to 1. The measuring guides scale with it.
gapnumber9Clear radius in pixels around the exact point, where the lines stop. It tightens while a button is held.
edgeFadenumber0Fades the crosshair out towards the edges of the component, from 0 (none) to 1 (long fade).
marker"dot" | "ring" | "square" | "cross" | "none""dot"Shape drawn at the exact point. Over links and buttons a thin ring opens around it.
markerSizenumber6Diameter of the marker in pixels.
showCoordinatesbooleantrueShow the live coordinate readout beside the point.
labelstring""Text shown at the start of the readout chip, for example "Aim". With coordinates off, the chip shows only the label.
units"px" | "percent" | "normalized""px"Units of the readout, the pin notes and the ruler labels.
origin"top-left" | "center" | "bottom-left""top-left"Where zero sits. Center and bottom-left count Y upwards, like a drawing; top-left counts down, like the screen.
chip"ink" | "accent" | "subtle""ink"Fill of the readout chip: solid ink, the accent colour, or a faint raised tint of the ink.
fontFamilystringui-monospace stackFont of the readout, ruler labels and notes. A monospaced font keeps the readout from changing width.
rulers"hover" | "always" | "none""hover"Edge rulers along the top and left. On hover they unfold with the crosshair; always keeps them on the page with a one-time sweep in.
rulerSizenumber20Depth of the rulers in pixels.
tickSpacingnumber10Pixels between minor ruler ticks in px units. Every fifth tick is longer and every tenth is labelled.
gridnumber0Grid pitch in pixels. Above zero, a small patch of grid crosses appears around the cursor and snapping uses this pitch.
snapbooleanfalseSnap the point to the grid, or to the ruler ticks when there is no grid. The crosshair glides between detents.
smoothingnumber0Follow lag from 0 (exact, like a native cursor) to 1 (soft and floaty).
measurebooleantruePress and drag to measure: a dimension line with its run, rise, angle and length. Hold Shift to lock to 45° steps, press Escape to cancel. Turn it off if visitors need to select text inside.
measureHoldnumber2.5Seconds a finished measurement stays before it fades. Pass Infinity to keep it until the next one.
pinsbooleantrueClick without dragging to stamp a pin with its coordinates. Clicks on links, buttons and fields never pin.
maxPinsnumber4Pins kept at once. The oldest fades out when a new one lands.
pinLifenumber8Seconds a pin stays before it fades. 0 keeps pins until they are pushed out.
introbooleantrueUnfold the crosshair from the point to the edges when it appears, and fold it back when it leaves.
introDurationnumber0.7Seconds the first unfold takes. Later entries run a little faster.
autoplaybooleanfalseWhile the pointer is away, a ghost operator glides around, takes measurements and drops pins. It hands over to the real pointer the moment it enters.
autoplaySpeednumber1Speed multiplier for the autoplay operator.
idleDelaynumber1.5Seconds after the pointer leaves before autoplay resumes.
hideCursorbooleantrueHide the native cursor inside the component. Text fields keep their caret, and the crosshair steps aside over them.
interactivebooleantrueFollow the visitor's pointer. Turn it off to show only autoplay or scripted measurements.
disabledbooleanfalseHide the crosshair and ignore all input.
formatCoordinates(x: number, y: number) => stringundefinedCustom readout text. Receives the coordinates after units and origin are applied.
onMeasure(measurement) => voidundefinedCalled when a measuring drag ends, with x1, y1, x2, y2, dx, dy, length and angle in pixels and degrees.
onPin(pin: { x, y }) => voidundefinedCalled when a click drops a pin, with its position in pixels from the top-left corner.
ref{ measure, pin, clearPins, replay }—Script it: measure(x1, y1, x2, y2) draws a measurement, pin(x, y) stamps a pin, clearPins() fades them all, replay() unfolds the crosshair again.
data-cursor-labelattribute—Put it on any element inside to show that text in the chip while the pointer is over it.
data-cursor="native"attribute—Keep the native cursor over an element, the same way text fields do.
childrenReactNode—Content the crosshair draws over.
classNamestring—Classes for the root element. It fills its parent and is at least 240px tall.
styleCSSProperties—Inline styles for the root element.
colorstring

Ink of the crosshair, rulers, guides and pin notes, and the fill of the ink chip. The default inherits the surrounding text colour, so it follows light and dark themes.

Default"currentColor"
accentColorstring

Colour of the marker, the ruler notches, pins and the measuring line. Chip text picks black or white automatically for contrast.

Default"#7B5CFF"
lineWidthnumber

Hairline thickness in CSS pixels. Lines snap to whole device pixels so they stay sharp on every screen.

Default1
lineStyle"solid" | "dashed" | "dotted"

Stroke of the crosshair. Dashes are anchored to the page, so they never crawl as the cursor moves.

Default"solid"
lineOpacitynumber

Opacity of the crosshair, from 0 to 1. The measuring guides scale with it.

Default0.35
gapnumber

Clear radius in pixels around the exact point, where the lines stop. It tightens while a button is held.

Default9
edgeFadenumber

Fades the crosshair out towards the edges of the component, from 0 (none) to 1 (long fade).

Default0
marker"dot" | "ring" | "square" | "cross" | "none"

Shape drawn at the exact point. Over links and buttons a thin ring opens around it.

Default"dot"
markerSizenumber

Diameter of the marker in pixels.

Default6
showCoordinatesboolean

Show the live coordinate readout beside the point.

Defaulttrue
labelstring

Text shown at the start of the readout chip, for example "Aim". With coordinates off, the chip shows only the label.

Default""
units"px" | "percent" | "normalized"

Units of the readout, the pin notes and the ruler labels.

Default"px"
origin"top-left" | "center" | "bottom-left"

Where zero sits. Center and bottom-left count Y upwards, like a drawing; top-left counts down, like the screen.

Default"top-left"
chip"ink" | "accent" | "subtle"

Fill of the readout chip: solid ink, the accent colour, or a faint raised tint of the ink.

Default"ink"
fontFamilystring

Font of the readout, ruler labels and notes. A monospaced font keeps the readout from changing width.

Defaultui-monospace stack
rulers"hover" | "always" | "none"

Edge rulers along the top and left. On hover they unfold with the crosshair; always keeps them on the page with a one-time sweep in.

Default"hover"
rulerSizenumber

Depth of the rulers in pixels.

Default20
tickSpacingnumber

Pixels between minor ruler ticks in px units. Every fifth tick is longer and every tenth is labelled.

Default10
gridnumber

Grid pitch in pixels. Above zero, a small patch of grid crosses appears around the cursor and snapping uses this pitch.

Default0
snapboolean

Snap the point to the grid, or to the ruler ticks when there is no grid. The crosshair glides between detents.

Defaultfalse
smoothingnumber

Follow lag from 0 (exact, like a native cursor) to 1 (soft and floaty).

Default0
measureboolean

Press and drag to measure: a dimension line with its run, rise, angle and length. Hold Shift to lock to 45° steps, press Escape to cancel. Turn it off if visitors need to select text inside.

Defaulttrue
measureHoldnumber

Seconds a finished measurement stays before it fades. Pass Infinity to keep it until the next one.

Default2.5
pinsboolean

Click without dragging to stamp a pin with its coordinates. Clicks on links, buttons and fields never pin.

Defaulttrue
maxPinsnumber

Pins kept at once. The oldest fades out when a new one lands.

Default4
pinLifenumber

Seconds a pin stays before it fades. 0 keeps pins until they are pushed out.

Default8
introboolean

Unfold the crosshair from the point to the edges when it appears, and fold it back when it leaves.

Defaulttrue
introDurationnumber

Seconds the first unfold takes. Later entries run a little faster.

Default0.7
autoplayboolean

While the pointer is away, a ghost operator glides around, takes measurements and drops pins. It hands over to the real pointer the moment it enters.

Defaultfalse
autoplaySpeednumber

Speed multiplier for the autoplay operator.

Default1
idleDelaynumber

Seconds after the pointer leaves before autoplay resumes.

Default1.5
hideCursorboolean

Hide the native cursor inside the component. Text fields keep their caret, and the crosshair steps aside over them.

Defaulttrue
interactiveboolean

Follow the visitor's pointer. Turn it off to show only autoplay or scripted measurements.

Defaulttrue
disabledboolean

Hide the crosshair and ignore all input.

Defaultfalse
formatCoordinates(x: number, y: number) => string

Custom readout text. Receives the coordinates after units and origin are applied.

Defaultundefined
onMeasure(measurement) => void

Called when a measuring drag ends, with x1, y1, x2, y2, dx, dy, length and angle in pixels and degrees.

Defaultundefined
onPin(pin: { x, y }) => void

Called when a click drops a pin, with its position in pixels from the top-left corner.

Defaultundefined
ref{ measure, pin, clearPins, replay }

Script it: measure(x1, y1, x2, y2) draws a measurement, pin(x, y) stamps a pin, clearPins() fades them all, replay() unfolds the crosshair again.

Default—
data-cursor-labelattribute

Put it on any element inside to show that text in the chip while the pointer is over it.

Default—
data-cursor="native"attribute

Keep the native cursor over an element, the same way text fields do.

Default—
childrenReactNode

Content the crosshair draws over.

Default—
classNamestring

Classes for the root element. It fills its parent and is at least 240px tall.

Default—
styleCSSProperties

Inline styles for the root element.

Default—