The Angular diagram library that speaks signals

Flow charts, node editors and dashboards as Angular components[(nodes)]/[(edges)] two-way signal bindings, ng-template custom nodes, verified zoneless. And the hard parts are in the box: obstacle-avoiding routing, auto-layout, undo/redo, collaboration, vector export. MIT.

npm install @grafloria/angular @grafloria/renderer @grafloria/engine
flow.component.ts
import { Component, signal } from '@angular/core';
import { DiagramCanvasComponent, GrafloriaNodeDefDirective } from '@grafloria/angular';

@Component({
  selector: 'app-flow',
  imports: [DiagramCanvasComponent, GrafloriaNodeDefDirective],
  template: `
    <grafloria-diagram-canvas
      [(nodes)]="nodes" [(edges)]="edges"
      [layout]="'elk'">
      <ng-template grafloriaNode="job" let-data="data">
        <div class="job-card">{{ data['title'] }}</div>
      </ng-template>
    </grafloria-diagram-canvas>
  `,
})
export class FlowComponent {
  nodes = signal([
    { id: 'a', type: 'job', position: { x: 0, y: 0 }, data: { title: 'Extract' } },
    { id: 'b', position: { x: 240, y: 0 }, label: 'Load' },
  ]);
  edges = signal([{ source: 'a', target: 'b' }]);
}
live — the same engine this binding wraps, drag anything
rendering…

Why teams pick it

Angular-native, not a wrapper shim

Standalone components, signal inputs, [(nodes)] two-way bindings, ng-template node definitions with template context — and the whole binding is verified zoneless, so it is ready for Angular’s future.

The editor features are included

Minimap, snap & helper lines, marquee, clipboard with cascading paste, command-based undo — plus obstacle-avoiding orthogonal routing and off-thread ELK layout. All MIT, no paid templates.

Collaboration without a sync stack

Per-property CRDT lives in the engine: hand it any transport (BroadcastChannel works serverless for same-browser tabs) and two canvases converge — live cursors and anchored comments included.

Coming from ngx-vflow or JointJS?

ngx-vflow is a lovely lightweight Angular canvas — if you need drag/connect and nothing else, it is genuinely small. Its harder parts (obstacle-avoiding curves, dagre layout) are paid source templates, and undo/export are absent. JointJS+ is deep but commercial per developer. Grafloria ships the whole surface MIT. The comparison table is sourced cell by cell.

Every demo, in your framework

The gallery is the documentation: 111 runnable pages, each executed in CI with real pointer events — and each one available in this framework’s own idiom, source shown. Angular demos — every gallery page as a real component →

Grafloria is MIT — every feature, no commercial tier. React, Next.js, Angular, Vue, React Flow, Vue Flow, ngx-vflow, JointJS and Drawflow are trademarks of their respective owners; comparative references only, no affiliation implied. Corrections welcome via GitHub issues.