【入門編】Sketchの「Shared Styles」とデザイントークンの同期:マルチプラットフォーム展開を極める設計手法 – UI/UX・デザインツール活用バイブル

こんにちは!デザインとコードの境界線を溶かし、エンジニアとデザイナーが同じ言語で会話できるようにする――これこそが、モダンなプロダクト開発の醍醐味です。

今日は、Sketchの「Shared Styles(共有スタイル)」を軸に据え、Web、iOS、Androidといったマルチプラットフォームへデザインを完璧に同期させる「デザイントークン」の設計手法についてお話しします。

「マルチプラットフォーム対応で色がバラバラになる」「デザインの変更がエンジニアに伝わるのが遅い」といった現場の悲鳴を、今日で終わりにしましょう。これをマスターすれば、毎日のスタイル調整の苦しみから解放され、プロダクトの体験の質を劇的に引き上げることができますよ。

—

1. そもそも「Shared Styles」と「デザイントークン」って何をするもの?

初心者のうちは、「色やフォントをコンポーネントごとにポチポチ設定していけばいいや」と思いがちです。しかし、Webとモバイルアプリを同時に作るような現場では、このやり方はすぐに破綻します。

  • Sketchの Shared Styles(共有スタイル):

デザインファイル内で、色やシャドウ、タイポグラフィなどのスタイルルールを「名前をつけて一元管理」する機能です。これを使うと、元のスタイルを変更したときに、それを適用しているすべてのレイアウトが一瞬でアップデートされます。

  • デザイントークン(Design Tokens):

UIの視覚的属性(カラー、スペーシング、フォントサイズなど)を、特定のツール(SketchやFigmaなど)に依存しない「JSONなどの言語 agnostic(非依存)なデータ」として定義したものです。

Sketchの中だけで完結していたスタイルを「デザントークン」として抽出し、`Style Dictionary` などのツールを使ってCSSやSwift(iOS)、Kotlin(Android)のコードへと自動変換する。このパイプラインを構築するのが、今回のゴールです。

—

2. 準備:Sketchのインストールと基本セットアップ

まずは道具を揃えましょう。Sketchがまだインストールされていない場合は、公式ホームページからトライアル版をダウンロードしてください。

最初の重要なステップ:命名規則(Nomenclature)のルール化

マルチプラットフォーム展開において最も重要なのは、「名前のつけ方」です。適当に `Red` や `Blue` と名付けると、後で地獄を見ます。デザイントークンとしてコードに落とし込むことを前提に、次のような階層構造(Token Taxonomy)をSketchのShared Stylesの名前空間に採用します。

  • `category / subcategory / property / variant`
  • 例:`color / brand / primary / default`
  • 例:`typography / body / medium / regular`

Sketchの「Create Shared Style」を使うときは、このスラッシュ(`/`)区切りの命名規則を徹底してください。これだけで、後続のプログラム処理の難易度が劇的に下がります。

—

3. HelloWorld的実践:Shared Stylesを作り、トークンとして書き出す

百聞は一見にしかず。実際にSketchでShared Stylesを作成し、それを外部のコードへ流し込むまでの最小限のフロー(HelloWorld)を体験してみましょう。

Step 1: SketchでShared Stylesを作成する

1. 長方形(Rectangle)ツールで適当な正方形を描きます。
2. 塗り(Fill)の色を `#0066FF` に設定します。
3. インスペクターパネルの塗りの横にあるドロップダウンから 「Create New Shared Style」 を選択します。
4. 名前を `color/brand/primary` と入力して保存します。

これで、あなたのSketchファイル内に「プログラムから参照可能なスタイル」が定義されました。

Step 2: SketchのスタイルをJSON(デザイントークン)に変換する

Sketchのファイル(`.sketch`)は、内部的にはJSONの塊と画像ファイルのZipアーカイブです。しかし、直接それを解析するのは大変なので、コミュニティ製のツールやプラグイン(例:Design Tokens Sketch Plugin や Kalei など)を活用するか、JSONを直接手動で定義して同期の土台を作ります。

今回は、デザイントークンの標準的なJSONフォーマットの例を見てみましょう。これが、コードに変換される「源泉」になります。

`tokens.json`(デザイントークンの実体)

{
“color”: {
“brand”: {
“primary”: {
“value”: “#0066FF”,
“type”: “color”,
“comment”: “メインのブランドカラー。Web, iOS, Android共通で使用する。”
}
}
},
“spacing”: {
“base”: {
“value”: “8px”,
“type”: “dimension”,
“comment”: “8ptグリッドシステムに基づいたベーススペーシング”
}
}
}

このJSONファイルが、デザインとコードを繋ぐ「共通言語」になります。

—

4. Style Dictionaryでマルチプラットフォームのコードへ変換する

ここからがエンジニアリングの真骨頂です。Amazonがオープンソースで公開している `Style Dictionary` というツールを使うと、たった一つの `tokens.json` から、Web用のCSS、iOS用のSwift、Android用のKotlin(XML)を自動生成できます。

最小限のStyle Dictionary設定

プロジェクトディレクトリに `config.json` を作成し、以下のように記述します。

`config.json`

{
“source”: [“tokens.json”],
“platforms”: {
“css”: {
“transformGroup”: “css”,
“buildPath”: “build/css/”,
“files”: [{
“destination”: “_variables.css”,
“format”: “css/variables”
}]
},
“ios”: {
“transformGroup”: “ios”,
“buildPath”: “build/ios/”,
“files”: [{
“destination”: “StyleGuide.swift”,
“format”: “ios/swift.struct”
}]
},
“android”: {
“transformGroup”: “android”,
“buildPath”: “build/android/”,
“files”: [{
“destination”: “colors.xml”,
“format”: “android/resources”
}]
}
}
}

この設定ファイルを読み込んでビルドコマンドを実行すると…驚くことに、Sketchで定義した(あるいはトークン化した)カラー値が、それぞれのプラットフォームに最適化されたコードとして出力されます。

出力されるCSSの一例 (`build/css/_variables.css`)

/

  • 非常に重要:このファイルは自動生成されています。直接編集しないでください。

/

:root {
–color-brand-primary: #0066FF; / メインのブランドカラー。Web, iOS, Android共通で使用する。 /
–spacing-base: 8px; / 8ptグリッドシステムに基づいたベーススペーシング /
}

これで、デザイナーがSketchの Shared Styles で `#0066FF` を `#0052CC` に変更し、トークンを再出力(CI/CDパイプラインに組み込むことも可能です)するだけで、WebのCSS変数が自動的に更新される仕組みが完成しました!

—

5. 現場で役立つプロの知見:運用を破綻させないためのコツ

最後に、現場でこの仕組みを導入する際につまづきやすいポイントと、それを回避する知見をシェアします。

1. 「デザインの自由度」と「システムの厳格さ」のトレードオフを理解する
すべての色をトークン化しようとすると、デザイナーの創造性が死にます。まずは「ブランドカラー」「テキストカラー」「基本のスペーシング」といった、プロダクト全体の基盤となるグローバルトークンと、コンポーネント固有のローカルスタイルを明確に切り分けましょう。
2. Gitによるバージョニング管理を徹底する
デザイントークンのJSONファイルは、必ずGitなどのバージョン管理システムでコードと一緒に管理してください。「誰がいつ、どのトークンを書き換えたか」がコードレビューの対象になるため、デザイナーとエンジニアの間の「言った・言わない」のトラブルが劇的に減ります。

—

まとめ

SketchのShared Stylesの適切な命名規則から始まり、デザイントークンとしての抽出、そしてStyle Dictionaryを用いたマルチプラットフォームへのコード自動生成までの流れを解説しました。

最初は設定の多さに圧倒されるかもしれませんが、一度このパイプラインが動き出したときの感動はひとしおです。デザインの変更が数秒でプロダクト全体に反映される快感を、ぜひあなたのチームでも体験してみてください。毎日の作業が劇的に、そして圧倒的に楽しくなりますよ!

タイトルとURLをコピーしました