概要
2025年4月11日にFriends of Figma Osaka #07 w/ FoF Nagoyaというイベントがあり、そこでお話しました。
以降は実際の登壇で使用した台本と、スライドのスクリーンショットです。
また録画もYouTubeに上がっています。
良ければこちらもご覧ください。
導入
では早速「規模にあわせたデザインシステムの考え方」についてお話します。
みなさん日頃デザインシステムの事例を色々調べますよね?
その際見つかる事例って、隅々まで作り込まれたものばかりですよね?
GoogleやAtlassianのようなビッグテックのものはもちろん、日本企業でもSmartHRやユビーなどの事例を見ると「真似したい」という気持ちと「こんなに網羅的に作るなんて途方も無い」という気持ちが同時に湧いてくると思います。
ところで、ビッグテックと同レベルの細かさや網羅性があることが、常に最善の選択なのでしょうか?
そうでもありません。
まだ小さいプロダクトや成熟していない組織に、細かく網羅的過ぎるデザインシステムを適用しても、逆に上手くワークしないことが多いです。
というわけで、ここからは具体的な事業・会社の規模別に、どこまで作るのをお勧めするかを紹介します。
注意
なんですが、先に一点だけ注意です。
話を分かりやすくするために、一番ポピュラーな言葉である「デザインシステム」をタイトルに使っていますが、実態としてはコンポーネントライブラリやトークンライブラリに閉じていることも多いです。
デザイン原則やユビキタス言語の定義、あるいはコードとFigmaデータとの同期などもデザインシステムを語る上では外せませんが、Friends of Figmaのイベントであることを踏まえても今日はFigma内の話に焦点を当てます。
具体例
では、具体的な例を見ていきましょう。
事業や会社の規模に応じて、どのようにデザインシステムを構築していくべきか、いくつかの観点から説明します。
事業のフェーズ
「ローンチ前・直後」「成長期」「成熟期」の3つのフェーズに分けてお話します。
ローンチ前・直後
- 特に重要な要素以外は既存・外部アセットを活用
- グローバルトークンのみの定義でもOK
まず、サービスをローンチする前や直後の段階では、あまり細かく作り込む必要はありません。
この時期は、コーポレートカラーやブランドカラーなど、本当に重要なもの以外は、世の中にある既存のアセットをそのまま使うことをお勧めします。
例えば、Tailwind CSSやPanda CSSなどで定義されている色をそのまま使っても問題ありません。
アイコンやイラストなどを内製しようとすると、途轍もなく時間がかかってしまいます。
この時期は、グローバルトークンだけを定義しておけば十分です。
なぜなら、まだ何をエイリアストークンにすべきか、何がどれくらいの粒度で必要になるかを見極めることが難しいからです。
今さらっとグローバルトークン、エイリアストークンという話をしました。
簡単にだけ説明すると、RGBやHEXの値に名前をRedとかBlueとかの名前をつけたのがグローバルトークンで、Grayの800はテキストの色、Redの500はボタンの色などといったように、それぞれの色に名前をつけたのがエイリアストークンです。
成長期
- エイリアストークンの定義開始
- 頻出コンポーネントの詳細化
- 使用頻度の低いものは作らない・触らない
サービスが成長してくると、より細かい定義が必要になってきます。
この時期には、エイリアストークンを定義していきましょう。
なぜなら、そろそろどこで何をどれくらい使っているかが見えてくるはずだからです。
また、頻繁に使うものを見極めて、細かく定義していくことが重要です。
よく変更するものは変更しやすいように、バリエーションが必要なものは、バリアントとして定義するのか、独立した別のコンポーネントとして定義するのかなどを考えていきましょう。
一方で、普段触らないものにはあまり手を入れないようにしましょう。
「念の為」で作るものは、使用頻度が少ないだけでなく、将来に禍根を残す原因にすらなります。
使ってもいないものを更新・修正する作業の虚無感ったらないですからね。
成熟期
- 蓄積された齟齬の解消と改善
- ドキュメント整備の重視
- 属人化の防止
サービスが成熟してくると、また違った課題が出てきます。
成長に伴い、齟齬が出てきている部分を直していく必要があります。
ただし、ある程度成熟するまでは、問題があってもすぐに手を入れない方が良いです。
その都度その都度修正すると、後から見たら無駄な作業だったり、筋の悪い選択をしてしまったりすることが多いからです。
この時期は、トークンやコンポーネントそのものより、ドキュメントの整備と日々の更新が重要になってきます。
事業が成熟している場合、人の追加や入れ替えが起きることも多いです。
属人化していて解消が難しい場合、「この事業は売上が大きいからすぐに対応が必要」となって、せっかくのデザインシステムを無視した運用になることもあります。
どれだけ丁寧に育ててきても、崩れるときは一瞬です。そうならないためにも、ドキュメントをしっかり整備しておくことが大切です。
SBU数(≒ 事業数、≠ プロダクト数)
次にSBU数にあわせたデザインシステムの構築についてお話します。
ただ、耳慣れない言葉かもしれませんのでSBUについて簡単にだけ説明します。
SBU(Strategic Business Unit)というのは、簡単に言うと「独立した事業単位」のことです。
例えば、同じ会社内で「ECサイト」「SaaS」「メディア」など、異なる事業を展開している場合、それぞれが1つのSBUとなります。
また、同じ業態でも、ターゲット層や運営方針が大きく異なる場合は、別のSBUとして扱うこともあります。
例えば、同じECサイトでも「一般消費者向け」「法人向け」「中古品専門」など、異なるSBUとして扱うケースもあります。
プロダクトの数ではなく、このSBUの数で判断する方が、デザインシステムの構築には効果的です。
1つ
- シンプルな1つのデザインシステム
- トークンやコンポーネントのライブラリが複数になることはある
SBUが1つだけなら、大抵の場合1つのデザインシステムを作ればOKです。
ただしデザインシステムは1つながらトークンライブラリは複数、というパターンはあるかもしれません。
2~3つ
- 複数システム or 共通システムの判断
- 共通化は慎重に
SBUが2〜3つある場合、2つのパターンが考えられます。
1つ目は、複数のデザインシステムを持つパターンです。
それぞれのシステム内で完全に独立したトークンやコンポーネントを扱います。
2つ目は、1つのデザインシステムを共通で使用するパターンです。
この場合、共通のトークンライブラリと固有のトークンライブラリ、共通のコンポーネントライブラリと固有のコンポーネントライブラリを組み合わせて運用します。
複数のSBUで、明確に共通化した方が効率よくなる場合は共通化するのが良いでしょう。
ただし、自信がない場合は下手に共通化せず、固有のデザインシステムを用意しておく方が良いです。
例えば見た目は似ていても、SBU固有のバリエーションが後から後から必要になる場合、共通化されていると分岐量が非常に多くなってしまいます。
4つ~
- メイン/サブサービスで分離すべきか判断
- 柔軟な単位での運用
- 戦略に応じた構成
SBUがたくさん、おおむね4つ以上になると、より複雑な構成が必要になってきます。
この規模になると、メインのサービス群とサブのサービス群に分かれることが多くなります。
メインのサービス群は同じ名前・ブランドを冠するプロダクトの細かなバリエーションで、サブのサービス群はあえて名前を分けたくて生まれたものや、まだ本流のプロダクト群に入れるには早い未成熟なものが含まれます。
この場合、すべてを同じルールで共通化するのは難しいです。
メインのサービス群で1つのデザインシステム、サブのサービスはサービス1つにつき1つのデザインシステム、などと単位が分かれることもあります。
紋切り型に進めず、今後の会社の戦略も踏まえて考える必要があります。
提供先
toCやtoBなど1つだけ
- シンプルな1つのコンポーネントライブラリ
提供先が1つだけの場合、シンプルです。
toCかつ社内向けなど複数
- 提供先ごとにコンポーネントを分離するか判断
- 用途に応じた最適化
提供先が複数ある場合、少し複雑になります。
同じプロダクト・ブランドでも、コンポーネントライブラリを分ける方がいいことも多いです。
ここで注意してほしいのは、コンポーネントライブラリを分けることは、デザインシステムを分けることとは異なるということです。
toCで必要なコンポーネントはプロモーション的な役割が多いものの、クライアント向けや社内管理画面などの場合「余分な装飾はいいからとにかく情報をたくさん並べた方が良い」ということが多いです。
このとき、同じコンポーネントライブラリだとコンポーネントの数が多くなりすぎてしまいます。また、コンポーネント名が「toCButton」「toBHeader」といったようなものになりがちな上に、うっかりtoCコンポーネントをtoBのUIで使ってしまったりすると、後々ややこしくなってしまいます。
実演
イベントでは実演をしていましたが、この記事ではざっくりとした説明までに留めます。
では、ここまでの話を踏まえて、デザインシステムを作ったり、更新したりする様子を実演していきます。
よくある構成を意識しつつ、今日の内容をうまく説明できるように、以下の設定で進めます。
- SBUは1つ
- ECサイト
- 最初は1つ、後から姉妹サービスが誕生
- toCのプロダクトかつ社内管理画面あり
フェーズ1 立ち上げ
- Figmaコミュニティで
Tailwind CSS
を検索 - ブランドカラーを追加
- あらかじめライブラリとビジュアルには追加しておく
- ビジュアル側は、最初は非表示状態
- 追加の実演にあわせて表示する
- トークンライブラリとしてpublish
- データとしてはpublish済みなので、そういう説明をする
- toC, 社内向けコンポーネントライブラリを作成
- toCはヘッダー、フッター、ページネーションだけ
- 社内向けはヘッダーだけ
- toC, 社内向けモックアップを作成
- 作成と言いつつ、すでに完成しているものを見せるだけ
- この時点では背景色や文字色がブレている
フェーズ2 運用安定
- 使用ルールが揺れているものを整理
- 説明に使うのはtoCだけ
- 背景色がzincの200と300、文字色がzincの800と900
- それぞれ200と900に統一
- 登場頻度が高いトークンを整理してエイリアス化
- toCと社内向けでエイリアス化する内容を変える
- テキストのbodyとheading、それぞれbase, 2xlとxs, smに
- コンポーネントはグローバルトークンを直接参照しない
- toCと社内向けでエイリアス化する内容を変える
- ドキュメントの整備
フェーズ3 姉妹サービス登場
- トークンライブラリは共通
- コンポーネントライブラリはそれぞれのサービス独自
- 新たなモックアップの作成
まとめ
最後にまとめです。
- 最初から完璧なデザインシステムを作ろうと思わず、都度必要なものを準備する
- 1度作って終わりではなく、サービスや組織の成長に合わせて更新する必要がある
- 共通化の動きがよく出るが、慎重に判断する
- デザインデータだけでなく、ドキュメントの整備なども念頭に置く
ご清聴ありがとうございました。