Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tsdraw.com/llms.txt

Use this file to discover all available pages before exploring further.

The camera is represented by a Viewport:
interface Viewport {
  x: number
  y: number
  zoom: number
}

Control

editor.setViewport({ x: 0, y: 0, zoom: 1 })
editor.zoomIn()

Range

The default range is 0.1 to 8. Customize via props:
<Tsdraw cameraOptions={{ zoomRange: { min: 0.5, max: 4 } }} />

Interaction

Users can pan via:
  • Hand tool
  • Two-finger drag (trackpad/touch)
  • Space + drag
Fast pans include deceleration momentum (slide).

Coordinates

Convert between screen (pixel) and page (canvas) space:
import { screenToPage, pageToScreen } from '@tsdraw/core'

const pagePoint = screenToPage(viewport, x, y)

Listeners

<Tsdraw onCameraChange={(vp) => console.log(vp)} />