New: Power Apps Power Palette Studio#6202
Open
Sandeep-FED wants to merge 12 commits intopnp:mainfrom
Open
Conversation
…rs for enhanced color palette visualization
…ls; add new asset images for better visualization
Contributor
Sample PR validation for #6202✅ Validation status: successWe automatically validate all pull requests against our contribution guidance to ensure that all samples provide a consistent experience to our community. In order to merge this PR in a timely manner, the following criteria must be met:
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new SPFx 1.21.1 React sample web part, Power Palette Studio (samples/react-powerapps-power-palette), for generating and previewing Power Apps color palettes inside SharePoint.
Changes:
- Introduces a new SPFx web part (manifest, web part class, localization) and React UI for palette generation, editing, preview, and code export.
- Adds Fluent UI v9-based components (swatches, picker popover, preview frames, dialog, toast).
- Adds sample packaging/build configuration and documentation (README, configs, VS Code settings, Node version pinning).
Reviewed changes
Copilot reviewed 33 out of 40 changed files in this pull request and generated 17 comments.
Show a summary per file
| File | Description |
|---|---|
| samples/react-powerapps-power-palette/tsconfig.json | TypeScript build configuration for the sample. |
| samples/react-powerapps-power-palette/teams/3c76686b-dd23-44ce-b5f6-17970ba5cd1f_outline.png | Teams outline icon asset. |
| samples/react-powerapps-power-palette/teams/3c76686b-dd23-44ce-b5f6-17970ba5cd1f_color.png | Teams color icon asset. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/utils/color.ts | Palette generation + Power Apps formula generation utilities. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/models/IColors.ts | Color model + default palette. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/models/IApp.ts | App-level props contract. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/loc/mystrings.d.ts | Localization type declarations. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/loc/en-us.js | English localization strings. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/Swatches.tsx | Swatch grid UI + per-color copy action. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/PreviewCode.tsx | Dialog to preview/copy generated Power Apps code. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/Header.tsx | Sample header/title and introductory copy. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/DashboardPreview.tsx | Desktop/mobile preview mock UIs themed by palette. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/CopyToast.tsx | Clipboard “copied” toast implementation. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/ColorPicker.tsx | Fluent UI v9 popover color picker wrapper. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/components/ChooseColors.tsx | Primary orchestration UI (generate palette, export code, preview). |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/PowerPaletteStudioWebPart.ts | SPFx web part entry: render + theme plumbing + property pane. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/PowerPaletteStudioWebPart.manifest.json | Web part manifest: id/hosts/default preconfig. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/App.tsx | App root and FluentProvider wiring. |
| samples/react-powerapps-power-palette/src/webparts/powerPaletteStudio/App.module.scss | Base SPFx template styles. |
| samples/react-powerapps-power-palette/src/index.ts | Required TS root entry marker file. |
| samples/react-powerapps-power-palette/package.json | Sample dependencies/scripts/engine requirements. |
| samples/react-powerapps-power-palette/gulpfile.js | SPFx gulp build rig setup. |
| samples/react-powerapps-power-palette/config/write-manifests.json | CDN base path placeholder for manifests. |
| samples/react-powerapps-power-palette/config/serve.json | Local serve settings for hosted workbench. |
| samples/react-powerapps-power-palette/config/sass.json | Sass build configuration. |
| samples/react-powerapps-power-palette/config/package-solution.json | SPFx solution packaging configuration. |
| samples/react-powerapps-power-palette/config/deploy-azure-storage.json | Azure Storage deployment config template. |
| samples/react-powerapps-power-palette/config/config.json | Bundle entrypoint + localized resources mapping. |
| samples/react-powerapps-power-palette/README.md | Sample documentation, setup, and usage guide. |
| samples/react-powerapps-power-palette/.yo-rc.json | Generator metadata for the SPFx project. |
| samples/react-powerapps-power-palette/.vscode/settings.json | VS Code workspace settings. |
| samples/react-powerapps-power-palette/.vscode/launch.json | VS Code debug configuration. |
| samples/react-powerapps-power-palette/.nvmrc | Node version pin. |
| samples/react-powerapps-power-palette/.npmignore | npm packaging excludes. |
| samples/react-powerapps-power-palette/.gitignore | Git ignore rules for build artifacts. |
| samples/react-powerapps-power-palette/.eslintrc.js | ESLint configuration for the sample. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+1
to
+7
| import { | ||
| Button, | ||
| ColorSwatch, | ||
| makeStyles, | ||
| SwatchPicker, | ||
| SwatchPickerOnSelectEventHandler, | ||
| Text, |
Comment on lines
+52
to
+56
| return ( | ||
| <> | ||
| <CopyToast /> | ||
| <SwatchPicker | ||
| aria-label='SwatchPicker row layout' |
Comment on lines
+23
to
+27
| "title": { "default": "Power palette studio" }, | ||
| "description": { "default": "power palette studio description" }, | ||
| "officeFabricIconFontName": "Color", | ||
| "properties": { | ||
| "description": "power palette studio" |
Comment on lines
+101
to
+111
| ### Generating a Palette | ||
|
|
||
| Click the **Generate** button in the header to create a new harmonious 7-color palette. Colors are generated using HSL-based color theory to ensure visual harmony. | ||
|
|
||
| ### Customizing Colors | ||
|
|
||
| Click any color swatch to open the HSL color picker. Use: | ||
| - **Color area** — drag to set hue and saturation visually | ||
| - **Hue slider** — fine-tune the hue angle (0–360°) | ||
| - **Saturation slider** — adjust color intensity | ||
|
|
Comment on lines
+3
to
+7
| export interface ColorConfig { | ||
| color: string | ||
| value: string | ||
| "aria-label": string | ||
| } |
Comment on lines
+9
to
+31
| import { IReadonlyTheme } from "@microsoft/sp-component-base" | ||
| import { Theme } from "@fluentui/react" | ||
|
|
||
| import * as strings from "PowerPaletteStudioWebPartStrings" | ||
| import { IAppProps } from "./models/IApp" | ||
| import { App } from "./App" | ||
|
|
||
| export interface IPowerPaletteStudioWebPartProps { | ||
| description: string | ||
| } | ||
|
|
||
| export default class PowerPaletteStudioWebPart extends BaseClientSideWebPart<IPowerPaletteStudioWebPartProps> { | ||
| private _isDarkTheme: boolean = false | ||
| private _theme: Theme | undefined | ||
|
|
||
| public render(): void { | ||
| const element: React.ReactElement<IAppProps> = React.createElement(App, { | ||
| description: this.properties.description, | ||
| isDarkTheme: this._isDarkTheme, | ||
| hasTeamsContext: !!this.context.sdks.microsoftTeams, | ||
| userDisplayName: this.context.pageContext.user.displayName, | ||
| theme: this._theme, | ||
| }) |
Comment on lines
+11
to
+16
| "supportedHosts": [ | ||
| "SharePointWebPart", | ||
| "TeamsPersonalApp", | ||
| "TeamsTab", | ||
| "SharePointFullPage" | ||
| ], |
Comment on lines
+54
to
+56
| | SharePoint Full-Page App | No | | ||
| | Microsoft Teams Tab | No | | ||
| | Microsoft Teams Personal App| No | |
Comment on lines
+26
to
+28
| Generate stunning color palettes with AI-powered intelligence. Click any | ||
| color to copy, compare desktop and mobile previews, or export your | ||
| palette as code. |
Comment on lines
+14
to
+31
| "dependencies": { | ||
| "@fluentui/react": "^8.106.4", | ||
| "@fluentui/react-components": "^9.72.7", | ||
| "@fluentui/react-icons": "^2.0.314", | ||
| "@fluentui/react-migration-v8-v9": "^9.9.16", | ||
| "@microsoft/sp-component-base": "1.21.1", | ||
| "@microsoft/sp-core-library": "1.21.1", | ||
| "@microsoft/sp-lodash-subset": "1.21.1", | ||
| "@microsoft/sp-office-ui-fabric-core": "1.21.1", | ||
| "@microsoft/sp-property-pane": "1.21.1", | ||
| "@microsoft/sp-webpart-base": "1.21.1", | ||
| "@pnp/graph": "^4.17.0", | ||
| "@pnp/sp": "^1.3.11", | ||
| "@pnp/spfx-controls-react": "3.23.0", | ||
| "@pnp/spfx-property-controls": "3.22.0", | ||
| "react": "17.0.1", | ||
| "react-dom": "17.0.1", | ||
| "tslib": "2.3.1" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's in this Pull Request?
This PR adds a new SPFx web part sample — Power Palette Studio (
react-powerapps-power-palette).It lets users generate, customize, and preview color palettes for Power Apps themes — all within SharePoint. Key capabilities include:
ColorValue()formulaBuilt with SPFx 1.21.1, React, and Fluent UI v9.
Node Version
Node version used:
v22.18.0Checklist
README.mdfile's Version history. For new samples, created a newREADME.mdfile matching this templateREADME.mdhas at least one static high-resolution screenshot (i.e. not a GIF) located in theassetsfolder.README.mdcontains complete setup instructions, including pre-requisites and permissions required.nvmrcfile indicating the version of Node.js