MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Power-Apps-Canvas-Yaml

Power-Apps-Canvas-Yaml是一款data方向的AI技能,核心价值是Comprehensive guide for working with Power Apps Canvas Apps YAML structure based on Microsoft Power Apps YAML schema v3,可用于解决开发者在data领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Comprehensive guide for working with Power Apps Canvas Apps YAML structure based on Microsoft Power Apps YAML schema v3.0. Covers Power Fx formulas, control structures, data types, and source control

Last verified on: 2026-05-30
mkdir -p ./skills/power-apps-canvas-yaml && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/power-apps-canvas-yaml/SKILL.md -o ./skills/power-apps-canvas-yaml/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Power Apps Canvas Apps YAML Structure Guide


Overview

This document provides comprehensive instructions for working with YAML code for Power Apps canvas apps based on the official Microsoft Power Apps YAML schema (v3.0) and Power Fx documentation.


**Official Schema Source**: https://raw.githubusercontent.com/microsoft/PowerApps-Tooling/refs/heads/master/schemas/pa-yaml/v3.0/pa.schema.yaml


Power Fx Design Principles

Power Fx is the formula language used throughout Power Apps canvas apps. It follows these core principles:


Design Principles

- **Simple**: Uses familiar concepts from Excel formulas

- **Excel Consistency**: Aligns with Excel formula syntax and behavior

- **Declarative**: Describes what you want, not how to achieve it

- **Functional**: Avoids side effects; most functions are pure

- **Composition**: Complex logic built by combining simpler functions

- **Strongly Typed**: Type system ensures data integrity

- **Integrated**: Works seamlessly across the Power Platform


Language Philosophy

Power Fx promotes:

- Low-code development through familiar Excel-like formulas

- Automatic recalculation when dependencies change

- Type safety with compile-time checking

- Functional programming patterns


Root Structure

Every Power Apps YAML file follows this top-level structure:


yaml
App:
  Properties:
    # App-level properties and formulas
    StartScreen: =Screen1

Screens:
  # Screen definitions

ComponentDefinitions:
  # Custom component definitions

DataSources:
  # Data source configurations

EditorState:
  # Editor metadata (screen order, etc.)

1. App Section

The `App` section defines application-level properties and configuration.


yaml
App:
  Properties:
    StartScreen: =Screen1
    BackEnabled: =false
    # Other app properties with Power Fx formulas

Key Points:

- Contains application-wide settings

- Properties use Power Fx formulas (prefixed with `=`)

- `StartScreen` property is commonly specified


2. Screens Section

Defines all screens in the application as an unordered map.


yaml
Screens:
  Screen1:
    Properties:
      # Screen properties
    Children:
      - Label1:
          Control: Label
          Properties:
            Text: ="Hello World"
            X: =10
            Y: =10
      - Button1:
          Control: Button
          Properties:
            Text: ="Click Me"
            X: =10
            Y: =100

Screen Structure:

- **Properties**: Screen-level properties and formulas

- **Children**: Array of controls on the screen (ordered by z-index)


Control Definition Format:

yaml
ControlName:
  Control: ControlType      # Required: Control type identifier
  Properties:
    PropertyName: =PowerFxFormula
  # Optional properties:
  Group: GroupName          # For organizing controls in Studio
  Variant: VariantName      # Control variant (affects default properties)
  MetadataKey: Key          # Metadata identifier for control
  Layout: LayoutName        # Layout configuration
  IsLocked: true/false      # Whether control is locked in editor
  Children: []              # For container controls (ordered by z-index)

Control Versioning:

You can specify control versions using the `@` operator:

yaml
MyButton:
  Control: Button@2.1.0     # Specific version
  Properties:
    Text: ="Click Me"

MyLabel:
  Control: Label            # Uses latest version by default
  Properties:
    Text: ="Hello World"

3. Control Types


Standard Controls

Common first-party controls include:

- **Basic Controls**: `Label`, `Button`, `TextInput`, `HTMLText`

- **Input Controls**: `Slider`, `Toggle`, `Checkbox`, `Radio`, `Dropdown`, `Combobox`, `DatePicker`, `ListBox`

- **Display Controls**: `Image`, `Icon`, `Video`, `Audio`, `PDF viewer`, `Barcode scanner`

- **Layout Controls**: `Container`, `Rectangle`, `Circle`, `Gallery`, `DataTable`, `Form`

- **Chart Controls**: `Column chart`, `Line chart`, `Pie chart`

- **Advanced Controls**: `Timer`, `Camera`, `M

🎯 Best For

  • UI designers
  • Product designers
  • Claude users
  • GitHub Copilot users
  • Data professionals

💡 Use Cases

  • Generating component mockups
  • Creating design system tokens
  • Data pipeline auditing
  • Query optimization

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Power-Apps-Canvas-Yaml to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

How do I install Power-Apps-Canvas-Yaml?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/power-apps-canvas-yaml/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping usability testing

AI-generated designs should be validated with real users before development.

Ignoring data quality

AI analysis inherits all data quality issues — profile your data first.

🔗 Related Skills