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
Read and write files using sandbox storage, user-selected entries, or broader file-system permissions.
data-slots=link, text
data-width=300px
Request remote data with
fetch() or XHR, and open persistent WebSocket connections.data-slots=link, text
data-width=300px
Open files, launch registered URL schemes, and understand the limits of external process access.
data-slots=link, text
data-width=300px
Read, write, and transform text while requesting only the clipboard access the plugin needs.
data-slots=link, text
data-width=300px
Inspect the host application, UXP runtime, operating system, and locale.
Build the interface
data-slots=link, text
data-width=300px
Apply styles, respond to host theme changes, and account for UXP CSS limitations.
data-slots=link, text
data-width=300px
Define interface elements in markup or create them dynamically with JavaScript.
data-slots=link, text
data-width=300px
Handle clicks, input changes, keyboard actions, and Spectrum component events.
Organize and troubleshoot code
data-slots=link, text
data-width=300px
Split plugin logic across CommonJS modules with
require() and module.exports.data-slots=link, text
data-width=300px
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.