LowCodeStacks™
Sign in

NewPower Apps · canvas componentData display✓ Tested in StudioMIT License

Kanban board

Columns and cards from two tables, each card moved left or right with a button or the keyboard. Work-in-progress limits stop a full column taking more, and OnMove tells your app what moved where.

Name in Studio
lcsKanban
Version
0.1.0
Properties
17 inputs · 4 outputs · 2 events · 1 action
Sign in to copy

Free with an account

No ratings yet

Sign in to copy

Variations

As it is when you paste it, with every input at its default.

To do

2

  • MarketingDraft the onboarding emailDue Friday
  • EventsBook the venue for the launchTwo quotes in

In progress

2 of 3

  • AutomationBuild the approval flowWaiting on the finance list
  • Power AppsFix the gallery that stops at 500 rowsDelegation warning on Filter

In review

2 of 2 · Full

  • Power BICheck the sales report totalsTwo regions differ
  • DataverseRead the security roles planComments by Tuesday

Done

1

  • GovernanceTurn on the data policySigned off

Full: review

Formulas on this screen

Set the same ones in Studio to try it the same way; there, each Notify shows its event in a banner, which this preview leaves out so nothing covers the component. The instance names are the ones Studio gives the first copy on a screen.

  • Screen1.OnVisible = ClearCollect(colCards, {Key: "c1", Column: "todo", Title: "Draft the onboarding email", Detail: "Due Friday", Tag: "Marketing"}, {Key: "c2", Column: "todo", Title: "Book the venue for the launch", Detail: "Two quotes in", Tag: "Events"}, {Key: "c3", Column: "doing", Title: "Build the approval flow", Detail: "Waiting on the finance list", Tag: "Automation"}, {Key: "c4", Column: "doing", Title: "Fix the gallery that stops at 500 rows", Detail: "Delegation warning on Filter", Tag: "Power Apps"}, {Key: "c5", Column: "review", Title: "Check the sales report totals", Detail: "Two regions differ", Tag: "Power BI"}, {Key: "c6", Column: "review", Title: "Read the security roles plan", Detail: "Comments by Tuesday", Tag: "Dataverse"}, {Key: "c7", Column: "done", Title: "Turn on the data policy", Detail: "Signed off", Tag: "Governance"})

  • lcsKanban_1.Cards = colCards

  • lcsKanban_1.OnMove = UpdateIf(colCards, Key = CardKey, {Column: ToColumn})

  • lcsKanban_1.OnCardSelect = Notify("Open " & LookUp(colCards, Key = CardKey).Title)

  • Label1.Text = "Full: " & lcsKanban_1.FullColumns

A web replica that behaves as the component does in Power Apps. In Studio it uses Microsoft's controls, which can look slightly different.

Add it in five steps

  1. In Power Apps Studio, open Settings > Updates and check that Modern controls and themes and Enhanced component properties are on.
  2. Open the Components tab in the tree view and select New component.
  3. Select an empty part of Studio, so the new component isn't selected.
  4. Copy the YAML on this page and press Ctrl+V. lcsKanban appears with all its properties.
  5. On a screen, insert it from Insert > Custom > lcsKanban.

What it needs

  • No premium licence: standard controls, no connectors
  • Modern controls and themes: on
  • Enhanced component properties: on
  • Tested in Power Apps Studio 3.26094.9 on October 17, 2026
  • Version 0.1.0

Properties (24)

Read from the component's own YAML, so they always match what you paste.

Inputs
PropertyKindTypeDefault
Columns

The board's columns, left to right: Key, Title and Limit (the most cards the column may hold; 0 for no limit).

InputTableTable( {Key: "todo", Title: "To do", Limit: 0}, {Key: "doing", Title: "In progress", Limit: 3}, {Key: "review", Title: "In review", Limit: 2}, {Key: "done", Title: "Done", Limit: 0} )
Cards

Every card: Key, Column (the Key of its column), Title, Detail and Tag. Cards show in the order of this table.

InputTableTable( {Key: "c1", Column: "todo", Title: "Draft the onboarding email", Detail: "Due Friday", Tag: "Marketing"}, {Key: "c2", Column: "todo", Title: "Book the venue for the launch", Detail: "Two quotes in", Tag: "Events"}, {Key: "c3", Column: "doing", Title: "Build the approval flow", Detail: "Waiting on the finance list", Tag: "Automation"}, {Key: "c4", Column: "doing", Title: "Fix the gallery that stops at 500 rows", Detail: "Delegation warning on Filter", Tag: "Power Apps"}, {Key: "c5", Column: "review", Title: "Check the sales report totals", Detail: "Two regions differ", Tag: "Power BI"}, {Key: "c6", Column: "review", Title: "Read the security roles plan", Detail: "Comments by Tuesday", Tag: "Dataverse"}, {Key: "c7", Column: "done", Title: "Turn on the data policy", Detail: "Signed off", Tag: "Governance"} )
CurrentKey

The Key of the card to mark as selected, from your app. Leave it blank and the board marks the card last selected.

InputText""
BlockWhenFull

When true, a card can't be moved into a column that has reached its Limit: the button to move it there is turned off.

InputBooleantrue
ShowDetail

Shows each card's Detail line.

InputBooleantrue
ShowTags

Shows each card's Tag above its title, in your colour.

InputBooleantrue

Guide

Use lcsKanban for work that moves through stages: tasks, requests, applications, support tickets, content waiting for review. Canvas apps have no Kanban control, and their galleries have no drag-and-drop events, so the usual answers are a code component your admin has to approve or a custom page. This component works in any canvas app:

  • Columns and cards from two tables: Columns (Key, Title, Limit) and Cards (Key, Column, Title, Detail, Tag). Your data stays yours: the board shows what you give it.
  • Moves with buttons, not dragging: each card has a ← and → button that moves it to the column beside it. They're real buttons, so they work with a mouse, a finger, Tab and Enter, and a screen reader.
  • Work-in-progress limits: give a column a Limit and its header shows "2 of 3". At the limit the header says "Full", the column gets an amber edge, and with BlockWhenFull on, nothing can be moved into it.
  • Tells your app what happened: OnMove(CardKey, ToColumn, FromColumn) runs when a card moves, and OnCardSelect(CardKey) when one is selected. You save the change; the board shows it as soon as Cards changes.
  • Reads at a glance: a tag in your colour, a bold title, one detail line, and the selected card outlined in your colour.
  • Motion that feels premium: a card that has just moved glows in your colour, a selected card's outline draws itself around it, a column that fills up pulses in amber, and an empty column shows a tray that rises into place. Turn it off with Motion; it never plays for people who've asked their device for reduced motion.
  • AccentColor, a Dark theme, and every word it shows or reads out as an input, for your language.

Did it work for you?

No ratings yet.Nobody has said it worked in their app yet.

Sign in to rate it or to say it worked in your app.

Comments

No comments yet. Share how you used it, or ask something.

Sign in to comment or reply. Comments show under a display name you choose, never your email.