canvas-core 0.2.0

Core canvas logic for Saorsa Canvas - scene graph, state management, input handling. Compiles to WASM for universal portability.
Documentation

canvas-core

Core canvas logic for Saorsa Canvas — scene graph, state management, input handling, and persistence.

Features

  • Scene graph with typed elements (text, charts, images, 3D models)
  • Transform system with position, size, rotation, and z-ordering
  • State management with undo/redo history
  • Scene persistence via SceneStore
  • Compiles to WASM for browser deployment

Installation

[dependencies]
canvas-core = "0.1.4"

For WASM targets:

[dependencies]
canvas-core = { version = "0.1.4", features = ["wasm"] }

Usage

use canvas_core::{Scene, element::{Element, ElementKind, Transform}};

let mut scene = Scene::new(800.0, 600.0);

scene.add_element(
    Element::new(ElementKind::Text {
        content: "Hello Canvas".to_string(),
        font_size: 24.0,
        color: "#000000".to_string(),
    })
    .with_transform(Transform {
        x: 10.0, y: 20.0,
        width: 200.0, height: 40.0,
        rotation: 0.0, z_index: 0,
    })
);

License

MIT OR Apache-2.0