FigmaでLightning Design System v2 UI Kitを使って画面デザイン
こんにちは。木村です。
私はエンジニアですが、Lightning Design SystemのUI Kitを使ってFigmaで画面デザインをするにあたって、やり方が少しわかってきたのでチュートリアル形式でノウハウを共有したいと思います。そして、劇的に使いやすくなったSLDS UI Kitのv2がいつの間にかリリースされていたので、v1との違いについても触れながら解説します。
Figmaに詳しい方には当たり前のことばかりだと思いますので、回れ右していただくか、改善点を教えていただけたらありがたいです。
この記事の内容は以下のイベントの発表内容をまとめたものとなります。毎月2回開催していますので、よろしければご参加ください。
Lightning Design SytemのUI Kit
Lightning Design SystemのFigma用のUI Kitが以下で公開されています。
https://www.figma.com/@salesforce
そして、いつの間にかEnhanced Lightning UI(ELUI)に対応したv2が公開されていました。(ELUIについてHow We Refreshed the Lightning UI Design | Salesforceをご覧ください。)
つまり、現時点でSalesforceの画面デザインをFigmaで行う場合、2つのUI Kitがあり、現行UI(v1)を使うなら以下の4つのリソースをライブラリとして追加し、
ELUI(v2)を使うなら以下の2つのリソースを追加するとよさそうです。
Foundation: Icons | Lightning Design System | Figma (どうもアイコンは上記に含まれていなそう)
チームのライブラリとして追加する方法
上記のUI Kitを開いたあとに、下図の「ライブラリを公開…」をクリックし、画面の指示に従うと、UI Kit内のコンポーネントやタイポグラフィーがチームで使えるようになります。
無料版Figmaをご利用の方
ただし、Figmaを無料で使っているとライブラリが使えません。その場合は、自分が作成しているデザインファイルに上記UI Kitの全ページをコピーするしかなさそうです。
現行UI版とELUI版とどっちがいいの?
使い勝手の観点だと、後発のELUI版の方がFigmaのコンポーネントとして圧倒的に出来がよさそうです。例えば、以下のような大変ありがたい改善が行われています。
コンポーネントのプロパティの多くがFigmaのプロパティとして使える
Modal/Cardなど中身をデザインしたい場合にインスタンスを切り離すことなく中身のコンポーネントを設定できる
マージン・サイズなどの数値もFigmaのバリアブルとして定義された
もちろんどちら向けの画面を作りたいかが一番ではありますが、おそらくそのうちみんなELUIになるので、ELUI版で作ってしまっていいのではないでしょうか。
チュートリアルのゴール
さて、この記事ではELUI版を使って以下のような画面を作る手順を説明しながら、コツを伝えていきたいと思います。
これは何かのアプリの管理画面をイメージしています。APIキーの編集ボタンをクリックするとモーダルで編集画面が開きます。
1. UI Kitを追加する
最初に公開ライブラリをデザインファイルで使えるようにします。アセットから「チームライブラリを参照」を開き、「自分のチーム」から対象のライブラリをデザインファイルに追加します。
2. 画面フレームを作る
フレームをクリックし、デスクトップ>デスクトップを選びます。
配置したフレームをオートレイアウトに変更し、以下の設定をします。
縦に並べる
上下の間隔・パディングを全部Spacing/0(0px)にする
塗りをSurface/inverse-1にする
3. グローバルヘッダーを置く
アセットから「global」で検索し、Global HeaderとGlobal Navigationをフレームにドラッグ&ドロップします。オートレイアウトにしたので、適当に入れるだけで上から並んでくれます。
横幅を「コンテナに合わせて拡大」にすると、フレームの横幅ぴったりになります。
4. 左右2ペインのフレームを置く
ボディ部分のフレームを配置します。適当に配置した後に横縦ともに「コンテナに合わせて拡大」を設定すると楽です。
左右2ペインレイアウトにするので、このフレームはオートレイアウトで以下のように設定します。
横に並べる
間隔: Spacing/2(8px)
左右のパディング: Spacing/0(0px)
上下のパディング: Spacing/1(4px)
5. 左ペインにメニューを置く
左メニューを配置します。アセットから「Vertical Navigation」コンポーネントをドラッグ&ドロップします。
細かい設定は動画を参考にしてください。不要なメニューの削除はプロパティからはできないため、レイヤーから非表示にしています。
6. 右ペインに設定画面を置く
右ペインは縦にコンポーネントを並べていくので、まず縦のオートレイアウトのフレームを置きます。
次に上からPage Headerコンポーネント、Cardコンポーネントを置いていきます。コンポーネントプロパティを適切に変更し、完成画面になるようにしていきます。ヘッダーはほとんどのUIを非表示にしていきます。
詳細は動画をご覧ください。その中で以下の3点はちょっと変わった変更が必要なので注意してください。
ヘッダーのアイコンを変更するには、Swat standard iconでUtility Icons / settingsを選択する
カードの右上ボタンのラベル変更はカードコンポーネントではできないので、ボタンコンポーネントを直接選択して変更する
カードの角丸を0にするのは直接入力します
7. Cardの中身を作る
v2からCardコンポーネントを切り離さずに中身を設定できるようになりました。そのためには中身をコンポーネントとして作成する必要があります。
「Input - Default」コンポーネントのプロパティを変更して、リードオンリーな表示にします。Inputコンポーネントをフレームに入れてコンポーネント化します。最後にCardコンポーネントのSwap placeholderプロパティで作成したコンポーネントを選択するとCard内に作成したコンポーネントが表示されます。
8. 編集ボタンクリック時のモーダルを作成
編集ボタンをクリックしたときにモーダルで編集画面を表示するようにします。まずそのモーダルを別フレームで用意します。
アセットからModalコンポーネントをドラッグして、オートレイアウトフレームに入れて、各種プロパティを調整します。
9. モーダルの中身を作る
カードの中身に入れたAPIキー設定コンポーネントのバリアントとしてモーダルの中身のコンポーネントを作っていきます。別に別コンポーネントでもいいのですが、せっかくなのでバリアントを使ってみましょう。
APIキー設定コンポーネントを選択して、バリアントを追加します。
元々あったバリアントはType=ReadOnly、追加したバリアントをType=Editとします。Editの方のInputコンポーネントのプロパティをいい感じに変更します。
中身のコンポーネントが完成したら、ModalコンポーネントのSwap placeholderプロパティでAPIキー設定コンポーネントを選択します。すると、Typeバリアントが選べるようになるので、Type=Editを選択します。
10. モーダルを開くインタラクションを追加
最後に編集ボタンをクリックするとモーダルを開くインタラクションを追加していきます。
編集ボタンを選択し、プロトタイプタブからインタラクションを追加し、以下のように設定します。
トリガー: クリック時
アクション: オーバーレイを開く
オーバーレイ: APIキー設定モーダル
背景: チェックを入れる
モーダルの閉じる・キャンセル・保存ボタンには以下のインタラクションを追加します。
トリガー: クリック時
アクション: オーバーレイを閉じる
右上の再生ボタンをクリックするとプロトタイプの動作を確認することができます。
おわりに
イベントの発表ではバッチ実行メニューをクリックしたときの動作まで作ったのですが、記事にするのは大変なのでここまででご容赦ください。
もちろんFigmaはもっとたくさんの機能があるのですが、シンプルな業務画面であれば、SLDSのUI Kitを使って、オートレイアウトを駆使して配置していくだけでも、けっこう簡単にFigmaを使って画面デザインを試行錯誤できそうなことが伝わったのではないでしょうか?