LowCodeStacks™
Sign in

NewPower Apps · canvas componentNavigation and layout✓ Tested in StudioMIT License

Accordion

Expandable sections from a table of titles and text, one open at a time or several, each growing to fit its text; OpenKeys and OnToggle for your app, Toggle, ExpandAll and CollapseAll from it; keyboard-operable headers that say expanded or collapsed; light and dark.

Name in Studio
lcsAccordion
Version
0.1.0
Properties
7 inputs · 2 outputs · 1 event · 3 actions
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.

OpenKeys: "" · OpenCount: 0

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.

  • Text1.Text = "OpenKeys: """ & lcsAccordion_1.OpenKeys & """ · OpenCount: " & lcsAccordion_1.OpenCount

  • lcsAccordion_1.OnToggle = Notify(Key & If(IsOpen, " opened", " closed"))

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. lcsAccordion appears with all its properties.
  5. On a screen, insert it from Insert > Custom > lcsAccordion.

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 13, 2026
  • Version 0.1.0

Properties (13)

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

Inputs
PropertyKindTypeDefault
Items

The sections, as a table with Key, Title and Body columns, such as Table({Key: "hours", Title: "Opening hours", Body: "Weekdays 8 to 6."}).

InputTableTable({Key: "what", Title: "What is this app for?", Body: "Raising and tracking requests with the facilities team, from a broken light to a new desk. Every request gets a number and you can see its status here."}, {Key: "who", Title: "Who can see my request?", Body: "You, the facilities team and your manager. Nobody else, unless you add them."}, {Key: "long", Title: "How long does it take?", Body: "Most requests are closed within three working days. Urgent ones are picked up within the hour during opening hours."})
MultipleOpen

Lets several sections be open at once. Off, opening one closes the others.

InputBooleanfalse
DefaultOpenKeys

The sections open when the screen loads, by Key, separated by commas.

InputText""
BodySize

The text size of a section's body.

InputNumber14
AccentColor

Your brand colour, for the open section's chevron circle and the focus ring.

InputColorRGBA(15, 108, 189, 1)
Theme

Light, or Dark for a dark screen.

InputText"Light"

Guide

Use lcsAccordion for help text, FAQs, a long form split into named parts, or any screen where people want the headings first and the detail only when they ask for it. Canvas apps have no accordion; makers build one from a gallery and a visibility variable, and the row heights fight them. This component is that gallery done once:

  • Sections from a table of Key, Title and Body; each row grows to fit its text, open or closed;
  • One open at a time (the default), or several with MultipleOpen;
  • OpenKeys and OpenCount outputs, and OnToggle(Key, IsOpen) when a section changes;
  • Toggle(Key), ExpandAll() and CollapseAll() actions, so a link or a search can open the right section;
  • Headers that are real buttons, named "expanded" or "collapsed" for screen readers, each section a rounded tile, the open one white with an edge and its chevron in a circle tinted in your colour.

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.