The Background component - React Flow

Source on GitHub 

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

NameTypeDefault
idstring

When multiple backgrounds are present on the page, each one should have a unique id.

colorstring

Color of the pattern.

bgColorstring

Color of the background.

classNamestring

Class applied to the container.

patternClassNamestring

Class applied to the pattern.

gapnumber | [number, number]

The gap between patterns. Passing in a tuple allows you to control the x and y gap independently.

20
sizenumber

The radius of each dot or the size of each rectangle if BackgroundVariant.Dots or BackgroundVariant.Cross is used. This defaults to 1 or 6 respectively, or ignored if BackgroundVariant.Lines is used.

offsetnumber | [number, number]

Offset of the pattern.

0
lineWidthnumber

The stroke thickness used when drawing the pattern.

1
variantBackgroundVariant

Variant of the pattern.

BackgroundVariant.Dots
styleCSSProperties

Style 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 unique id prop!

Last updated on

A project by the xyflow team

We are building and maintaining open source software for node-based UIs since 2019.