Skip to content

Kanban

The Kanban component (ui:kanban) renders a column-based board where cards can be moved between columns using keyboard controls.

Examples

View Glyph Markdown source
```ui:kanban
title: Sprint Board
columns:
- id: todo
title: To Do
cards:
- id: auth
title: Implement Auth
description: OAuth2 + JWT tokens
priority: high
tags: [backend, security]
- id: dashboard
title: Build Dashboard
priority: medium
- id: progress
title: In Progress
limit: 3
- id: done
title: Done
```

Empty board

Properties

PropertyTypeRequiredDefaultDescription
titlestringNoOptional heading.
columnsKanbanColumn[]YesBoard columns (min 1).

KanbanColumn

PropertyTypeRequiredDefaultDescription
idstringYesColumn identifier.
titlestringYesColumn heading.
cardsKanbanCard[]No[]Cards in this column.
limitnumberNoWIP limit indicator.

KanbanCard

PropertyTypeRequiredDescription
idstringYesCard identifier.
titlestringYesCard title.
descriptionstringNoCard description.
priority"high" | "medium" | "low"NoPriority indicator.
tagsstring[]NoCard tags.

Interaction events

Event kind: kanban-move

Payload fieldTypeDescription
cardIdstringMoved card ID.
cardTitlestringMoved card title.
sourceColumnIdstringOriginal column.
destinationColumnIdstringTarget column.
positionnumberPosition in target column.
allColumnsArray<{ id, title, cardIds }>Full board state.

Accessibility

  • Columns use role="listbox", cards use role="option".
  • Keyboard: Space to grab, Arrow Left/Right between columns, Up/Down within, Escape to cancel.
  • aria-live="assertive" during drag operations.