data-slots=heading, text
data-variant=centered
data-textColor=white
data-background=linear-gradient(135deg, #30186E 0%, #6432C8 100%)

Recipes

Find a focused example for the task at hand. Each recipe identifies required permissions or compatibility constraints before the code that depends on them.

Work with platform APIs

data-slots=link, text
data-width=300px
Filesystem
Read and write files using sandbox storage, user-selected entries, or broader file-system permissions.
data-slots=link, text
data-width=300px
Networking
Request remote data with fetch() or XHR, and open persistent WebSocket connections.
data-slots=link, text
data-width=300px
External processes
Open files, launch registered URL schemes, and understand the limits of external process access.
data-slots=link, text
data-width=300px
Clipboard
Read, write, and transform text while requesting only the clipboard access the plugin needs.
data-slots=link, text
data-width=300px
Host information
Inspect the host application, UXP runtime, operating system, and locale.

Build the interface

data-slots=link, text
data-width=300px
CSS styling
Apply styles, respond to host theme changes, and account for UXP CSS limitations.
data-slots=link, text
data-width=300px
HTML elements
Define interface elements in markup or create them dynamically with JavaScript.
data-slots=link, text
data-width=300px
Events and listeners
Handle clicks, input changes, keyboard actions, and Spectrum component events.

Organize and troubleshoot code

data-slots=link, text
data-width=300px
JavaScript modules
Split plugin logic across CommonJS modules with require() and module.exports.
data-slots=link, text
data-width=300px
Debugging techniques
Inspect values with console output and use temporary dialogs for quick checks.

Other resources

Looking for plugin lifecycle topics instead, like commands, panels, or modal dialogs? See How-to Guides.