Skip to Content
You are viewing the v1 docs of Svelte Flow. You can find the latest version here.
ReferenceUtils

getSmoothStepPath()

Source on GitHub 

The getSmoothStepPath util returns everything you need to render a stepped path between two nodes. The borderRadius property can be used to choose how rounded the corners of those steps are.

import { Position, getSmoothStepPath } from '@xyflow/svelte'; const source = { x: 0, y: 20 }; const target = { x: 150, y: 100 }; const [path, labelX, labelY, offsetX, offsetY] = getSmoothStepPath({ sourceX: source.x, sourceY: source.y, sourcePosition: Position.Right, targetX: target.x, targetY: target.y, targetPosition: Position.Left, }); console.log(path); //=> "M0 20L20 20L 70,20Q 75,20 75,25L 75,95Q ..." console.log(labelX, labelY); //=> 75, 60 console.log(offsetX, offsetY); //=> 75, 40

Signature

Parameters:
NameTypeDefault
[0].sourceXnumber

The x position of the source handle.

[0].sourceYnumber

The y position of the source handle.

[0].sourcePositionPosition

The position of the source handle.

Position.Bottom
[0].targetXnumber

The x position of the target handle.

[0].targetYnumber

The y position of the target handle.

[0].targetPositionPosition

The position of the target handle.

Position.Top
[0].borderRadiusnumber5
[0].centerXnumber
[0].centerYnumber
[0].offsetnumber20
[0].stepPositionnumber

Controls where the bend occurs along the path. 0 = at source, 1 = at target, 0.5 = midpoint

0.5
Returns:
[path: string, labelX: number, labelY: number, offsetX: number, offsetY: number]

A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label.

  • path: the path to use in an SVG <path> element.
  • labelX: the x position you can use to render a label for this edge.
  • labelY: the y position you can use to render a label for this edge.
  • offsetX: the absolute difference between the source x position and the x position of the middle of this path.
  • offsetY: the absolute difference between the source y position and the y position of the middle of this path.

Notes

  • This function returns a tuple (aka a fixed-size array) to make it easier to work with multiple edge paths at once.
  • You can set the borderRadius property to 0 to get a step edge path.
Last updated on