Crosshair Cursor
cursorProA precision crosshair with per-axis colour and thickness, a centre dot, optional rulers and a live X/Y or static label that flips at the edges.
Opening soon
Pro cannot be bought yet. The page opens when payment is ready.
Preview
The preview could not load.
Live demo. The theme switches the demo itself.
Code
crosshair-cursor.tsxPro
The code is locked
Crosshair Cursor is part of Manniche UI Pro. A key unlocks the source of all 60 effects.
Opening soon€49 · Introductory price until 31 December 2026. €79 after that.
- One-off payment
- One developer
- Your key arrives by email straight away
- No VAT (§ 19 UStG)
Have a key? Get the code with the CLI or MCP.
The key lives in MANNICHE_PRO_KEY, never in your code or a URL. How to set it up
CLI
npx shadcn@latest add @manniche-pro/crosshair-cursorMCP
claude mcp add --transport http manniche-ui https://mikkelmanniche.dk/api/mcp --header "Authorization: Bearer $MANNICHE_PRO_KEY"Props
CrosshairCursorProps
| Prop | Type | Default | What it does |
|---|---|---|---|
scope | 'container' | 'window' | 'window' | window draws the crosshair across the whole viewport; container only inside this component's box. |
color | string | – | Colour of both lines; defaults to a faint tint of the text colour. |
verticalColor | string | – | Colour of the vertical line (the one that marks x); overrides color. |
horizontalColor | string | – | Colour of the horizontal line (the one that marks y); overrides color. |
thickness | number | 1 | Line thickness in pixels for both lines. |
verticalThickness | number | – | Thickness of the vertical line; overrides thickness. |
horizontalThickness | number | – | Thickness of the horizontal line; overrides thickness. |
dashed | boolean | false | Dashed instead of solid lines. |
gap | number | 10 | Clear space round the pointer where the lines stop, in pixels. |
dotSize | number | 9 | Diameter of the marker at the crossing in pixels; 0 hides it. |
dotColor | string | '#3d7bff' | Colour of the marker. |
showLabel | boolean | true | Show the readout next to the pointer. |
label | string | – | Fixed text for the readout instead of live coordinates. |
format | (x: number, y: number) => string | – | Builds the readout from the coordinates, e.g. (x, y) => \${x}, ${y}\``. |
labelColor | string | '#ffffff' | Text colour of the readout. |
labelBackground | string | '#3d7bff' | Background of the readout. |
labelClassName | string | – | Classes for the readout: font, padding, corner radius and so on. |
rulers | boolean | false | Tick rulers along the top and left edges with a marker for the current position. |
hideCursor | boolean | true | Hide the system pointer while the crosshair is showing. |
children | ReactNode | – | Content under the crosshair (container scope). |
className | string | – | Classes for the wrapper (container scope). |
A11y
No accessibility notes written yet.
The notes come with the source when Pro opens.