見出し画像

Figma Variablesをプロトタイプで使う

LayerX バクラク事業部でプロダクトのデザインを担当しています森です。
以前弊社PiyaさんのNoteで紹介されていたように、Figma Variablesの登場で、かなり使いやすいものになりました。
弊社でもデザインシステムの構築にVariablesを組み込んだり、開発に繋げるためにデザイントークンの書き出しを行なったりしています。

個人的にはVariablesをプロトタイプで使うのが面白くて、以前よりプロトタイプを作る頻度上がっています。今回はプロトタイプでVariablesを使う例を紹介したいと思います。

条件の分岐

何かの条件で遷移や表示する物を変更したいことはありませんか?私はよくあります。そのために同じ画面で遷移違いを作ったりするのがすごく面倒で、プロトタイプを作りたくない理由の一つでした。

プロトタイプでVariablesが使えるようになって、真っ先に解決されたと思ったのがこれで、何かしらフラグを用意することで、簡単に遷移や表示を出し分けられるようになりました。
例のように隠し設定を用意しておくと、デモの時などとても便利です。

ログイン画面の例。設定を用意しておくと遷移の変わるデモもスムーズにできます。

Figma Prototype: 条件分岐デモ
Figma Design: 条件分岐

UIを作り込む

Variablesの制限からまだまだ面倒な部分はあるのですが、シンプルなUIなら作り込めるようになってきました。細かな挙動の検証や共有などやりやすくなっています。

例では複数選択が可能なドロップダウンメニューを作っています。
メニューとタグとの排他表示など、Variablesなしでは作ろうとも思わないですよね…

画面遷移とオーバーレイだけでは難しいUIも作れます

Figma Prototype: マルチセレクトUIデモ
Figma Design: マルチセレクトUI

仕組みについて解説をと思ったのですが、長くなりそうなので別のnoteに書書きました。

これが欲しい

なかなか良くなったVariablesまわりですが、もう少し機能が追加されると嬉しいです。

プロトタイプでmodeを使いたい

Variablesの中でも一番気に入っているmodeですが、プロトタイプで使えないのが一番残念ところです。

Inspectorで条件式や計算を使いたい

Inspector上でPropertyやレイヤー、テキストなどにVariableを割り当てることができますが、Conditionalや計算式が使えないのも残念なところ。a=!bとか書けないのが辛い。

インスタンスに閉じたVariablesとConditional

閉じたVariablesが欲しすぎます。Local Variables(ファイルに対してglobalなVariables)が増えまくるのは辛いです。
一応コンポーネントに設定されたInteractionはインスタンスにも反映されるんですけど、どうもコピーのようで、元のコンポーネントを変更しても反映されないようですね。そして、関数を生やして呼びたい。

Variablesに配列を。そしてその操作をConditionalでできる

欲しい。配列にインスタンスやCollectionを入れられるとなおいいです。

フレームやコンポーネントにbeforeMountやonEnterFrame的なアクションが設定したい

初期化したいですね。特にフレームを移動したらmodeを変えたりしたい。

関数

使いまわしたいし、特にインスタンスに生やしたい。

と、まだまだ欲しい機能がたくさんですが、UIの挙動まで検証できるようになったことはすごい進化でです。

そんなFigmaを駆使してプロダクト開発を加速する仲間を募集しています

デザイナーも増え、俗人的だったものを仕組み化している段階の弊社ですが、まだまだ仲間が足りません。
興味のある方はぜひご連絡ください!