Foblex Flow is an Angular-native library for building interactive node-based editors and diagram UIs - custom nodes, smooth connections, and production-grade interaction helpers.
It’s designed for real products where users edit graphs manually: dragging nodes, connecting ports, selecting multiple items, aligning layouts, and navigating large canvases.
What you get
f-flow, f-canvas, nodes, connectors, and connections.Most diagram editors fail not on rendering, but on interaction details: hit-testing, pointer edge cases, snapping, selection UX, and consistent connection behavior.
Foblex Flow exists for teams that want these building blocks in Angular without implementing low-level drag logic, hit-testing, and SVG path rendering from scratch.
Typical use cases:
Explore live demos built with Foblex Flow:
You can also browse the source code for all demos in projects/f-examples/**.
You compose a flow from primitives: one f-flow root, one f-canvas, nodes with connectors, and connection components.
Foblex Flow focuses on rendering and interaction. Your application owns the graph model (nodes, connections, metadata) and decides how to update it. The library emits interaction events (drag, selection changes, connection create/reassign) so you can:
This page is an overview. Use these guides for exact contracts:
fNodeId, fInputId, fOutputId).[component.html] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/nodes/custom-nodes/custom-nodes.component.html [component.ts] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/nodes/custom-nodes/custom-nodes.component.ts [component.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/nodes/custom-nodes/custom-nodes.component.scss [common.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/projects/f-examples/_flow-common.scss
If this page helped you build something (or saved you from writing drag+drop and SVG connection logic from scratch), please ⭐ the repo on GitHub — it directly helps the project grow.