Skip to content

Kanban

Displays tasks across draggable columns, allowing users to organize projects, track progress stages, and reorder cards intuitively.

24.1 KB
•
Updated on August 21, 2026

Installation

Bash

Usage

Code
Code

Examples

Overlay

Persist to a backend

Persisting moves

Keep value and onValueChange so the board reshuffles live while dragging, and use onValueCommit to save. It fires once per completed drag (never during the hover preview) with the final board and a previousValue snapshot, so you can update optimistically and roll back on error. Its meta.kind tells you whether a card moved ("item") or a column was reordered ("column").

Code

If a user might start another drag before the mutation settles, prefer a refetch in onError instead of restoring the snapshot, so a newer arrangement is not clobbered.

If you do not need the live cross-column preview, onMove is a simpler alternative: it fires once on drop for item moves and lets you apply the move yourself. Column reorders still arrive through onValueChange.

API Reference

Kanban

The root component that provides the kanban context and manages the items state.

KanbanCommitMeta<T> is { kind: "item" | "column"; event: DragEndEvent; activeContainer: string; activeIndex: number; overContainer: string; overIndex: number; previousValue: Record<string, T[]> }.


KanbanBoard

The horizontal container for kanban columns.


KanbanColumn

An individual column within the kanban board.


KanbanColumnHandle

The drag handle for a column (if columns are sortable).


KanbanColumnContent

The scrollable area within a column that holds the items.


KanbanItem

An individual draggable item within a column.


KanbanItemHandle

The drag handle for an individual item.


KanbanOverlay

The ghost element displayed during a drag operation.

All 6 variations

Kanban board with frame columns

Minimal kanban with stacked frame

Feature roadmap kanban with progress

Keep in mind

  • MIT License: Free and open-source for personal and commercial use. Feel free to copy, tweak, and adapt the components to match your exact needs.
  • Credits & Inspiration: Some components on this site are inspired by or recreated from great ideas across the web. I'm not here to take credit; just to learn, experiment, and push interface craft further.
  • Reach out & Claims: If an attribution was missed, or if you have any inquiry or claim, feel free to reach out directly on X to @adrielzimbril. I'll be glad to update or resolve it right away.