A highly customizable and flexible Blazor component for rendering interactive node-based diagrams, flowcharts, and mind maps.
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Blazor.Flows is a comprehensive Blazor component library that allows you to create interactive diagrams entirely within your C# Blazor application. It is built to offer maximum flexibility, allowing developers to create custom nodes, links, and implement complex interaction behaviors.
It provides a strong C# API, accessible via the IDiagramService, for managing diagram state, elements (Layers, Nodes, Ports, Links, Groups), and user interactions (panning, zooming, selection).
Follow these simple steps to integrate Blazor.Flows into your Blazor project.
-
Install the NuGet Package Add the core package to your Blazor project:
dotnet add package Blazor.Flows -
Register Scripts In your
index.htmlor_Host.cs, add the script tag:<script src="_content/Blazor.Flows/Blazor.Flows.js"></script>
-
Register Services In your
Program.csorStartup.cs, register the required services:using Blazor.Flows; builder.Services.AddBlazorFlows();
The library is designed with a set of core features to support professional diagramming applications:
- Custom Components: Use custom Razor components for Nodes, Ports, and Links.
- Diagram Service: Manage the entire diagram state via a single, injectable C# service (
IDiagramService). - Behaviors: Enable/disable features like Panning, Zooming, Dragging Nodes/Groups, Multi-Selection, and Link Creation.
- Layers and Groups: Organize complex diagrams using separate layers and composite groups.
- Virtualization: Optimized rendering for large diagrams.
- Events: Full subscription to lifecycle and interaction events (e.g.,
NodeClickedEvent,LinkAddedEvent).
- Add Z-index to diagram models (v0.0.2)
- [] Async event handling
- Move to front/back feature
- Read-Only diagrams.
- Automatic Layout Algorithms
- Undo/Redo behaviour
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
Baboo - @RickyBarb5
Project Link: https://github.com/Rickybarb5/Blazor.Flows
