Grida Canvas Packages
A collection of high-performance canvas components for building infinite canvas applications
@grida/svg-editor
Headless, clean SVG editor. Open a file, edit it, save it — the diff is exactly the change you made. Round-trips by default, adds no proprietary noise, backend-agnostic. Experimental.
Key Features
- •Round-trips by default (byte-equal open + save)
- •Minimal-diff mutations, no proprietary noise
- •Headless core, DOM surface + React layer
- •Selection, transform, insert, inline text edit
- •Typed paint, properties, and defs/gradients
- •Core, not customizable — narrow public surface
@grida/refig
Headless Figma renderer — render Figma documents to PNG, JPEG, WebP, PDF, or SVG in Node.js (no browser) or in the browser. Deterministic exports, offline rendering from .fig, CLI and library API.
Key Features
- •Node.js and browser entrypoints
- •CLI and library API
- •Offline rendering from .fig files
- •REST API JSON input
- •Deterministic, CI-friendly exports
- •Rich text (attributed text) support
@grida/ruler
Zero-Dependency Canvas Ruler Component for Infinite Canvas. A lightweight, performant ruler component that supports zooming, panning, and custom markers.
Key Features
- •Zero dependencies
- •High performance canvas-based rendering
- •Support for zooming and panning
- •Custom markers and ranges
- •Customizable appearance
- •Responsive design
- •Both React and vanilla JS support
@grida/transparency-grid
Transparency Grid component for Infinite Canvas. A lightweight, performant transparency grid component that supports zooming, panning, and custom transformations.
Key Features
- •Zero dependencies
- •High performance canvas-based rendering
- •Support for zooming and panning
- •Customizable appearance
- •Responsive design
- •Both React and vanilla JS support
- •WebGPU support (experimental)
@grida/tree-view
Headless, agnostic tree-view controller for editors and IDEs. Zero runtime dependencies, no DOM coupling in the core, no widget library on top. React is the only optional peer.
Key Features
- •Zero runtime dependencies
- •Headless state machine (no DOM imports in the core)
- •Drag & drop with composable move constraints
- •Six subscription channels (rows, expanded, focus, drag, selection, intent)
- •Configurable keymap + type-ahead helpers
- •Virtualization-ready stable row list
- •Optional React peer (TreeProvider + useTreeSnapshot)
@grida/hud
Canvas-based heads-up display for the Grida editor viewport. Selection chrome, handles, hover, marquee, gesture state, hit-testing — rendered to a single canvas from a pure-logic state machine. No DOM overlay, no data-id traversal, no per-element React reconciliation in the hot path.
Key Features
- •Canvas-rendered (one draw per frame)
- •Pure-logic state machine, headless event core
- •Render and hit-testing as separate outputs
- •Rotation-aware selection chrome and cursors
- •Vector edit chrome (vertices, tangents, segments)
- •Host-fed extras via surface.draw(extra)
- •Tree-shakable rotation-aware cursors subpath
@grida/pixel-grid
A React component for rendering pixel-perfect grids in infinite canvas applications. This package provides a flexible and performant way to display grid patterns with zoom and pan capabilities.
Key Features
- •Pixel-perfect grid rendering
- •Zoom and pan support
- •Customizable grid appearance
- •High performance with React
- •Responsive design support