<Background />
The <Background /> component makes it convenient to render different types of
backgrounds common in node-based UIs. It comes with three variants: lines,
dots and cross.
import { useState } from 'react';
import { ReactFlow, Background, BackgroundVariant } from '@xyflow/react';
export default function Flow() {
return (
<ReactFlow defaultNodes={[...]} defaultEdges={[...]}>
<Background color="#ccc" variant={BackgroundVariant.Dots} />
</ReactFlow>
);
}Props
| Name | Type | Default |
|---|---|---|
id | stringWhen multiple backgrounds are present on the page, each one should have a unique id. | |
color | stringColor of the pattern. | |
bgColor | stringColor of the background. | |
className | stringClass applied to the container. | |
patternClassName | stringClass applied to the pattern. | |
gap | number | [number, number]The gap between patterns. Passing in a tuple allows you to control the x and y gap independently. | 20 |
size | numberThe radius of each dot or the size of each rectangle if | |
offset | number | [number, number]Offset of the pattern. | 0 |
lineWidth | numberThe stroke thickness used when drawing the pattern. | 1 |
variant | BackgroundVariantVariant of the pattern. | BackgroundVariant.Dots |
style | CSSPropertiesStyle applied to the container. |
Examples
Combining multiple backgrounds
It is possible to layer multiple <Background /> components on top of one another
to create something more interesting. The following example shows how to render a
square grid accented every 10th line.
import { ReactFlow, Background, BackgroundVariant } from '@xyflow/react';
import '@xyflow/react/dist/style.css';
export default function Flow() {
return (
<ReactFlow defaultNodes={[...]} defaultEdges={[...]}>
<Background
id="1"
gap={10}
color="#f1f1f1"
variant={BackgroundVariant.Lines}
/>
<Background
id="2"
gap={100}
color="#ccc"
variant={BackgroundVariant.Lines}
/>
</ReactFlow>
);
}Notes
- When combining multiple
<Background />components it’s important to give each of them a uniqueidprop!