Foblex Flow
Introduction
Overview
Nodes
Custom Nodes
Drag Handle
Node Selection
Resize Handle
Rotate Handle
Grouping
Drag to Group
Connectors
Node as Connector
Connector Inside Node
Connector Outlet
Limiting Connections
Connection Rules
Connectable Side
Connections - Editing
Drag to Connect
Click to Connect
New
Drag to Reassign
Create Node on Connection Drop
Remove Connection on Drop
Assign Node to Connection on Drop
Auto Snap
Connections - Appearance
Connection Types (Straight, Segment, Bezier, Adaptive Curve)
Custom Connection Type
Connection Behaviours
Connection Markers
Connection Content
Connection Gradients
Connections - Routing
Connection Waypoints
Connection Connectable Side
Viewport
Minimap
Zoom
Background
Auto Pan
New
Canvas Layer Ordering
New
Editor Helpers
Selection Area
Magnetic Lines
Magnetic Rects
Grid System
Add Node from Palette
Accessibility
New
Help in Positioning (Legacy)
Deprecated
Layout Engines
Dagre Layout
Dagre Auto Layout
ELK.js Layout
ELK.js Auto Layout
Reflow
Reflow on Resize
Editor State
Cut/Copy/Paste
Undo/Redo
Undo/Redo V2
Events
Drag Start/End Events
Custom Event Triggers
Control Schemes
New
Performance
Large Scene Performance
Connection Redraw Performance
Reference Apps
AI Low-Code Platform
Schema Designer
Call Center Flow
UML Diagram
Tournament Bracket
Foblex Flow

Magnetic Rects

Description

Magnetic Rects add equal spacing snapping to Foblex Flow for Angular.

When you drag a node near a row or column of already aligned nodes, the plugin:

  • detects aligned nodes on the same line (top/center/bottom or left/center/right),
  • measures the gap between neighbors,
  • suggests the same spacing for the dragged node,
  • renders rectangles that visualize the spacing zones, so the snap result is obvious.

This is especially useful for building clean diagrams, UI flows, and node editors where consistent spacing matters.

Example

[example.html] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/libs/f-examples/extensions/magnetic-rects/example.html [example.ts] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/libs/f-examples/extensions/magnetic-rects/example.ts [example.scss] <<< https://raw.githubusercontent.com/Foblex/f-flow/main/libs/f-examples/extensions/magnetic-rects/example.scss

How it works

  1. Add <f-magnetic-rects> inside <f-flow>.
  2. Configure both thresholds:
  • alignThreshold for deciding when nodes count as aligned on the helper line
  • spacingThreshold for deciding when the dragged node is close enough to snap into equal spacing
  1. Drag nodes until spacing rectangles appear and the candidate position locks in.

Tip: Start with alignThreshold="30–50" and spacingThreshold="30–50" for a more Figma-like feel.

Configuration

alignThreshold

Defines the maximum distance (in px) for nodes to be treated as aligned on the same guide line.

  • Smaller value → fewer matches, more strict alignment
  • Larger value → more matches, easier to trigger spacing hints

spacingThreshold

Controls how close the dragged node must be to the “equal spacing” position before snapping is suggested.

  • Smaller value → less snapping, more manual movement
  • Larger value → stronger snapping

Notes

  • Magnetic Rects focus on spacing. If you need classic alignment guides for edges and centers, use Magnetic Lines.
  • The plugin is UX-only and does not own your diagram state - you still control node positions.
Edit this page on GitHub