syncfusion-react-diagram

Create and customize visual diagrams in React using Syncfusion Diagrams. Trigger for requests involving React component setup, nodes and connectors, flowcharts, org charts, process diagrams, BPMN or UML models, ER diagrams, layout algorithms, swimlanes, symbol palettes, and interactive diagram visua

By syncfusion · 621 installs

npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-diagram

Source repository · Upstream listing

Syncfusion React Diagram The Syncfusion React Diagram component enables building rich, interactive diagrams including flowcharts, organizational charts, BPMN process flows, UML diagrams, mind maps, and network diagrams. It renders using SVG and supports extensive customization through nodes, connectors, ports, annotations, layouts, and data binding. Table of Contents [When to Use This Skill]( when to use this skill) [Component Overview]( component overview) [Documentation and Navigation Guide]( documentation and navigation guide) [Getting Started]( getting started) [Nodes]( nodes) [Connectors]( connectors) [Labels and Annotations]( labels and annotations) [Ports]( ports) [Shapes and Styles]( shapes and styles) [BPMN Diagrams]( bpmn diagrams) [UML Diagrams]( uml diagrams) [ER Diagrams]( er diagrams) [Layouts]( layouts) [Swimlanes]( swimlanes) [Groups and Containers]( groups and containers) [Symbol Palette]( symbol palette) [Data Binding]( data binding) [Interaction and Tools]( interaction and tools) [Serialization and Export]( serialization and export) [Diagram Settings]( diagram settings) [Quick Start Example]( quick start example) [Common Patterns]( common patterns) [Module Injection Reference]( module injection reference) [Key Props]( key props) When to Use This Skill Use this skill when users need to: Build flowcharts representing processes, decision trees, or workflows Create org charts from hierarchical or flat data sources Model BPMN diagrams with activities, events, gateways, and flows Draw UML diagrams including class diagrams and sequence diagrams Visualize mind maps or radial layouts from data Design network/entity diagrams with nodes and relationship connectors Implement swimlane diagrams with lanes and phases Drag and drop shapes from a symbol palette onto a canvas Bind data to automatically generate diagram structure Serialize and restore diagram state as JSON Export or print diagram content as image/SVG Important: API Verification Required API Verification Required : Always verify API class names, properties, and signatures by reading reference files ( references/ .md ) BEFORE generating code examples. Do not assume or infer class names. Component Overview The Diagram component is built around: Nodes — Graphical shapes (rectangles, circles, flow shapes, custom) placed on the canvas Connectors — Lines/arrows linking nodes or freestanding points Annotations — Text labels attached to nodes or connectors Ports — Named connection points on nodes for precise connector anchoring Layouts — Automatic arrangement algorithms (hierarchical, org chart, mindmap, radial, flowchart) Symbol Palette — Sidebar of draggable shape symbols Module System — Opt in feature modules ( Inject directive) to keep bundle size lean All diagram elements are rendered using SVG for crisp, resolution independent graphics. Documentation and Navigation Guide Getting Started 📄 Read: [references/getting started.md](references/getting started.md) When to read: First time setup of the Diagram component Installing packages, CSS imports, and theme configuration Creating a minimal DiagramComponent Understanding the Inject module system Next.js or Preact integration Covers: npm install and dependencies Vite/CRA project setup CSS theme import paths Basic DiagramComponent with nodes and connectors Module injection with <Inject services={[...]} / Next.js and Preact usage notes Nodes 📄 Read: [references/nodes.md](references/nodes.md) When to read: Adding, positioning, and sizing nodes Customizing node appearance (fill, stroke, shadow) Working with node shapes (Flow, Basic, Path, Image, HTML) Handling node events (click, drag, resize) Expanding/collapsing nodes at runtime Setting default node properties via getNodeDefaults Covers: Creating nodes via nodes collection offsetX / offsetY , width / height positioning Adding/removing nodes at runtime ( diagram.add , diagram.remove ) Style properties (fill, strokeColor, opacity, gradient) getNodeDefaults pattern for consistent styling Node expand/collapse with expandIcon / collapseIcon Node interaction events Connectors 📄 Read: [references/connectors.md](references/connectors.md) When to read: Drawing lines/arrows between nodes or freestanding points Choosing connector type (Straight, Orthogonal, Bezier) Configuring connector segments and routing Customizing decorator (arrow) shapes Setting sourceID / targetID to link nodes Setting getConnectorDefaults for consistent styling Covers: Connector types: Straight , Orthogonal , Bezier sourcePoint / targetPoint for freestanding connectors sourceID / targetID for node to node connections Multiple segment configuration Bezier control points and segment edit orientation Arrow/decorator customization Connector events and interaction getConnectorDefaults pattern Labels and Annotations 📄 Read: [references/labels and annotations.md](references/labels and annotations.md) When to read: Adding text labels to nodes or connectors Styling annotation text (font, color, bold, alignment) Making labels draggable or editable Positioning labels relative to nodes/connectors Handling label specific events Covers: annotations array on nodes and connectors Label content , style , offset , alignment Node labels vs. connector labels Label interaction (edit on double click, drag) Label appearance (background, border, padding) Label events Ports 📄 Read: [references/ports.md](references/ports.md) When to read: Creating named connection points on nodes Controlling where connectors attach to a node Styling and positioning ports Restricting connector connections to specific ports Handling port interaction events Covers: Port types and ports array on nodes Port positioning ( offset , alignment ) Port appearance (shape, fill, stroke) Connecting connectors to specific ports via sourcePortID / targetPortID Port interaction and visibility options Port events Shapes and Styles 📄 Read: [references/shapes and styles.md](references/shapes and styles.md) When to read: Choosing the right shape type (Flow, Basic, Path, Image, HTML, Native SVG) Applying fill colors, gradients, and stroke styles Customizing node appearance with CSS or themes Understanding shape property structure Covers: shape.type options: Flow , Basic , Path , Image , HTML , Native Flowchart shape values (Terminator, Process, Decision, etc.) Basic shape values (Rectangle, Ellipse, Diamond, etc.) Style properties: fill , strokeColor , strokeWidth , strokeDashArray , opacity Linear and radial gradients Shadow effect CSS class based styling BPMN Diagrams 📄 Read: [references/bpmn diagrams.md](references/bpmn diagrams.md) When to read: Modeling business process flows using BPMN notation Using BPMN specific shapes (activities, events, gateways) Drawing sequence flows, message flows, associations Adding data objects, data sources, text annotations, and groups Covers: BpmnDiagrams module injection BPMN shape type: shape.type = 'Bpmn' Activities: Task types, Subprocess, Expanded Subprocess Events: Start, End, Intermediate events and their triggers Gateways: Exclusive, Parallel, Inclusive, Complex Flows: Sequence, Message, Association Data objects and data sources BPMN groups and text annotations UML Diagrams 📄 Read: [references/uml diagrams.md](references/uml diagrams.md) When to read: Building UML class diagrams with attributes and methods Modeling relationships (association, generalization, dependency) Creating UML sequence diagrams with lifelines and messages Working with classifiers (class, interface, enumeration, collaboration) Covers: UML class diagram shapes ( shape.type = 'UmlClassifier' ) Classifier types: Class, Interface, Enumeration, Collaboration Attributes, operations, and members syntax UML relationship connector types UML sequence diagram ( shape.type = 'UmlActivity' ) Lifelines, messages, and fragments ER Diagrams 📄 Read: [references/entity relationship diagrams.md](references/entity relationship diagrams.md) When to read: Building Entity Relationship diagrams to visualize database structure Creating ER entity nodes representing database tables with fields Defining field properties (primary key, foreign key, data type, constraints) Adding or removing entity fields at runtime Connecting entities with ER relationship connectors and multiplicity Styling ER entity headers, field rows, and alternating row colors Tracking entity field changes via events Covers: ErDiagrams module injection ( Diagram.Inject(ErDiagrams) ) ER entity node: shape.type = 'Er' with ErShapeModel Header configuration: annotation , height , style Field configuration: id , name , dataType , isPrimaryKey , isForeignKey , constraints addErField / removeErField runtime methods fieldDefaults : alternateRowColors , height Field level and node level style overrides erEntityChanged event for tracking field modifications ER relationship connectors with ErConnectorShapeModel Crow's Foot multiplicity: One , Many , ZeroOrOne , OneOrMany , ZeroOrMany , OneAndOnlyOne Layouts 📄 Read: [references/layouts.md](references/layouts.md) When to read: Automatically arranging nodes in a tree, hierarchy, or radial pattern Creating org charts driven by parent child data Building mind maps from data sources Configuring flowchart layouts with decision/process shapes Customizing layout spacing, orientation, and alignment Covers: HierarchicalTree — top down/left right tree layouts OrganizationalChart — classic org chart with getNodeDefaults / getConnectorDefaults MindMap — branching mind map layout RadialTree — circular radial layout Flowchart layout (automatic flow arrangement) ComplexHierarchicalTree for multi parent hierarchies layout property: type , orientation , margin , horizontalSpacing , verticalSpacing LayoutAnimation module Layout events Swimlanes 📄 Read: [references/swimlanes.md](references/swimlanes.md) When to read: Creating multi lane process diagrams Adding phases to represent timeline or stages Configuring swimlane headers and orientation Placing child nodes inside lanes Using swimlane shapes from the symbol palette Covers: Swimlane shape.type = 'SwimLane' Lanes and phases configuration Header text, size, and orientation Child nodes inside lanes Swimlane palette integration Swimlane interaction (add/remove lanes) Groups and Containers 📄 Read: [references/groups and containers.md](references/groups and containers.md) When to read: Grouping multiple nodes for collective movement/selection Adding/removing children from groups at runtime Using container nodes to visually bound child nodes Configuring padding, fit to children behavior Covers: Group node shape.type = 'Group' and children array Grouping/ungrouping nodes via diagram methods Adding children at runtime Container node configuration Padding and auto fit behavior for containers Symbol Palette 📄 Read: [references/symbol palette.md](references/symbol palette.md) When to read: Adding a drag and drop shape sidebar to your diagram app Defining custom symbol sets (palettes) Customizing palette icon size, search behavior, and accordion Handling symbolDragEnter / symbolDrop events Covers: SymbolPaletteComponent setup alongside DiagramComponent Defining palettes with symb