mcpField
S
syncfusion-blazor-kanban

syncfusion-blazor-kanban

github.com/syncfusionDevelopment4355 installsUpdated 1w ago
Repository

About syncfusion-blazor-kanban

A skill for Blazor developers implementing Syncfusion’s Kanban component. It covers column-based task workflows, with guidance on drag-and-drop, swimlanes, and work-in-progress limits.

Key features

  1. 01Bind local or remote data
  2. 02Move cards and restrict transitions
  3. 03Group cards into swimlanes
  4. 04Set work-in-progress limits
  5. 05Customize cards and sorting

Use cases

  1. 01Build Blazor Kanban workflow UIs
  2. 02Organize tasks by assignee or category
  3. 03Limit task counts in columns

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-kanban

After installing, type/syncfusion-blazor-kanbanin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
accessibility.md
cards.md
columns.md
data-binding.md
dialog.md
dimensions.md
drag-and-drop.md
events.md
getting-started.md
localization.md
methods.md
properties.md
responsive-mode.md
sort.md
style.md
swimlane.md
tooltip.md
validation.md
workflow.md

Details

From the project README

Implementing Syncfusion Blazor Kanban Component

When to Use This Skill

Use this skill when:

  • Building Kanban boards or workflow management UIs in Blazor
  • Implementing task/card management with column-based workflows
  • Adding swimlane grouping to organize cards by assignee or category
  • Enabling drag-and-drop card movement between columns
  • Configuring WIP (Work-In-Progress) validation limits
  • Customizing card appearance with templates
  • Binding Kanban to local or remote data sources
  • Integrating Kanban with external components (Schedule, TreeView)

Quick Start

1. Install NuGet Packages
dotnet add package Syncfusion.Blazor.Kanban
dotnet add package Syncfusion.Blazor.Themes
2. Register Service (Program.cs)
using Syncfusion.Blazor;
builder.Services.AddSyncfusionBlazor();
3. Add Imports (_Imports.razor)
@using Syncfusion.Blazor
@using Syncfusion.Blazor.Kanban
4. Add Stylesheet and Script (index.html or App.razor)
<link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js" type="text/javascript"></script>
5. Basic Kanban with Cards
<SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
    <KanbanColumns>
        <KanbanColumn HeaderText="To Do" KeyField="@(new List<string>() {"Open"})"></KanbanColumn>
        <KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})"></KanbanColumn>
        <KanbanColumn HeaderText="Testing" KeyField="@(new List<string>() {"Testing"})"></KanbanColumn>
        <KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
    </KanbanColumns>
    <KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
</SfKanban>

@code {
    public class TasksModel
    {
        public string Id { get; set; }
        public string Title { get; set; }
        public string Status { get; set; }
        public string Summary { get; set; }
        public string Assignee { get; set; }
    }

    public List<TasksModel> Tasks = new List<TasksModel>()
    {
        new TasksModel { Id = "Task 1", Title = "BLAZ-29001", Status = "Open", Summary = "Analyze the new requirements gathered from the customer.", Assignee = "Nancy Davloio" },
        new TasksModel { Id = "Task 2", Title = "BLAZ-29002", Status = "InProgress", Summary = "Improve application performance", Assignee = "Andrew Fuller" },
        new TasksModel { Id = "Task 3", Title = "BLAZ-29003", Status = "Open", Summary = "Arrange a web meeting with the customer.", Assignee = "Janet Leverling" },
        new TasksModel { Id = "Task 4", Title = "BLAZ-29004", Status = "Testing", Summary = "Fix the issues reported by the customer.", Assignee = "Janet Leverling" },
        new TasksModel { Id = "Task 5", Title = "BLAZ-29005", Status = "Close", Summary = "Fix the issues reported in Safari browser.", Assignee = "Steven walker" },
    };
}

Navigation Guide

TopicReference File
Getting started (WebAssembly/Server/Web App)getting-started.md
Data binding (local, remote, ExpandoObject, Observable)data-binding.md
Column configurationcolumns.md
Card customizationcards.md
Drag and drop (internal & external)drag-and-drop.md
Swimlane groupingswimlane.md
Card editing dialogdialog.md
Events referenceevents.md
Card sortingsort.md
Workflow restrictionsworkflow.md
WIP validation (MinCount/MaxCount)validation.md
Styling and CSS classesstyle.md
Accessibility (WCAG, keyboard navigation)accessibility.md
Localization and RTLlocalization.md
Tooltipstooltip.md
Responsive moderesponsive-mode.md
Height and width dimensionsdimensions.md

Common Patterns

Kanban with Swimlane
<SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
    <KanbanColumns>
        <KanbanColumn HeaderText="To Do" KeyField="@(new List<string>() {"Open"})"></KanbanColumn>
        <KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})"></KanbanColumn>
        <KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
    </KanbanColumns>
    <KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
    <KanbanSwimlaneSettings KeyField="Assignee"></KanbanSwimlaneSettings>
</SfKanban>
Kanban with WIP Validation
<SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
    <KanbanColumns>
        <KanbanColumn HeaderText="Backlog" KeyField="@(new List<string>() {"Open"})" MinCount="2"></KanbanColumn>
        <KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})" MaxCount="3"></KanbanColumn>
        <KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
    </KanbanColumns>
    <KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
</SfKanban>
Kanban with Index-Based Sorting
<SfKanban TValue="TasksModel" KeyField="Status" DataSource="Tasks">
    <KanbanColumns>
        <KanbanColumn HeaderText="To Do" KeyField="@(new List<string>() {"Open"})"></KanbanColumn>
        <KanbanColumn HeaderText="In Progress" KeyField="@(new List<string>() {"InProgress"})"></KanbanColumn>
        <KanbanColumn HeaderText="Done" KeyField="@(new List<string>() {"Close"})"></KanbanColumn>
    </KanbanColumns>
    <KanbanCardSettings HeaderField="Title" ContentField="Summary"></KanbanCardSettings>
    <KanbanSortSettings SortBy="SortOrderBy.Index" Field="RankId"></KanbanSortSettings>
</SfKanban>

Key Properties Reference

PropertyComponentDescription
KeyFieldSfKanbanMaps the data field that determines which column a card belongs to
DataSourceSfKanbanBinds local or remote data to the Kanban
AllowDragAndDropSfKanbanEnables/disables drag-and-drop (default: true)
EnableTooltipSfKanbanShows card details on hover
EnableRtlSfKanbanEnables right-to-left layout
HeaderFieldKanbanCardSettingsMaps the unique ID field for card headers
ContentFieldKanbanCardSettingsMaps the field shown in card body
KeyFieldKanbanColumnOne or more status values that map cards to this column
AllowToggleKanbanColumnAllows column expand/collapse
MinCountKanbanColumnMinimum card count for WIP validation
MaxCountKanbanColumnMaximum card count for WIP validation
TransitionColumnsKanbanColumnRestricts cards to only drop into specified columns
AllowDropKanbanColumnPrevents cards from being dropped into a column
AllowDragKanbanColumnPrevents cards from being dragged from a column
KeyFieldKanbanSwimlaneSettingsGroups cards into swimlane rows by this field
SortByKanbanSortSettingsSorting mode: DataSourceOrder, Index, or Custom

Comments

Markdown supported