diff --git a/.changeset/cyan-houses-shout.md b/.changeset/cyan-houses-shout.md
new file mode 100644
index 00000000..83cd87fe
--- /dev/null
+++ b/.changeset/cyan-houses-shout.md
@@ -0,0 +1,5 @@
+---
+'@xyflow/react': patch
+---
+
+fix(background): use offset prop correctly for dots variant
diff --git a/packages/react/src/additional-components/Background/Background.tsx b/packages/react/src/additional-components/Background/Background.tsx
index 738ed699..fe6bee04 100644
--- a/packages/react/src/additional-components/Background/Background.tsx
+++ b/packages/react/src/additional-components/Background/Background.tsx
@@ -24,7 +24,7 @@ function BackgroundComponent({
// only used for lines and cross
size,
lineWidth = 1,
- offset = 2,
+ offset = 0,
color,
bgColor,
style,
@@ -39,13 +39,11 @@ function BackgroundComponent({
const gapXY: [number, number] = Array.isArray(gap) ? gap : [gap, gap];
const scaledGap: [number, number] = [gapXY[0] * transform[2] || 1, gapXY[1] * transform[2] || 1];
const scaledSize = patternSize * transform[2];
+ const offsetXY: [number, number] = Array.isArray(offset) ? offset : [offset, offset];
+ const scaledOffset: [number, number] = [offsetXY[0] * transform[2] || 1, offsetXY[1] * transform[2] || 1]
const patternDimensions: [number, number] = isCross ? [scaledSize, scaledSize] : scaledGap;
- const patternOffset = isDots
- ? [scaledSize / offset, scaledSize / offset]
- : [patternDimensions[0] / offset, patternDimensions[1] / offset];
-
const _patternId = `${patternId}${id ? id : ''}`;
return (
@@ -69,10 +67,10 @@ function BackgroundComponent({
width={scaledGap[0]}
height={scaledGap[1]}
patternUnits="userSpaceOnUse"
- patternTransform={`translate(-${patternOffset[0]},-${patternOffset[1]})`}
+ patternTransform={`translate(-${scaledOffset[0]},-${scaledOffset[1]})`}
>
{isDots ? (
-
+
) : (