Cursors
The images used for each mouse cursor shape, with hotspots
Brewser draws a software mouse cursor, and every cursor shape (the arrow, the
hand pointer, the text beam, the resize arrows, the busy spinner) is an image
you can replace. Unlike the other categories there's no picker: cursors.json
defines the whole set at once, mapping each CSS cursor keyword to an image.
[
{ "name": "default", "image": "themes/cursors/default.png", "x": 31, "y": 29 },
{ "name": "pointer", "image": "themes/cursors/pointer.png", "x": 43, "y": 32 },
{ "name": "text", "image": "themes/cursors/text.png", "x": 48, "y": 48 },
{ "name": "wait", "image": "themes/cursors/wait.apng", "x": 48, "y": 48 }
]| Field | Required | Meaning |
|---|---|---|
name | Yes | The CSS cursor keyword this image is used for (default, pointer, text, grab, not-allowed, the *-resize shapes, and so on). |
image | Yes | The cursor image, relative to sdmc:/switch/brewser/. .png or animated .apng. |
x | No | Hotspot X, the pixel in the image that's the actual click point. |
y | No | Hotspot Y. |
Whenever a page (or the shell) asks for a given CSS cursor: value, Brewser
looks up the matching name and draws that image, offset by its hotspot so the
click lands where the user expects.
Customising cursors
Because it's one shared set, there are two ways to reskin:
Replace the images. Keep the JSON as-is and overwrite the PNGs in
themes/cursors/ with your own art (same filenames). This is the simplest way
to get a whole new cursor look.
Repoint entries. Add your own image and change the image path for the
shape you want:
{ "name": "pointer", "image": "themes/cursors/my-hand.png", "x": 40, "y": 4 }Getting the hotspot right
The hotspot is the pixel that counts as the click point: the tip of an arrow,
the fingertip of a hand pointer, or the centre of a crosshair or resize handle.
If clicks feel off by a few pixels, adjust x/y. The shipped cursor art is
drawn on a 48×48 canvas, so hotspot values are in that range.
Animated cursors. Use an
.apng(animated PNG) for shapes likewait/progressto get a spinner; a regular.pngis a still cursor.

Brewser Docs