Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Figma102_デザインからアプリ実装まで一貫したデザインシステムを構築するベ...

Shuzo Takahashi
March 07, 2025
3.4k

 Figma102_デザインからアプリ実装まで一貫したデザインシステムを構築するベストプラクティス

スケーラブルなデザインシステム構築の実践

Shuzo Takahashi

March 07, 2025
Tweet

Transcript

  1. LINEヤフー Media Company, Yahoo! JAPAN Media Services Group しゅーぞー Shuzo

    Takahashi LINEヤフー Media Company, Yahoo! JAPAN Media Services Group もゆ Moyuri Iseki デザインから開発まで 一貫したデザインシステムを 構築するベストプラクティス
  2. 自己紹介 高橋 柊蔵(しゅーぞー) U LINEヤフー株式会社所W U 2020年新卒入@ U Androidアプリエンジニア&UI/UXデザイナR U

    X: shuzo_create 井石 萌佑理(もゆ) n LINEヤフー株式会社所“ n 2023年新卒入” n UI/UXデザイナー
  3. FigmaでUI構造を表す 方針 Componentsの基本的方針 q 再利用するパーツは「Components」で作成す‰ q 動的に変化する部分はプロパティにす‰ q 例:タイトルや日付のテキスト、ラベルの可視性な h

    q 内包するパーツが変わるときは、Instance Swapで 表現す‰ q 各Instanceはプロパティに設定されている項目以外 を独自に変化させてはならない
  4. FigmaでUI構造を表す 方針 Componentsの実装 t Componentsの単位でUIコンポーネント関数を実g t Figmaの命名と関数の命名を揃えT t 再利用できるように特定ユースケースに依存しなq t

    ドメインオブジェクトやUI状態モデルを引数で渡さ ない、中で参照しなq t プロパティを関数の引数にそのまま実装すT t 基本的にはプリミティブな型になT t Instance SwapはUIコンポーネントを関数オブジェ クトとして引数に取ることで表現する
  5. FigmaでUI構造を表す 方針 Variantsの基本的方針 € 同じ役割のUIコンポーネントだが、ヴィジュアルその ものが大きく変わる場合(=同一のUIの構造ではない) に使h € 次のケースではVariantsで表さなg €

    レスポンシブな変化はレイアウトの構造で表現すy € 同一の構造で表せる動的な変化はPropertyで表現す y € ローカルな状態変化はVariantsとPropertyで表現し、 グローバルな状態変化はVariableなどで設定すy € 例えば、ダークテーマや画面サイズなどはVariable で変化させる
  6. デザイントークンの運用 課題 トークンが利用されていない運用における課題 トークン未利用 時の運用 デザイナー 色を定義 Color Style デザイナー

    色や命名を転記 ドキュメント (手動で書く) エンジニア ドキュメントを見て実装 css, xmlなど カオス極まれな状態 ‍ 実装とデザインデータとドキュメントで定義値がズレて何が正しいのかわからない ルールの認知が不十分でエンジニアがテキトーに命名しちゃう デザインのファイルごとに独自の色が定義されまくってて、同じようなのが重複しまくり ダークテーマ対応時にツラミが爆発...
  7. デザイントークンの運用 方針 定義→実装に反映を自動化 デザイナーが色を定義 (VDライブラリを更新) Variables (共通ライブラリ) Jsonで取得 REST API

    それぞれの形式に変換 Style Dictionary 実装で使うライブラリが更新 SDK android iOS iOS React ě FigmaでVariableにトークンを追加/変更す© «› VariableからJSONを取得して、StyleDictionaryのフォーマットに成形する › StyleDictionaryで各プラットフォームのコードを生成して、デザイントークンSDKのRepositoryに commitする ț SDKが更新されるので、アプリ側で取り込む。
  8. デザイントークンの整理 事例 トークン整理の背景・経緯 【前提】ヤフーアプリのデザインシステムの構造 Yahoo! JAPAN 横断の
 デザインシステム RIFFでは
 カバーしきれないものを


    独自で定義 ヤフーアプリの
 ⁨⁩のデザインシステム § Yahoo! JAPAN 横断⁨⁩のデザインシステム「Riff」以外で必要になったUIコンポーネントやカラーパレットを ヤフーアプリのデザインシステムとしてまとめている
  9. デザイントークンの整理 方針 トークン構造の整理 (変更前)セマンティックが意味を果たしておらず、膨大なコンポーネントトークンの数
      +きせかえが考慮できていない構造 (変更後)色数を削減できる構造+きせかえの拡張性を考慮した構造に改善 ヤフーアプリ
 きせかえ Components token

    ヤフーアプリ 
 Components token きせかえ 
 Components token きせかえ
 各テーマの ColorPalette ヤフーアプリ
 Semantic token Riff 
 Semantic token Riff 
 Global token ヤフーアプリ
 Global token 点線で囲ったもの:
 デザインデータや実装時に参照可能なトークン
  10. エンジニアとデザイナーの連携 事例 デザインを実装に落とし込めない 例:Figma上で考慮しきれない実装上の課– Š OSの提供する標準コンポーネントのカスタマイズでは対応が難しn Š 既存の画面実装は宣言的UIと古い仕組みが混ざっていて、設計に工夫が必要 その結果..E Š

    実装が難しいことが判明して、Figmaの大幅な修正(手戻り)が発生しA Š エンジニアが頑張って対応したところ、複雑なコードになって実装が負債化 アプリの品質を損ねてしまったり、リードタイムが伸びる要因