Turn pointer movement into a precise viewport-wide tracking layer for technical, cyber, and experimental desktop experiences.

Full Screen Crosshair turns pointer movement into a measurement layer. The page feels inspected, targeted, and slightly dangerous in a good way.
Use Full Screen Crosshair when a technical, cyber, AI, editorial, or experimental brand wants the pointer to become part of the visual language. The page job is precision: movement should make the interface feel deliberate, not decorated.
The production risk is interference. A full-screen cursor layer can cover focus rings, fight selection, obscure controls, or feel absurd on touch devices. Treat it as disposable: disable it on coarse pointers, keep it below interactive UI, and make sure the page works perfectly without it.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
A cybersecurity landing page can use Full Screen Crosshair in the hero to make the page feel like an active targeting surface. The outcome is precision: the brand tone sharpens while the headline and CTA remain fully usable.
Not for dashboards, checkout, forms, editors, documentation, or mobile-first routes where native cursor and text selection matter more.
Not for pages where the crosshair sits above links, inputs, modals, or focus states.
Use a single overlay layer, update position with requestAnimationFrame, avoid layout reads on every pointer move, and remove listeners on unmount.
Disable on coarse pointers. Keep native touch behavior. Preserve visible focus states, text selection, and click targets. Reduced-motion users should get the normal cursor without tracking lines.
| Prop | Type | Default | Description |
|---|---|---|---|
color | color | #ffffff | Crosshair line and center color. |
centerContent | string | • | Text or symbol shown at the cursor center. |
hideNativeCursor | boolean | true | Hides the system cursor while the crosshair is active. |
gap | number | 20 | Gap around the center symbol. |
thickness | number | 1 | Line thickness in pixels. |
centerSize | number | 24 | Center symbol size in pixels. |
smooth | boolean | true | Enables smoothed cursor tracking. |
lerpFactor | number | 0.14 | Controls cursor smoothing speed. |
Use it when a desktop technical or experimental page needs pointer movement to feel precise, inspected, or targeted.
No. Disable it on coarse pointers and provide normal touch behavior.
It can, but coordinate text should be decorative unless the page has a real measurement use case. Avoid making screen readers announce pointer changes.
Buttons, links, focus rings, menus, and modals must remain above and fully usable. The crosshair should use pointer-events: none where appropriate.
Disable continuous pointer-following movement and return to the native cursor or a static state.
Yes. A custom version should define crosshair style, coordinate behavior, z-index rules, reduced-motion fallback, mobile disablement, source handoff, and implementation notes.
Need a custom effect? Tell us what to create.