Files
vectorcraft/crates/tools/src/cursors.toml
T
dotCooCoo c607d2b448 Pencil: the closing cursor shows while a stroke is drawn back near its start
A Pencil or Paintbrush stroke released within Close Paths When Ends Are
Within of its start closes, but the cursor gave no sign of it. While the
pointer is where a release would close the stroke, the cursor is now
PencilClose (PaintbrushClose for the Paintbrush), the crosshair with a
ring, as Draw straight lines with the Pencil tool describes:
https://helpx.adobe.com/illustrator/desktop/draw-shapes-and-paths/draw-shapes/draw-straight-lines-with-the-pencil-tool.html

The check is the one the release makes, on the end the stroke would
take (snapped for the Pencil). A straight line (Shift or Alt held at the
press), a stroke that continues a selected path, a stroke that redraws
one and a smoothing drag show no ring.

Docs: docs/target-app-parity.md, docs/ui-parity.md.
2026-10-24 21:21:37 +07:00

722 lines
30 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# The cursors VectorCraft needs: one [[cursor]] per `Cursor` value (crates/tools/src/lib.rs).
#
# This is the source of truth for what each cursor is for, written for whoever draws them:
# designers never decide what a cursor is for, this file does. `cargo xtask cursors` warns about
# a `Cursor` value without an entry. Adding a cursor: CLAUDE.md › Adding a cursor.
#
# app the app's name as designers read it
# id the `Cursor` variant's name (PenAdd), which names its drawing
# group the heading it's listed under for designers
# shown_when every situation that shows it, one plain sentence each
# hotspot where the click lands
# look optional: only what the drawing must mean or match (a badge, a sibling cursor).
# Never describe another app's cursors; describe what ours must say.
# designer optional, default true: false for a cursor the operating system draws on purpose
# (nothing to draw)
#
# Wording: plain sentences for a designer, behaviour only. `cargo xtask brands` rejects vendor
# names here.
app = "VectorCraft"
# ── Selection ─────────────────────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Arrow"
group = "Selection"
shown_when = [
"The Selection tool over empty canvas or over an unselected object (no Alt).",
"Dragging with the Selection tool (a move), or with Direct Selection (an anchor, a segment or a handle).",
"Any tool with no cursor of its own (Touch Type, Rotate View).",
"The resting state of Live Paint Selection, Reshape (away from a path), Free Transform, Puppet Warp and Crop Image (nothing selected or outside the box), the Perspective Grid (locked or away from handles) and Perspective Selection.",
]
hotspot = "The arrow's tip."
look = "The default pointer: a solid arrow. ArrowHollow is its hollow twin."
[[cursor]]
id = "ArrowHollow"
group = "Selection"
shown_when = [
"Direct Selection at rest: away from anchors and curved segments, and over handles and fills.",
"The pen-family tools with Cmd/Ctrl held (which lends Direct Selection).",
"While a Selection or Direct Selection drag snaps to a point or a guide (the solid arrow turns hollow).",
]
hotspot = "The arrow's tip."
look = "The same pointer as Arrow, hollow: white with a dark outline."
[[cursor]]
id = "DirectAnchor"
group = "Selection"
shown_when = ["Direct Selection over an anchor of a path that isn't selected."]
hotspot = "The arrow's tip."
look = "ArrowHollow with a small hollow square badge (an unselected anchor)."
[[cursor]]
id = "DirectAnchorSelected"
group = "Selection"
shown_when = ["Direct Selection over an anchor of a selected path."]
hotspot = "The arrow's tip."
look = "ArrowHollow with a small filled square badge (a selected anchor)."
[[cursor]]
id = "ReshapeSegment"
group = "Selection"
shown_when = [
"Direct Selection over a curved segment of a path that isn't selected as a whole.",
"The Anchor Point tool over a segment, and while it reshapes one.",
"The Pen with Alt held over a segment of a selected path, and while it reshapes one.",
]
hotspot = "The arrowhead's tip."
look = "Says \"a drag bends this segment\": an arrowhead with a small curve between two anchor marks."
[[cursor]]
id = "GroupSelection"
group = "Selection"
shown_when = [
"The Group Selection tool: each click selects the next enclosing group.",
"Direct Selection with Alt held (Alt makes it Group Selection for the next click).",
]
hotspot = "The arrow's tip."
look = "ArrowHollow with a plus badge."
[[cursor]]
id = "SelectionCopy"
group = "Selection"
shown_when = [
"Alt-dragging a copy with the Selection tool (the drag leaves the original behind).",
"Alt-dragging a copy with Direct Selection, dragging a path whole (by its fill, or by an anchor of a path selected whole).",
]
hotspot = "The front arrowhead's tip."
look = "Says \"a copy\": a double arrowhead, one in front of the other."
[[cursor]]
id = "Move"
group = "Selection"
shown_when = [
"The Selection tool over a selected object, or over any object with Alt held (once an Alt-drag starts, SelectionCopy shows).",
"Reshape over a path or while dragging.",
"Inside the Free Transform and Crop Image boxes.",
"Puppet Warp over a pin.",
"The Mesh tool over a mesh point or handle.",
"The Artboard tool inside an artboard.",
"The Gradient tool over the annotator's handles and during most gradient drags.",
"The Perspective Grid and Perspective Selection over plane widgets and handles.",
]
hotspot = "The centre."
look = "A four-way move cursor."
[[cursor]]
id = "CornerRadius"
group = "Selection"
shown_when = ["Selection and Direct Selection (not Group Selection) over a Live Corners widget, and while dragging one (rounding the corners)."]
hotspot = "The arrow's tip."
look = "ArrowHollow with a rounded-corner badge."
[[cursor]]
id = "PathBracket"
group = "Selection"
shown_when = ["Selection and Direct Selection over a bracket of selected type on a path, or dragging one (the type slides along its path)."]
hotspot = "The arrow's tip."
look = "Arrow with a bracket badge."
[[cursor]]
id = "TypeWidget"
group = "Selection"
shown_when = ["The Selection tool over the type widget of selected type (a double-click converts point type to area type and back)."]
hotspot = "The arrow's tip."
look = "Arrow with a type badge (a letter T)."
[[cursor]]
id = "LoadedText"
group = "Selection"
shown_when = [
"The Selection tool after a click on the out port or the in port of selected area type or type on a path, threaded, overflowing or not: the pointer carries that text until a click threads it into a closed path, area type or type on a path, a click on empty canvas makes a new frame of the same kind and shape there, or a drag draws the new frame; from the in port the frame placed comes before the clicked one. Escape or another tool drops it.",
]
hotspot = "Where the new frame's top-left corner goes (the click), or the path clicked."
look = "A small block of text lines: the overflow text the pointer carries. Until it is drawn it borrows the I-beam (Text)."
# ── Pen family ────────────────────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Pen"
group = "Pen"
shown_when = [
"The Pen tool where a click starts a new path.",
"The Curvature tool away from its points.",
"With Use Precise Cursors on, the crosshair shows instead.",
]
hotspot = "The nib's tip."
look = "A pen nib. Every Pen-family cursor is this nib with a different badge."
[[cursor]]
id = "PenDrawing"
group = "Pen"
shown_when = [
"The Pen tool while a path is being drawn, where a click adds the path's next point.",
"The close, join and convert badges still show over the points they act on.",
]
hotspot = "The nib's tip."
look = "The Pen nib with no badge."
[[cursor]]
id = "PenAdd"
group = "Pen"
shown_when = [
"The Pen over a segment of a selected path with Auto Add/Delete on (Shift off), or over a selected blend's spine.",
"The Add Anchor Point tool everywhere (and the Delete Anchor Point tool with Alt).",
"The Curvature tool over a segment.",
"Stands in for MeshAdd and PuppetPin until they're drawn.",
]
hotspot = "The nib's tip."
look = "The Pen nib with a plus badge."
[[cursor]]
id = "PenDelete"
group = "Pen"
shown_when = [
"The Pen over an anchor of a selected path (Auto Add/Delete), or over a blend-spine point.",
"The Delete Anchor Point tool everywhere (and the Add Anchor Point tool with Alt).",
"The Mesh tool with Alt over a mesh point.",
]
hotspot = "The nib's tip."
look = "The Pen nib with a minus badge."
[[cursor]]
id = "PenClose"
group = "Pen"
shown_when = [
"The Pen while drawing, over the first anchor of the path (a click closes it).",
"The Curvature tool over its first point (three points or more), or near the other end of the current open path.",
]
hotspot = "The nib's tip."
look = "The Pen nib with a ring badge (closing the loop)."
[[cursor]]
id = "PenContinue"
group = "Pen"
shown_when = [
"The Pen (not drawing) over an end of an open path (a click continues it).",
"The Curvature tool over an open end.",
]
hotspot = "The nib's tip."
look = "The Pen nib with a slash badge."
[[cursor]]
id = "PenJoin"
group = "Pen"
shown_when = ["The Pen while drawing, over an end of another open path (a click joins the two)."]
hotspot = "The nib's tip."
look = "The Pen nib with a badge showing a line running into an end point."
[[cursor]]
id = "PenConvert"
group = "Pen"
shown_when = ["The Pen while drawing, over the last anchor (a click retracts its outgoing handle). With Alt the Pen shows AnchorPoint and ReshapeSegment instead."]
hotspot = "The nib's tip."
look = "The Pen nib with a caret badge (like the AnchorPoint caret)."
[[cursor]]
id = "AnchorPoint"
group = "Pen"
shown_when = [
"The Anchor Point tool, except over a segment (ReshapeSegment shows there).",
"The Pen with Alt held, over an anchor or a handle end of a selected path.",
]
hotspot = "The anchor mark at the caret's apex."
look = "A caret (an upside-down V) with a small anchor square at its apex."
[[cursor]]
id = "Curvature"
group = "Pen"
shown_when = [
"The Curvature tool over empty canvas, or anywhere while drawing a path away from its points.",
"Elsewhere the Curvature tool borrows Pen-family cursors: PenAdd over a segment, Move over an anchor, PenContinue at an open end, PenConvert with Alt, PenClose over the first point of the path being drawn.",
]
hotspot = "The nib's tip."
look = "The Pen nib with a curve badge."
# ── Type ──────────────────────────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Text"
group = "Type"
shown_when = [
"Every horizontal type tool: Type, Area Type and Type on a Path (the Area and Path ones show the crosshair over a suitable path).",
"Stands in for TypeVertical until it's drawn.",
]
hotspot = "The I-beam's centre."
look = "An I-beam with a short crossbar marking the baseline."
[[cursor]]
id = "TypeVertical"
group = "Type"
shown_when = ["The vertical type tools: Vertical Type, Vertical Area Type and Vertical Type on a Path (the Area and Path ones show the crosshair over a suitable path)."]
hotspot = "The I-beam's centre."
look = "The Text I-beam turned a quarter turn."
# ── Transform and resize ──────────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Crosshair"
group = "Transform and resize"
shown_when = [
"The generic drawing cursor: all shape, line, grid, flare, cut, graph and liquify tools, and Place.",
"The Rotate, Reflect, Scale and Shear tools with a selection (Reflect, Scale and Shear even mid-drag).",
"The Area Type and Type on a Path tools over a suitable path.",
"The Artboard tool outside every artboard; the Gradient tool away from the annotator; Free Transform corners in Distort or Perspective mode.",
"With Use Precise Cursors on, it replaces the Pen, Eyedropper, Slice, Blend and Shape Builder cursors.",
"Stands in for every drawing tool cursor not drawn yet.",
]
hotspot = "The centre of the open gap."
look = "Four arms around an open centre, no dot, so the art under the hotspot stays visible."
[[cursor]]
id = "ResizeH"
group = "Transform and resize"
shown_when = [
"The left and right handles of the bounding box (or whichever handle reads as left/right once the box is rotated) with Selection, Free Transform, Artboard, Slice Selection and Crop Image.",
"Over or dragging a vertical ruler guide.",
"Perspective Grid extent handles and near-horizontal Perspective Selection handles.",
"The freeform gradient's spread ring.",
]
hotspot = "The centre."
look = "A horizontal double arrow. ResizeV, ResizeNwSe and ResizeNeSw are the same arrow turned."
[[cursor]]
id = "ResizeV"
group = "Transform and resize"
shown_when = [
"The top and bottom handles of the same boxes as ResizeH.",
"Over or dragging a horizontal ruler guide.",
"The Perspective Grid's horizon, height and cell-size handles, and near-vertical Perspective Selection handles.",
]
hotspot = "The centre."
look = "The ResizeH arrow, vertical."
[[cursor]]
id = "ResizeNwSe"
group = "Transform and resize"
shown_when = [
"The top-left and bottom-right corner handles of the same boxes as ResizeH (rotation-adjusted).",
"Perspective Selection handles at 112.5° to 157.5°.",
]
hotspot = "The centre."
look = "The ResizeH arrow, diagonal from top-left to bottom-right."
[[cursor]]
id = "ResizeNeSw"
group = "Transform and resize"
shown_when = [
"The top-right and bottom-left corner handles of the same boxes as ResizeH (rotation-adjusted).",
"Perspective Selection handles at 22.5° to 67.5°.",
]
hotspot = "The centre."
look = "The ResizeH arrow, diagonal from bottom-left to top-right."
[[cursor]]
id = "ShearH"
group = "Transform and resize"
shown_when = [
"Free Transform with Cmd/Ctrl held over the top or bottom handle of the bounding box, and while that drag shears the object sideways.",
"Without Cmd/Ctrl the same handles show ResizeV.",
]
hotspot = "The centre, between the two arrows."
look = "Two single arrows side by side, one above the other, pointing opposite ways (left and right): one side sliding past the other."
[[cursor]]
id = "ShearV"
group = "Transform and resize"
shown_when = [
"Free Transform with Cmd/Ctrl held over the left or right handle of the bounding box, and while that drag shears the object up or down.",
"Without Cmd/Ctrl the same handles show ResizeH.",
]
hotspot = "The centre, between the two arrows."
look = "The ShearH arrows turned upright."
[[cursor]]
id = "Rotate"
group = "Transform and resize"
shown_when = [
"The Rotate tool while dragging.",
"The Gradient tool over its rotate zone, or rotating.",
"Puppet Warp with Alt near a selected pin.",
"The bounding-box rotate cursor when the pointer is exactly on the box's centre.",
]
hotspot = "Below the arc, in its empty middle."
look = "An arc with an arrowhead at each end. RotateToward is the same arc, turned."
[[cursor]]
id = "RotateToward"
group = "Transform and resize"
shown_when = ["Selection and Free Transform in the rotate zone just outside a bounding-box corner, and while rotating there. The Rotate, Gradient and Puppet Warp rotate cursors don't turn."]
hotspot = "Below the arc, in its empty middle, as for Rotate."
look = "The Rotate arc drawn for the top-right corner (direction 1). VectorCraft turns it in 45° steps so it wraps whichever corner the pointer is at."
# ── Navigation ────────────────────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Hand"
group = "Navigation"
shown_when = ["The Hand tool, or Space held with any tool (not with Cmd/Ctrl): ready to pan."]
hotspot = "The middle of the hand."
look = "An open hand. HandGrab is the same hand closed."
[[cursor]]
id = "HandGrab"
group = "Navigation"
shown_when = ["While panning: a Hand tool drag, a Space drag, or a middle-button drag with any tool."]
hotspot = "The middle of the hand, as for Hand."
look = "The Hand, closed (grabbing)."
[[cursor]]
id = "ZoomIn"
group = "Navigation"
shown_when = ["The Zoom tool, or Cmd/Ctrl+Space with any tool: a click zooms in."]
hotspot = "The lens centre."
look = "A magnifier with a plus in its lens."
[[cursor]]
id = "ZoomOut"
group = "Navigation"
shown_when = ["The Zoom tool, or Cmd/Ctrl+Space, with Alt held: a click zooms out."]
hotspot = "The lens centre."
look = "The ZoomIn magnifier with a minus in its lens."
[[cursor]]
id = "NotAllowed"
group = "Navigation"
shown_when = [
"The Rotate, Reflect, Scale and Shear tools with nothing selected.",
"Puppet Warp off the mesh, where no pin can go.",
]
hotspot = "The centre."
designer = false
[[cursor]]
id = "Busy"
group = "Navigation"
shown_when = [
"A file is opening off the UI thread.",
"A background save or export is in progress (the status bar shows its name).",
]
hotspot = "The centre."
designer = false
# ── Colour and gradient ───────────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Eyedropper"
group = "Colour and gradient"
shown_when = ["The Eyedropper tool, whatever the modifier keys. With Use Precise Cursors on, the crosshair shows instead."]
hotspot = "The pipette's tip."
look = "A pipette."
[[cursor]]
id = "AddStop"
group = "Colour and gradient"
shown_when = [
"The Gradient tool over the annotator's bar (a click adds a stop).",
"The freeform gradient over its line or the art.",
]
hotspot = "The arrow's tip."
look = "Arrow with a plus badge. RemoveStop is the same with a minus."
[[cursor]]
id = "RemoveStop"
group = "Colour and gradient"
shown_when = [
"The Gradient tool while a stop is dragged off the bar (releasing deletes it).",
"The freeform gradient while a point is dragged out.",
]
hotspot = "The arrow's tip."
look = "Arrow with a minus badge."
[[cursor]]
id = "MeshAdd"
group = "Colour and gradient"
shown_when = [
"The Mesh tool over a mesh or a path, off a mesh point: a click adds a mesh point (turning a path into a mesh).",
"Elsewhere the Mesh tool shows PenDelete (Alt over a mesh point) and Move (over a point or handle).",
]
hotspot = "Where the mesh point goes."
[[cursor]]
id = "LivePaintBucket"
group = "Colour and gradient"
shown_when = ["The Live Paint Bucket: a click fills a face (or an edge) of a Live Paint group."]
hotspot = "Where the paint pours out."
# ── Width, blend, slice and shape builder ─────────────────────────────────────────────────────────
[[cursor]]
id = "Width"
group = "Width, blend, slice and shape builder"
shown_when = ["The Width tool away from strokes."]
hotspot = "The arrow's tip."
look = "ArrowHollow with a lens badge (a stroke that swells in the middle). WidthAdd and WidthPoint build on it."
[[cursor]]
id = "WidthAdd"
group = "Width, blend, slice and shape builder"
shown_when = ["The Width tool over a stroke, away from its width points (a drag adds one)."]
hotspot = "The arrow's tip."
look = "The Width cursor with a plus."
[[cursor]]
id = "WidthPoint"
group = "Width, blend, slice and shape builder"
shown_when = ["The Width tool over a width point or a handle end, and during any Width drag."]
hotspot = "The arrow's tip."
look = "The Width cursor with a mark across the swell (the width being dragged)."
[[cursor]]
id = "Blend"
group = "Width, blend, slice and shape builder"
shown_when = ["The Blend tool away from art. With Use Precise Cursors on, the crosshair shows instead."]
hotspot = "The crosshair's centre."
look = "Crosshair with a hollow square badge. BlendObject and BlendAnchor change the badge."
[[cursor]]
id = "BlendObject"
group = "Width, blend, slice and shape builder"
shown_when = ["The Blend tool over an object it can blend (away from its anchors)."]
hotspot = "The crosshair's centre."
look = "Crosshair with a filled square badge."
[[cursor]]
id = "BlendAnchor"
group = "Width, blend, slice and shape builder"
shown_when = ["The Blend tool over an anchor point (the blend starts there)."]
hotspot = "The crosshair's centre."
look = "Crosshair with a target badge (a ring with a centre dot)."
[[cursor]]
id = "ObjectsOnPath"
group = "Width, blend, slice and shape builder"
shown_when = ["The Objects on Path tool over a path the selected objects can attach to: a click attaches them."]
hotspot = "The crosshair's center."
look = "Crosshair with a badge of small squares along a curve, as on the tool's icon."
[[cursor]]
id = "Slice"
group = "Width, blend, slice and shape builder"
shown_when = ["The Slice tool, always. With Use Precise Cursors on, the plain crosshair shows instead."]
hotspot = "The crosshair's centre."
look = "Crosshair with a blade badge."
[[cursor]]
id = "SliceSelect"
group = "Width, blend, slice and shape builder"
shown_when = ["The Slice Selection tool away from the selected slice's handles."]
hotspot = "The arrow's tip."
look = "Arrow with a small slice badge (a rectangle cut by a line)."
[[cursor]]
id = "ShapeBuilder"
group = "Width, blend, slice and shape builder"
shown_when = ["The Shape Builder tool (merge mode), and during a drag that started without Alt."]
hotspot = "The crosshair's centre."
look = "Crosshair with a plus badge. ShapeBuilderErase is the same with a minus."
[[cursor]]
id = "ShapeBuilderErase"
group = "Width, blend, slice and shape builder"
shown_when = ["The Shape Builder with Alt held (erase mode), and during a drag that started with Alt."]
hotspot = "The crosshair's centre."
look = "Crosshair with a minus badge."
# ── Drawing and editing tools ─────────────────────────────────────────────────────────────────────
[[cursor]]
id = "Pencil"
group = "Drawing and editing tools"
shown_when = ["The Pencil tool: draws a freeform path; starting near the end of a selected open path continues it; Shift held at the press, or Alt held at the press when Alt key toggles to Smooth Tool is off, draws a straight line; Alt pressed after the drag starts, when that option is off, closes the path; when it is on, Alt held at the press gives the Smooth tool."]
hotspot = "The lead tip."
[[cursor]]
id = "PencilClose"
group = "Drawing and editing tools"
shown_when = [
"The Pencil tool with Alt pressed after the drag starts, when Alt key toggles to Smooth Tool is off: releasing the mouse button with Alt still held closes the path. A drag started with Shift or Alt held draws an open straight line and does not show this cursor.",
"The Pencil tool while a freehand stroke is drawn back to within Close Paths When Ends Are Within of its start: releasing the mouse button there closes the path.",
]
hotspot = "The lead tip."
look = "The Pencil cursor with a ring badge (closing the loop), like PenClose."
[[cursor]]
id = "PencilStraight"
group = "Drawing and editing tools"
shown_when = ["The Pencil tool with Shift or Alt held before a press, except with Alt held when Alt key toggles to Smooth Tool is on: the press draws a straight line, at 45° steps from the Constrain Angle when Shift is held and at any angle with Alt alone."]
hotspot = "The lead tip."
look = "The Pencil cursor with a short straight-line badge, where PencilClose has its ring."
[[cursor]]
id = "Paintbrush"
group = "Drawing and editing tools"
shown_when = ["The Paintbrush tool: draws a brushed freeform path (with pen pressure), continuing a selected path from its end; Alt closes it."]
hotspot = "The bristle tip."
[[cursor]]
id = "PaintbrushClose"
group = "Drawing and editing tools"
shown_when = [
"The Paintbrush tool with Alt held, before a press and while drawing: releasing the mouse button with Alt still held closes the path.",
"The Paintbrush tool while a stroke is drawn back to within Close Paths When Ends Are Within of its start: releasing the mouse button there closes the path.",
]
hotspot = "The bristle tip."
look = "The Paintbrush cursor with a ring badge (closing the loop), like PenClose."
[[cursor]]
id = "BlobBrush"
group = "Drawing and editing tools"
shown_when = ["The Blob Brush tool: paints filled shapes that merge with touching ones of the same colour. No brush-size outline shows while hovering."]
hotspot = "The brush centre."
[[cursor]]
id = "Eraser"
group = "Drawing and editing tools"
shown_when = ["The Eraser tool: a drag erases the area it covers. No size outline shows while hovering."]
hotspot = "The eraser's centre."
[[cursor]]
id = "Smooth"
group = "Drawing and editing tools"
shown_when = [
"The Smooth tool: a drag along a selected path smooths it.",
"The Pencil tool with Alt key toggles to Smooth Tool on: with Alt held before a stroke begins to draw, and through a drag that smooths.",
]
hotspot = "The tip."
[[cursor]]
id = "PathEraser"
group = "Drawing and editing tools"
shown_when = ["The Path Eraser tool: a drag along a selected path erases that part of it."]
hotspot = "The tip."
[[cursor]]
id = "Join"
group = "Drawing and editing tools"
shown_when = ["The Join tool: scrubbing across the gap or overlap between open path ends joins them."]
hotspot = "The tip."
[[cursor]]
id = "Knife"
group = "Drawing and editing tools"
shown_when = ["The Knife tool: a freehand drag cuts objects along the line."]
hotspot = "The blade's point."
[[cursor]]
id = "Scissors"
group = "Drawing and editing tools"
shown_when = ["The Scissors tool over a path segment: a click splits the path there."]
hotspot = "Where the blades cross, exact enough to cut where aimed."
look = "Scissors. ScissorsNotAllowed is this drawing with a badge."
[[cursor]]
id = "ScissorsNotAllowed"
group = "Drawing and editing tools"
shown_when = ["The Scissors tool away from every path segment: a click does nothing."]
hotspot = "The same point as Scissors."
look = "The Scissors with a small not-allowed badge, so the cursor keeps its size and shape and only the badge says a click won't cut."
[[cursor]]
id = "Shaper"
group = "Drawing and editing tools"
shown_when = ["The Shaper tool: a rough drawn shape becomes a clean live shape (rectangle, ellipse, polygon, line); scribbling over art deletes it."]
hotspot = "The tip."
[[cursor]]
id = "Lasso"
group = "Drawing and editing tools"
shown_when = ["The Lasso tool: drag a loop round anchor points and segments to select them; Shift adds to the selection, Alt takes from it."]
hotspot = "Where the loop is drawn from."
[[cursor]]
id = "MagicWand"
group = "Drawing and editing tools"
shown_when = ["The Magic Wand tool: a click selects objects like the one clicked (per the Magic Wand options); Shift adds, Alt subtracts."]
hotspot = "The wand's tip."
[[cursor]]
id = "PuppetPin"
group = "Drawing and editing tools"
shown_when = [
"Puppet Warp over the selection's mesh where a pin can go: a click adds a pin.",
"Elsewhere Puppet Warp shows NotAllowed (off the mesh), Move (over a pin) and Rotate (Alt near a selected pin).",
]
hotspot = "Where the pin goes."
[[cursor]]
id = "Measure"
group = "Drawing and editing tools"
shown_when = ["The Measure tool: drag to measure distance and angle."]
hotspot = "Exact, because precision matters here (an open centre suits it)."
[[cursor]]
id = "PrintTiling"
group = "Drawing and editing tools"
shown_when = ["The Print Tiling tool: a drag moves the printable page area over the artboard (it snaps to the artboard's edges)."]
hotspot = "The page corner being placed."
# ── Symbolism tools ───────────────────────────────────────────────────────────────────────────────
# The brush size is drawn by the app as a circle around the cursor.
[[cursor]]
id = "SymbolSprayer"
group = "Symbolism tools"
shown_when = ["The Symbol Sprayer: a drag sprays instances of the current symbol; Alt reverses it."]
hotspot = "The spray centre."
[[cursor]]
id = "SymbolShifter"
group = "Symbolism tools"
shown_when = ["The Symbol Shifter: a drag pushes symbol instances along; Alt reverses it."]
hotspot = "The brush centre."
[[cursor]]
id = "SymbolScruncher"
group = "Symbolism tools"
shown_when = ["The Symbol Scruncher: a drag pulls instances together; Alt reverses it."]
hotspot = "The brush centre."
[[cursor]]
id = "SymbolSizer"
group = "Symbolism tools"
shown_when = ["The Symbol Sizer: a drag enlarges instances; Alt reverses it."]
hotspot = "The brush centre."
[[cursor]]
id = "SymbolSpinner"
group = "Symbolism tools"
shown_when = ["The Symbol Spinner: a drag rotates instances in its direction; Alt reverses it."]
hotspot = "The brush centre."
[[cursor]]
id = "SymbolStainer"
group = "Symbolism tools"
shown_when = ["The Symbol Stainer: a drag tints instances toward the fill colour; Alt reverses it."]
hotspot = "The brush centre."
[[cursor]]
id = "SymbolScreener"
group = "Symbolism tools"
shown_when = ["The Symbol Screener: a drag makes instances more transparent; Alt reverses it."]
hotspot = "The brush centre."
[[cursor]]
id = "SymbolStyler"
group = "Symbolism tools"
shown_when = ["The Symbol Styler: a drag applies the chosen graphic style to instances; Alt reverses it."]
hotspot = "The brush centre."
# ── Not needed ────────────────────────────────────────────────────────────────────────────────────
# Tools that deliberately have no cursor of their own (listed for designers so nobody draws one).
[[not_needed]]
what = "Liquify tools (Warp, Twirl, Pucker, Bloat, Scallop, Crystallize, Wrinkle)"
why = "They show the Crosshair, and the app draws the brush's real size and tilt as an outline; a fixed-size cursor would disagree with it."
[[not_needed]]
what = "Shape, line, grid, flare, graph, cut and gradient tools"
why = "The generic Crosshair is the intended drawing cursor for them."