こんにちは!SaaS・DX事業部デザイナーの鍜治本(@KAJIJI_design)です。
SaaSではtoB向けツールのUIを作成するにあたり、デザインシステムを設計したり、独自のコンポーネントを活用しています。
今回はその中の一つであるButtonにフォーカスして、発見したFigmaのTipsを共有します!🙌
デザインシステムって?
日本の行政機関で初めてデジタルに特化したデジタル庁では、デザインシステムについて次のような記載をしています。
構築と推進の目的
デザインと開発を効率化し、利用者の課題解決に集中する
大規模なサービスで素早く改善サイクルを回す
一貫性を担保し、行政サービスを使いやすくする
開発チームの円滑なコミュニケーション
デジタル庁 デザインシステムより引用 www.digital.go.jp
制作側、特にデザイナーにとっては「一貫性を担保」や「開発チームの円滑なコミュニケーション」がメリットになると思います。
SaaSは今までデザイナーがひとり体制だったので、ある程度伴走しながら設計していく運用でなんとかなっていました。今年からインターン生が増えたり、チームとしてより活発に回り始めたこともあり、誰が作ってもズレのない表現ができるデザインシステムの構築を進めています。
Buttonをバリアントで切り替える
これはSaaS・DX事業部で提供している「KUROTEN」というツールで使われているボタンの一部です。
Componentsの仕組み自体はGoogleのMaterial Design3を参考にしていますが、マウスホバー・押下といった状態変化をバリアントのグループにしています。
テキストとアイコンを組み合わせられるプロパティにしているので、アイコンを任意で表示/非表示の切り替えができるようにしています。
さらに、インスタンスの入れ替えプロパティを使ってアイコン自体も入れ替えができるようにしています。今回はここのアイコン変更について悩んでいた事象を解決しました。
アイコンがデフォルトの色から変わってくれない
アイコン自体は #3F4B5B のカラーを指定しており、Filled ButtonのPrimary でアイコンを使用する場合には #FFFFFF に変更しています。
本当であれば、バリアントを入れ替えた時に色まで変わってくれると便利なのですが…
なぜかうまく反応せず、エクスポート(右斜め上矢印付きのもの)アイコンではデフォルトカラーが残っていたり、クエスチョンアイコン(?マークのもの)に至っては色が全く変わりません。
原因を探してみる
インスタンスの入れ替えで変わるもの・変わらないものがあったことから、アイコン側に原因があると仮説しました。そして、アイコン自体の構造を見直しながら切り替えたところ、2つの原因が見えてきました。
①パスやシェイプの名称が一致していない
アイコンをレイヤーから見てみると、それぞれのパスやシェイプが一致していない場合があります。今回で言うと、closeアイコンは「Vector」、external linkアイコンは「Union」になっていました。
アイコン作成時にAdobe Illustratorを使ったり、Figmaのシェイプで描画することで、最終的な名称のズレが生じてしまうようです。
(手間ではありますが)名称を一致させることで、同じシェイプと認識され、インスタンス入れ替えも反応するようになりました。
②パス・シェイプが複数に分かれている
もう一つの原因で、シェイプがグループ化されていたりフレームになっているなど、1つのシェイプにまとまっていないことが挙げられます。
画像のfolderアイコンは「Group 8」の中に2つのVectorが組み合わさってできているため、うまく反応しなかったようです。
Groupを選択した状態で、画面上部の「ブーリアングループ」内の「選択範囲の結合」をすることで1つのUnionに変換できます。
ただし、このままではUnion内に2つのVectorが存在したままです。
もう一度Unionを選択し、「ブーリアングループ」内の「選択範囲を結合」(⌘+E)をすると、1つにまとまったシェイプに変換できます。
1つにまとまったシェイプかどうかの確認は、下記の2種類があります。
- レイヤーであればUnionやVectorより下に階層ができていないかどうか
- オブジェクトの編集モードにしたときに、余計な線の重なりがないか
中にはシェイプ内に余計な線が入っているものもあり、これも削除しておいた方が無難です。Illustratorと異なり線だけ消すことができないため、ベクターネットワークを作った上で削除するとスムーズです。
まとめ
今回はバリアントのプロパティ切り替えにおける、アイコンの色の制御についてわかったことをまとめました。
- アイコン作成時にシェイプの名称を一致させる
- 複数のシェイプで構成されないように、シェイプを1つにまとめる
- 余計な線が残らないようにする
自分流で見つけた手法なので、「こっちの方がわかりやすいよ!」などあれば是非教えてください…!