Yuri Minami
Greenstand デザインシステムのメイン画像

Greenstand デザインシステム

ボランティア主体の非営利団体における導入・実装・保守を改善するため、トークン駆動のデザインシステムとAI支援のデザイン・コード連携フローを構築

プロジェクト種別
ボランティア活動: Greenstand
担当内容
AIが扱いやすいデザインシステムとデザイン・コード連携フローの構築、システムおよびStorybookの実装。
役割・チーム
デザインエンジニアとして参加。デザインマネージャー、エンジニア、経営陣と協働
ツール
Figma, Cursor, Storybook, Token Studio

世界の森林再生コミュニティを支えるデジタルツールを開発する非営利団体Greenstand

GreenstandのUXデザインボランティアとして、56か国で利用されるアプリ群のデザインに携わりました。この仕組みは、環境団体や寄付者が活動の成果を把握できるようにすると同時に、森林再生活動に参加する人々へ収入の機会を提供しています。

Greenstand Treetrackerのアプリ群

既存のデザインシステムは実装が難しい状態だった

Greenstandのデザインチームは以前からデザインシステムの整備に取り組んでいましたが、一貫した実装と保守に必要な基盤が不足していました。その結果、エンジニアはハードコードされた値や個別の解決策に頼ることが多い状態でした。

構造

整理されていないデザイントークンにより、一貫性と拡張性のある実装が困難でした。

サポート

ドキュメントとガイダンスが限られ、導入が難しい状態でした。

品質

不要な複雑さやアクセシビリティなど、ほかにも品質上の課題がありました。

なぜ重要なのか

限られたエンジニアリングリソースと複数の優先事項を抱えるボランティア主体の非営利団体にとって、デザインからコードへの負担を減らすことは、デザインシステムの利用と保守を継続するうえで不可欠でした。

旧デザインシステムの構造上の課題

構造化されたデザインシステムと効率的なハンドオフ

これらの課題に対応するため、より明確なトークン構造を採用し、構造化され、アクセシブルで使いやすいデザインシステムへ再構築しました。さらに、効率的なデザイン・コード連携フローを整え、コンポーネントを実装し、導入と保守を支えるドキュメントを追加しました。

担当したこと

デザインシステム

  • 構造化されたトークンシステムを導入
  • 基盤を改善
  • コンポーネントを再構築

デザインからコードへ

  • AI支援のデザイン・コード連携フローを定義
  • React Nativeでトークンとコンポーネントを実装

ドキュメント

  • Storybookを導入
Greenstandデザインシステムの解決策

AIエージェントをデザイン・コード連携の推進力として活用

近年のAIの進歩を受け、エンジニアリングリソースへ過度に依存せず、デザインからコードへの変換とデザインシステムのドキュメント作成に必要な工数を減らせると考えました。学習コスト、費用、エコシステムの成熟度を踏まえ、Figma MCP、AI、Storybookを中心としたワークフローを現実的な方法として選びました。

デザインシステムのフロー

理想的なフロー: AIを活用することで、デザイナーが実装へ直接貢献でき、エンジニアの工数を抑えながら、よりスムーズで一貫したデザイン・コード連携を実現できます。

デザインシステムの構成図

人にもAIにも使いやすい
デザインシステムをつくる

シンプルで拡張可能かつアクセシブルな基盤とコンポーネントを整備

まず、デザインシステムの基盤を再構築しました。アクセシビリティとシンプルさを高めながら、人にもAIにも理解・保守・拡張しやすいシステムを目指しました。

2層のトークン構造

プリミティブトークンとセマンティックトークンの2層で構成される、拡張可能なデザイントークンシステムを構築しました。

デザイントークン構造図

検討の過程では、コンポーネントトークン層の導入も考えました。柔軟性が高まる一方で、保守するトークン数も増えます。現在のプロダクトとチームの規模を踏まえ、複雑さを抑えるため今回は導入しませんでした。

コンポーネントトークン
利点
トレードオフ
あり大規模な更新が容易で柔軟性が高い抽象化と保守の負担が増える
なし理解・保守しやすいコンポーネント固有の調整に対する柔軟性が低い

アクセシビリティの改善

十分に暗い色が不足していたため、プライマリーボタンを含む複数の配色がWCAG AAのコントラスト基準を満たしていませんでした。個々のコンポーネントを調整するのではなく、暗い色調を追加して基盤そのものを改善し、アクセシブルな配色をつくりやすくしました。

デザインシステムのカラーコントラスト改善

システムの簡素化

既存システムはMaterial Designのテンプレートをもとにしていましたが、要件に対して複雑すぎ、多くの未使用値を含んでいました。重複する値を削除し、目的を明確にしたトークンとスタイルへ整理しました。

変更前
変更後
色相18667%
プリミティブカラー2529562%
タイポグラフィスタイル361461%

AIが読み取りやすいコンポーネント

AI支援の実装に対応するため、値を直接指定する代わりにFigma変数を使い、Auto Layoutで構造化してコンポーネントを再構築しました。

Figma上のデザインシステムコンポーネント

デザインシステムとコードを同期する効率的なワークフローを確立

Figma上のデザインシステムを信頼できる唯一の情報源として整備した後、限られたツールしか使えない非営利チームでも運用でき、実装工数を減らしながらシステムの進化にコードを追従させるデザイン・コード連携フローを検討しました。

Figmaとコード間で同期されるデザイントークン

トークンの同期

デザイントークンの同期では、ツール間の互換性と今後の柔軟性を考え、業界標準であるDTCG互換のワークフローを重視しました。選択肢を比較した結果、コストと保守性のバランスが最も良いTokens StudioとStyle Dictionaryを採用しました。

選択肢
利点
トレードオフ
Tokens Studio + Style DictionaryDTCG対応、有料機能が不要追加設定といくつかの手作業が必要
Figma REST APIデザインデータへ直接アクセスでき、手作業が少ない有料のEnterpriseプランが必要(利用不可)

完全な自動化ではありませんが、約1分で完了し、入力ミスなどの手作業によるエラーを防げます。

コンポーネントの実装

Figma MCPとCursorを使い、主要なコンポーネントをReact Nativeで実装しました。その過程で、アニメーションやコンポーネントの挙動など、Figmaだけでは十分に表現されない詳細を追加しました。また、一般的な実装方法をもとにFigma上の構造、命名規則、プロパティも改善し、デザインと実装の差を縮めました。

Figma上のデザインシステムコンポーネント

実装では、デザインファイルだけでは表現しきれないインタラクションの詳細を追加しています。

ドキュメントを通じてボランティア主体の組織に継続性を提供

コントリビューターの参加と離脱が頻繁なGreenstandでは、ドキュメントが特に重要でした。オンボーディングと長期的な保守を支えるため、網羅性と簡潔さのバランスを取りながら、デザインと実装の両方を案内するStorybookドキュメントを導入しました。

なぜStorybookか

アクセスしやすい

すべてのコントリビューター、特にエンジニアがFigmaに慣れているとは限りません。Webベースのドキュメントなら利用しやすくなります。

AIで保守しやすい

StorybookはコードとMDXで記述されるため、AIツールを活用してドキュメントをより効率的に保守できます。

アクセシビリティ機能

Storybookに組み込まれたアクセシビリティテスト機能が、潜在的な問題の発見を支援します。

今後のデザインシステム発展に向けた基盤を構築

この最初のイテレーションで、Greenstandの今後のデザインシステムとデザイン・コード連携フローの基盤を整えました。プロジェクトは継続中で、次の段階ではこのバージョンをもとに、実装方針、技術的制約、今後の発展についてステークホルダーと認識をそろえます。そこで得たフィードバックを反映し、導入に向けてシステムを改善していきます。

エンジニアとしての経験と再びつながる

AI支援開発が普及する以前にエンジニアとして働いていた私にとって、AIがこれまで以上にスムーズかつ迅速にデザインとコードをつなぐ様子は非常に興味深いものでした。このプロジェクトを通じて、デザインとエンジニアリングの両方の視点からデザインシステムへの理解を深めました。

Figmaの先まで考える

実装方法まで考慮することで、コンポーネントの構造やバリアントなどを見直し、より使いやすく保守しやすい形へ改善できました。

コミュニティから学ぶ

AIワークフローはまだ発展途上で、実践的な情報も限られています。ミートアップや対話を通じて他のデザイナーと意見交換し、新しいパターンを学ぶことに価値を感じました。