1 viewer
Back to Components
Component · Visualization

Canvas

Renderer slot for 2D, WebGL, or WebGPU output.

Category
Visualization
Slots
3
States
2
Writer
Legacy
cre8.primitive.canvas

Preview

Live renderLegacy writer: Canvas
2D/WebGL Surface · 640x240Canvas Ready
<Canvas
  aria-label="Dynamic topology render canvas"
  contextType="2d"
  height={240}
  id="topology-canvas"
  role="img"
  width={640}
>
  <Container variant="canvas-placeholder">
    <Text text="2D/WebGL Surface · 640x240" variant="code" />
    <Badge intent="info" label="Canvas Ready" />
  </Container>
</Canvas>

Anatomy

The named parts of the rendered markup. Recipes style these hooks, and every renderer keeps them stable.

SlotDOM class
root.primitive-canvas
surface—
status—
3 rows

States and platforms

The states the contract publishes, the platforms it declares, and the style recipes that dress it.

States
loadinginteractive
Platforms
webruntime-nodecanvas
Recipes
unstyledruntime-console

Renderers

Legacy writer
Canvas has no shared writer yet: the server renders it through its legacy path, which the WASM DOM does not share.

The example above still needs shared writers for: Canvas.

Declared adapters. A status is the manifest's declaration, not a measured parity result.

TargetRendererStatus
webreactexperimental
runtime-nodeview-nodeready
ssrhtml-visualization-placeholderready
terminalterminal-textplanned
canvascanvas-adapterexperimental
5 rows

Accessibility

Semantic structure must stay available without visual styling.

  • Expose meaningful names for interactive controls.
  • Keep keyboard and pointer behavior equivalent where the platform supports it.
  • Publish state with native semantics and data attributes where the adapter supports them.