01
Overview
Controlled multi-column board for reordering cards within and across workflow columns with keyboard, pointer, and live-region feedback.
Usage
Guidance
Use When
- Presenting a workflow board where users move cards between ordered columns.
- Consumers own card rendering and need cinder to manage reorder affordances and change metadata.
Avoid When
- Showing a single ordered list — use sortable-list instead.
- Sorting by computed fields rather than direct manual placement.
02
When to use
Use when
- Presenting a workflow board where users move cards between ordered columns.
- Consumers own card rendering and need cinder to manage reorder affordances and change metadata.
Avoid when
- Showing a single ordered list — use sortable-list instead.
- Sorting by computed fields rather than direct manual placement.
03
Examples
Project board
Move work items between columns, reorder columns, and collapse quiet lanes.
04
Props
| Name | Type | Default | Description |
|---|---|---|---|
columns required | KanbanBoardColumn<Card>[] | ||
getCardKey required | (card: Card) => stringnumber | ||
getCardLabel required | (card: Card, column: KanbanBoardColumn<Card>, index: number) => string | ||
onColumnsChange required | (nextColumns: KanbanBoardColumn<Card>[], change: KanbanBoardChange) => void | ||
card required | snippet | ||
columnHeader | snippet | ||
columnActions | snippet | ||
emptyColumn | snippet | ||
label | text | Accessible label applied to the board's <section> root via aria-label. | |
collapsible | boolean | false | When true, each column renders a collapse/expand button that toggles its card list. |
reorderColumns | boolean | true | When true (default), columns can be reordered by dragging or keyboard. Set to false to make column order fixed. |