Skip to content

Kanban

Boards and tasksMIT
View in Storybook

Drag-and-drop kanban board for task management with multi-column layout controls.

bun add @otfdashkit/ui

Preview

Kanban

Code

import { Kanban } from '@otfdashkit/ui'
import type { KanbanColumnDef } from '@otfdashkit/ui'

const kanbanCols: KanbanColumnDef[] = [
  { id: 'todo', title: 'To Do', cards: [{ id: 'c1', title: 'Design login page', description: 'Wireframes + hi-fi', badge: 'UI' }, { id: 'c2', title: 'Write API docs', badge: 'Docs' }] },
  { id: 'progress', title: 'In Progress', cards: [{ id: 'c3', title: 'Implement auth flow', description: 'OAuth + JWT tokens', badge: 'Backend' }] },
  { id: 'review', title: 'In Review', cards: [{ id: 'c4', title: 'Payment integration', description: 'Stripe webhooks' }] },
  { id: 'done', title: 'Done', cards: [{ id: 'c5', title: 'Set up CI/CD', badge: 'DevOps' }, { id: 'c6', title: 'Database schema', description: 'PostgreSQL migrations' }] },
]

export function Example() {
  return (
    <Kanban columns={kanbanCols} onMoveCard={(id, from, to) => console.log(`Moved ${id} from ${from} to ${to}`)} />
  )
}

Free with the SDK. This block ships in @otfdashkit/ui under the MIT license.

Props

Props declared in the Kanban source. Inherited HTML attributes are not listed.

PropTypeDefaultDescription
columnsrequiredKanbanColumnDef[]
classNamestring
onMoveCard(cardId: string, fromCol: string, toCol: string) => void