UXP Toolchain

UXP plugins are built using modern JavaScript with the UI created using subsets of HTML and CSS. See Technology Stack for more detail.

Tools for Development

A Basic Toolchain

In order to build a UXP-based plugin, you'll need the following pieces of software:

Here is a step-by-step walkthrough showing the creation of a Photoshop UXP plugin.

Advanced Toolchain

If you're using the UXP Developer Tool, and using plain JavaScript instead of React, you probably don't need any of the following tools.

Installing the Tooling

Intellectual Toolchain

Before starting to build a plugin, you should have a good working knowledge of modern JavaScript. If you're coming from an ExtendScript background and haven't used recent JavaScript, you'll want to make sure that you understand concepts including asynchronous functions, newer JavaScript syntax (e.g., let/const vs "var"), and things like anonymous functions and arrow function expressions. There are thousands of websites and online videos that explain these concepts.

If you're going to be building a non-trivial UI into your plugin, you should also become familiar with React.

In order to build React-based plugins, you'll need to know a bit about NodeJS and npm, the Node Package Manager. Some plugin examples use Yarn, an alternative to npm.

Useful Utilities and Resources

Kitchen Sink Example

This is sample code, not actually a tool. But the uxp-ui-kitchen-sink-plugin is very useful in showing the kinds of controls you can use in UXP. It covers both Spectrum and native controls.

HTML Playground

The HTML Playground plugin is designed to make it easy to test out simple HTML layouts in Photoshop using UXP's layout engine. To use this, install the plugin using the UXP Developer Tool.

batchPlay Logger for ExtendScript developers

Plug the ExtendScript BatchPlay logger jsx code into your ExtendScript project, and it will print out all your executeAction and executeActionGet methods in a format suitable for use with UXP's BatchPlay.