Kanban board & sortable lists

card-ui grid-ui list-ui tag-ui avatar-ui

The drag-to-reorder + drag-between-columns surface. Two patterns share the same primitives: a single sortable list (priority queue, playlist) and a multi-column kanban (status swimlanes, sprint board, pipeline). Both compose card-uis in containers with HTML5 drag-and-drop wiring.

When to use

When the order or column-membership of items is itself the state. A sorted list communicates priority; a kanban communicates which stage of a workflow each card is in. Reach for these when status is visible on the surface, not buried in a column of a table.

Sortable list — drag handle to reorder

Single-column list where the row order is the data. Each row carries a leading drag handle (`dots-six-vertical`), the body content, and trailing meta. Hover reveals the handle; drag picks up the row with a shadow + ghost.

Sprint priority Drag to reorder · 4 items
Ship the new auth flow Owner: Jordan · Due Friday P0 Migrate dashboard tokens Owner: Avery · Due next week P1 Add Storybook coverage for primitives Owner: Sam · No due date P2 Investigate slow startup Owner: Riley · Backlog P2

Kanban board — columns by status

Multi-column grid where each column is a status (To do · In progress · In review · Done). Cards drag horizontally between columns + vertically within. Column header shows count + collapse; per-card chrome shows the assignee avatar + tags.

To do 3
Audit kanban accessibility P1
Drag handle hit-target P2
Empty-column copy P2
In progress 2
Auth flow rebuild P0
OKLCH ramp lint rule P1
In review 1
v0.0.27 release notes P1
Done 8
Safari @scope sweep Done
Toast top-layer channel Done

Composition rules

See also