Kanban
Boards and tasksMITDrag-and-drop kanban board for task management with multi-column layout controls.
bun add @otfdashkit/ui
Preview
KanbanBoards and tasks
Code
@otfdashkit/uiimport { 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.
| Prop | Type | Default | Description |
|---|---|---|---|
| columnsrequired | KanbanColumnDef[] | ||
| className | string | ||
| onMoveCard | (cardId: string, fromCol: string, toCol: string) => void |