Repo of the Day
AdobeDocs/uxp-photoshop-plugin-samples
Published: Nov 4, 2021
Open repository ↗Summary
The AdobeDocs/uxp-photoshop-plugin-samples repository collects 19 sample Photoshop plugins that demonstrate how to build extensions on Adobe's Unified Extensibility Platform (UXP). It is reference material rather than a single library, with each sample illustrating a particular API, framework, or integration pattern for Photoshop 22.0.0 and higher.
What it is useful for
Engineers learning the UXP plugin model can use these samples as concrete starting points for common plugin tasks. The table in the README groups the samples by the APIs they exercise, which makes it easier to pick a starting point for a specific problem.
A few examples from the sample list:
hello-world-js-sampleandhello-world-panel-js-sampleshow the minimum entrypoints and panel setup in vanilla JavaScript.ui-react-starter,ui-vue-starter, andui-svelte-starterdemonstrate wiring each of those UI frameworks into a UXP panel.typescript-webpack-samplecovers TypeScript with Webpack and uses the@types/photoshopdefinitions. Note that this sample requires Photoshop 23.0.0, while the rest require 22.0.0 and UXP 4.1.web-service-call-js-sampleandoauth-workflow-sampleshow fetching data from a web API and implementing an OAuth flow with a local Express server.desktop-helper-sampleuses Electron and socket.io to communicate with a UXP plugin from a separate helper app, andcross-compatible-js-sampletargets both Photoshop and XD.wasm-rust-sampleshows using Rust compiled to WebAssembly via wasm-bindgen.ui-kitchen-sinkincludes every available UI component, andplugin-info-vue-full-appis a more complete plugin with multiple entrypoints, File I/O, and Local Storage.
How engineers can use it
The documented setup is straightforward:
- Clone the repository locally.
- Open the UXP Developer Tool and use the "Add Plugin..." button to add each plugin, selecting the
manifest.jsonfile from the sample's root,plugin, ordistfolder. - Load the plugin into Photoshop through the
•••menu's Load option.
Each sample has its own README with details specific to that project, so the repository-level instructions are intentionally minimal. The README does not document framework-specific install steps, version numbers beyond the minimums in the table, or test commands, and engineers should check each sample's own folder for any extra dependencies or framework-specific configuration.