Stable coordinates
Pointer and wheel input use the latest client-space canvas position before converting to world space.
Responsive IR-replay rendering with an infinite canvas, a clear starting surface, and precision tools — with behavior qualified by document and device.
Varve's canvas uses an IR-replay fast path: the engine prepares a compact scene representation and the webview replays it to Canvas2D (or an admitted worker bitmap path when the document and runtime allow). Structural scenes and unavailable resources use an authoritative main-thread fallback. Responsiveness depends on the document, Layers state, renderer, display cadence, and device; any performance figure is published only with its fixture, environment, clock-trust, and sample-validity evidence.
Panels opening, windows resizing, browser chrome moving, and display scale changes update the drawable canvas geometry without changing the document. The camera preserves the world point under the viewport centre, or under the user's active pointer when a gesture is in progress, so the artwork does not jump away from the hand.
Pointer and wheel input use the latest client-space canvas position before converting to world space.
Resize observation is coalesced, while pointer capture, blur, and cancellation paths clear stale gesture state.
Fast paths remain optional. If a fresh worker frame is not available, the authoritative replay path is used instead of showing stale pixels.
Plain wheel input pans the canvas, while Ctrl/Cmd+wheel and pinch zoom around the pointer. The Hand tool also supports Arrow and Shift+Arrow for precise keyboard traversal without taking those keys away from object editing or text fields. Finger drawing versus one-finger navigation, wheel sensitivity, and the optional mouse-wheel continuation are available in the existing Settings panel.
Shift constrains the gesture you are already in. Dragging a selection with Shift projects the move onto the nearest 45° direction, so a mostly horizontal or vertical drag stays on that axis while a deliberate diagonal keeps its angle; resizing with Shift keeps proportions. The tablet Constrain control applies the same rule, and page placement on the pasteboard follows it too.
Persistence respects the gesture: automatic document snapshots yield to active pointer, wheel, pinch, and keyboard input, then serialize the latest immutable revision on the background lane. Manual Save and Backup Now remain immediate. Responsiveness figures are qualified by fixture, renderer, display cadence, and device rather than presented as a guarantee for every document.
This contract is exercised by the canvas browser regressions and documented in the canvas responsiveness audit. Performance figures remain fixture-specific rather than a promise for every document or device.
Surface states
A new Design Canvas is not an unexplained blank viewport. When it has no authored artwork, the editor keeps the work surface calm and shows a compact, keyboard-first starting guide in the active canvas. The guide is scoped to that canvas and disappears as soon as artwork exists, so it never competes with the design itself.
Canvas names and object labels belong to the Design Canvas you are viewing. Switch canvases and the labels, accessibility names, minimap, selection, and hit targets switch with the artwork — a nearby canvas with the same coordinates or a duplicate name cannot leak into the current view.
Print uses a separate publishing-scene policy: page number and name bands describe placed pages, while Design Canvas content stays out of the print pasteboard. These editing labels are derived interface chrome, so they do not become document nodes or appear in PNG, SVG, PDF, video, clipboard, or other exports.
Nudge frames and objects from the keyboard without changing tools: once the canvas has focus, Arrow and Shift+Arrow use your configured small and big document-unit amounts. Movement stays aligned to world axes through zoom, camera rotation, and transformed parents, while focused fields and editing widgets keep their own Arrow-key behavior.
Pointer dragging shares the same hierarchy-safe movement roots, keeps multi-selection rigid, and retains snapping and intentional drag reparenting as separate behaviors. Use Ctrl/Cmd to bypass snapping or Ctrl/Cmd+Shift to preserve the current parent.
Grid systems
The canvas gives alignment, inspection, typography, and composition each their own language. Turn on the right guide for the decision in front of you, then turn it off when the work is ready to judge.
Guide Layouts add non-destructive columns, rows, or a true square uniform lattice to a frame. Preview changes before applying one undoable edit, batch-apply a preset to selected frames, and use page or master inheritance when the work is headed for print. Hidden guides can remain snap-enabled, and transformed or nested frames use their finite oriented segments instead of an axis-aligned approximation.
Independent X/Y spacing, subdivisions, offsets, and rotation.
Pixel display and snap-to-pixel stay separate at high zoom.
Multiple frame guides show structure without arranging children.
Isometric construction
The isometric grid is a construction aid, not a filter. Choose a preset — 30° true isometric or the ratio-derived 2:1 game-art angle — then pick the plane you are building on. New shapes are drawn in that plane: a rectangle comes out as a projected quad, and a circle becomes the exact affine image of a plane circle. Existing artwork is left alone until you deliberately fit it.
Top, Front, Side — or Off. Changing the plane affects new construction only, and switching back restores ordinary 2-D drawing.
The nearest intersection is resolved as a two-dimensional problem, so a real artwork anchor lands on the lattice instead of rounded coordinates. Line snapping is a separate, opt-in mode.
Fit to Plane and Unproject are deliberate commands that apply one transform to the whole selection and keep geometry editable. Create Grid Artwork is a separate, bounded step.
Honest limits: 2:1 is exact as a ratio, but pixel-perfect output also depends on integer origin, spacing, and raster density. Arbitrary three-angle sets are drawn as directional construction guides — they are not claimed to be a physically valid trimetric projection.
Responsive composition
Use a frame's Stack / Grid controls for child relationships and the canvas grid overlays for visual alignment. Auto Layout keeps percentages, wrapping, signed spacing, borders, and overlap semantics available as the frame changes size.
Spatial arrangement
Align edges or centers against the selection, a shared frame, or the active page. Set an exact visible gap between two objects, equalize edge gaps across a sequence, or distribute reference points when object sizes differ. Every command keeps parent transforms and hierarchy intact.
Align, distribute, and Tidy Up are undoable transforms. Tidy Up exposes columns plus independent row and column gaps, preserves the selection anchor, and never creates auto layout.
Gap handles preview from the original geometry, accept keyboard input, and restore the exact document on Escape.
Bring Forward and Send Back change sibling paint order only; they never masquerade as spatial distribution.
Read the spatial arrangement contract for bounds, transforms, eligibility, and supported boundaries.
Workplace ergonomics
Reclaim maximum screen real estate whenever focus demands it. Both the Layers and Inspector sidebars are elevated, 100% opaque floating containers that can be collapsed instantly via dedicated header buttons or keyboard shortcuts (Ctrl+B and Ctrl+Shift+B).
When collapsed, floating direct-manipulation edge restore pills appear on the canvas margin, allowing instant one-click panel restoration without menu navigation. Side splitters feature an expanded 14px hit target for effortless drag adjustments on mouse and trackpad.
The Inspector is context-aware rather than a catalogue of every property: sections appear only when they apply to the current selection, common controls stay visible, and advanced options can be expanded without adding another modal step. Section visibility, order, and collapse state are remembered per workspace, while keyboard and screen-reader users retain the same actions through real disclosure buttons and the section manager.
Embedded images are stored once in the document and shared by every placement. Crops, fit, rotation, flips, masks, and treatments remain per-use edits, while the canvas resolves the same source through its local decode cache on desktop and web. Payload-free asset references are repaired at document and render boundaries, so reopening or switching workspace does not turn an image into a grey placeholder. Home previews use that same canonical scene pipeline and can rebuild their disposable cache from the saved document when an older preview is missing.

The rendering pipeline is built on IR-replay (ADR-0001), validated empirically on Wayland Linux. The engine uses viewport culling, dirty-rect redraw, and spatial indexing for fast hit testing. The SubtreeReplayCache optimizes repeated rendering of unchanged subtrees. The minimap reuses the same world bounds, page placement, camera rotation, and live canvas dimensions as the main surface, so navigation remains an honest overview rather than a second approximation of the document. The overview's own ink is not eyeballed either: every object kind resolves from an audited token held to a 3:1 non-text contrast floor against the map backplate in Light, Dark, and High Contrast, and the viewport rectangle — the one mark you have to be able to find — has a minimum drawn size and a contrast ring so it stays readable and grabbable at any zoom.
The same facade works on desktop (native Rust via Tauri IPC) and web (WASM), with the browser-side renderer retaining an authoritative replay fallback when an accelerated or worker path cannot provide a fresh frame.
Current limitations: