【解決】カラーテーマ対応のPhotoshop用UXPプラグイン見本がほしい!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
swc-uxp-react-theme アイキャッチ画像

PhotoshopのUIの明るさ(カラーテーマ)に応じてパネルの見た目も変わるReactベースのUXPプラグインを作りたいときは、Spectrum Web Componentsを使ったUXPプラグインの資料ページを見るとサンプルが見つかります。具体的にはGitHubにある swc-uxp-react-starter です。

しかし実際試してみると、エラーでプラグインをビルドできなかったり、読み込みエラーでパネルが空になったりします。調べると、各種設定ファイルを適切に変える必要がありました。

また、パネルUIの明るさを環境設定に追従させる方法もサンプルには含まれていません。全体的に見て、すでに詳しい人でないと最初の一歩を踏み出すのが難しい印象でした。

そこで今回は、Adobe公式サンプルを、ひとまずビルドできてカラーテーマ対応に改造したPhotoshop用UXPプラグイン見本swc-uxp-react-theme を紹介します。

swc-uxp-react-themeって何?

Adobe公式サンプルswc-uxp-react-starterをもとに、各種エラーを防いでPhotoshopに読み込めるようにし、Photoshopのカラーテーマ環境設定に追従するようにしたUXPプラグインの構成ファイル一式です。複製して自分のプラグインを開発するのに利用できます。

そのほかにも次のような特徴があります。

  • panelとcommand両方が1つずつ定義されていて、増やしたり減らしたりしやすい
  • プラグイン/パネルのアイコンが用意してあり、ファイルを差し替えるだけでオリジナルにできる(webpackの設定などを変えなくてもカスタマイズ可能)
  • manifest.jsonにrequiredPermissionsの記述が追加してあり、変更が簡単

前提

swc-uxp-react-starter をもとにしているので、始めかたも必要な道具(node.js v16以上とパッケージマネージャーのyarn)も同じです。インストールしておいてください。

npmだけでできるように変えられるか試しましたが、使ったことないyarnを使うことにしたほうが楽でした。

使いかた

1 GitHubのリポジトリ sttk3/swc-uxp-react-theme をZIPダウンロードし、好きな場所に展開します

2 ターミナルなどで、展開したフォルダに移動するコマンドを実行します

3 必要なライブラリをインストールします。yarnがpackage.jsonを見て自動でうまくやってくれるので、あなたは次のコマンドを実行してしばらく待つだけです

4 プラグインをビルドします。次のコマンドを実行してください

すると、展開したフォルダにdistフォルダができます。

5 Adobe UXP Developer Toolsにて、ビルドしたプラグインを読み込みます

distフォルダにあるmanifest.jsonをAdobe UXP Developer Toolsで開きます。するとswc-uxp-react-themeが現れるので、Photoshopを起動した状態でそれをLoadしてください。

UXPプラグインをPhotoshopに読み込んでいる画像

Photoshopにパネルが表示されます。

swc-uxp-react-theme パネルの見た目 画像

あとは環境設定でカラーテーマを変えて色が変わるか確かめたり、改造したり好きなように編集してください。

オリジナルからのおもな変更部分

GitHubのリポジトリ sttk3/swc-uxp-react-theme から抜粋します。

yarn watchnpm run watchのときに起こるエラーの防止

watchのときはデバッグ用のファイルであるsource mapが生成されますが、その際名前にevalがつく設定にすると読み込み時エラーになります。cheap-source-mapなどevalがつかない設定に変更します。

Can’t resolve ‘photoshop’ のようなエラーの防止

uxpやphotoshopのようなモジュールは外部依存にしておく必要がありました。

過去にトラブルのあったmanifest.jsonのhostの記法を変更

  • hostは配列をやめオブジェクトにしました。おそらく将来的には配列になりますが、今はそうする必要はありません
  • minVersionを24.4.0のような表記から24.4方式に変えました。その記法はかつて読み込みエラーになったことがあります

manifest.jsonにrequiredPermissionsを追加

ファイルアクセスの権限を付与することがよくあるので、最初から項目を追加して編集しやすくしました。localFileSystemをfullAccessに変えるとファイルの読み書きが自由にできます。

アイコンを追加

カラーテーマに追従しないプラグインアイコンと、dark/lightの2段階のテーマで変化するパネルアイコンを追加しました。これにはアイコンファイルの追加のほか、webpack.config.jsとmanifest.jsonの適切な変更が必要です。すでにそれが済んでいるため、カスタマイズが楽です。

プラグインアイコンの定義

dark/lightの2段階に変化するパネルアイコンの定義

panelだけでなくcommandも追加

entrypoints.setupを使ってpanelとcommandの両方を指定しています。増やしたり減らしたりするのが楽です。

パネルの見た目を、Photoshopのカラーテーマ環境設定に追従するように

それぞれ機能を追加しました。

文字の色をCSS変数の–spectrum-gray-800で指定

これはSpectrum Web ComponentsのTheme(sp-theme)に由来する変数で、UIの明るさに応じて色が変化します。–uxp-host-text-colorのかわりに使うとよいでしょう。サンプルとして入れました。

作者に感謝を伝えたい!

Buy me a coffeeは、クレジットカード払いなどでクリエイターにコーヒーをおごれるサービスです。ツール・情報が役に立った! 感謝の気持ちを表現したい! というかた、おごっていただけましたら嬉しいです☕️

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

広告

コメントを残す